海量數據索引與近似最近鄰隨記

最近鄰問題(NN)

將次數看成向量,然后我們就可以比對向量的距離(歐式距離,余弦距離)。數據中會有一些異常點,這些異常點會導致結果的不穩定。

這種思想非常的不穩定,因為他只基于一個樣本來做最后類別的判定。

K最近鄰算法(NN => KNN)

少數服從多數。

距離準則

Jaccard:并不是每個人都會點擊或者購買這么高強度的行為,因為購買是需要花錢的。我們能采集到的數據量比較的數據,實際上是用戶的一些隱性的行為,比如他在這個頁面停留了多久(時間閾值,比如30秒),超過閾值我就認為他有興趣。它不像打分數據一樣有嚴格的連續值,比如0-10這樣一個嚴格的連續取值,它只有0,1(有或沒有)的這種行為,看過或沒看過,感興趣或不感興趣。Jaccard是算兩個向量共同是1的部分或者共同是0的部分。

近似最近鄰算法(KNN => ANN)

預先對數據做劃分會面臨一個問題,可能會劃分錯誤,無論怎么劃分都有可能將本身比較接近的一些點給劃分開。所以他會損失掉一部分準確度,當然這部分損失在你的承受范圍內的。在損失一些準確度的情況下,用一部分的空間去提升速度,實際上就是預先對數據做了劃分和索引。這種操作在工業界并不是致命的,比如淘寶上的找相似或者找同款功能。

局部銘感度哈希

生成2進制串,保證距離特性

在高維空間比較接近的會落到同一個桶里面。

LSH第一步做哈希,即把這些圖片都分完桶了,LSH映射完之后,他會拿到你指定的個數的,例如指定的是k,那它就會拿到kbit的串,意味著你掉到了kbit這樣一個串的桶里面。第一步是映射,映射做的事情就是對原始給定的高維向量,做一個映射,得到映射拿到的桶ID號。

第二步檢索,檢索做的是,首先他會去找桶里面其他的數據,LSHash這個庫檢索回來的張數是不確定的。當新的數據過來時,通過第一步的映射,一樣會拿到一個桶的編號,到這個桶里面看看有多少張圖片,將這個桶的圖片取出來,計算看滿不滿足要求,如果桶里的圖片不夠,LSHash保證不了個數,所以這個庫解決不了這個問題。在不夠的情況下,通過計算二進制串的漢明距離,將與他漢明距離為1的這些桶編號全都拿回來。如果漢明距離為1的不夠怎么辦,它再取漢明距離為2的桶。、

注意:你要小心的設置LSH 他映射到的空間維度,你要根據你的樣本量大致的估一下或者做測試。

lSH的直觀理解

像左圖中的c點劃分錯誤的情況下,你想讓你的檢索盡量的準確怎么辦,這個事情是可以做的,需要付出的代價是你計算資源或時間的成本,可以采用多次劃分的方式,然后根據這幾個超平面的檢索結果,取他們的并集。

LSH之相似網頁查找

詞(特征)的權重是指這個詞對這句話的重要度(tf-idf)。乘以權重時,原來是1的位置直接乘以權重,原來是0的位置用-1乘以權重。

有用的理由:如果現在去掉灰色這個詞,對最后的結果的正負性沒有影響,只有你去掉那些詞的時候對結果的正負性可能會有影響呢?是不是w權重比較大的詞!!就是說,如果在原來的文本中剔除一些或者加入一些不是那么重要的字的話,那我認為沒有影響,除非你剔除或加入額外分詞重要的詞,那這個時候可能就會認為這是不同的句子。

SimHash可用庫

LSH常用庫

ANN之K-means Tree

每個非葉子節點都是一個簇的聚類中心點。

如果你現在要找回Top 2T,如果不滿足他會怎么做呢?他會回溯回去,回溯到上一級大團,然后去找聚類中心第二接近的,因為聚類中心他們總會有一個遠近,所以他會對他們做一個排序(rank),拿出來那些比較接近的小的簇,然后再去求并。

ANN之K-D Tree

DT決策樹,它在做的事情是去找一個波動最大的維度,為什么要找方差最大的維度?方差最大的維度,意味著這個維度上的熵比較大或者是他的不確定性比較高,他的信息增益比較大,也就是他能夠給我帶來減小不確定的可能性最大。

二維用線做切分

三維用面做切分,從三個維度中找哪個是波動/方差最大的。

假設現在要與(6,1)最接近的3個點,首先是第一個維度6,在7的左側,然后順著左側往下走,緊接著第二個維度1,判斷在4的左側還是右側?在左側,找到了(2,3)是離她最接近的點。然后沿著(2,3)這個葉子節點回溯到父節點(5,4),計算加上父節點滿不滿足3個,不滿足,父節點還有一側(4,7),再計算加上這個節點滿不滿足3個,發現滿足,就不再回溯到上一個父節點。

K-means Tree VS K-D Tree

工程經驗之ANN庫

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/276776.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/276776.shtml
英文地址,請注明出處:http://en.pswp.cn/news/276776.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MySQL時間格式TIMESTAMP和DATETIME的區別

時區,timestamp會跟隨設置的時區變化而變化,而datetime保存的是絕對值不會變化 自動更新,insert、update數據時,可以設置timestamp列自動以當前時間(CURRENT_TIMESTAMP)填充/更新 占用存儲空間不同,timestamp儲存占用…

python c 選擇_C和Python,小白應該選擇學習哪門語言?

首先,需要對兩門語言進行初步認識,C語言是一門通用性的編程原因,為什么說通用呢?是因為它能夠做很多低級、底層的處理,同時具有良好的跨平臺性,C語言可以按照一定的標準在多種計算機平臺上進行編譯,包含嵌…

WaitForSingleObject的用法

WaitForSingleObject的用法 1.WaitForSingleObject 的用法 DWORD WaitForSingleObject(HANDLE hHandle, DWORD dwMilliseconds ); 參數 hHandle 是一個事件的句柄,第二個參數 dwMilliseconds 是時間間隔。如果時間是有信…

pom.xml里發布和下載包

1.下載包 在<project>標簽中 <repositories><repository><id>nexus</id><url>http://10.39.93.105:8081/repository/maven-public/</url><releases><enabled>true</enabled></releases><snapshots>&l…

智能云改-docker云遷移實戰

本次安裝的linux版本是centos7.4&#xff0c;docker安裝不依賴任何環境&#xff0c;但是必須要連接網絡&#xff0c;滿足這一點就可以進行docker安裝了。 一、安裝&#xff1a; 1.刪除就版本的docker輸入命令&#xff1a;yum -y remove docker \docker-common \docker-selinux …

python詞頻統計代碼_python統計詞頻

一、程序分析 &#xff08;1&#xff09;將文件讀入緩沖區&#xff08;dst指文本文件存放路徑&#xff0c;設置成形參&#xff0c;也可以不設&#xff0c;具體到函數里設置&#xff09; def process_file(dst): # 讀文件到緩沖區try: # 打開文件 txtopen(dst,"r") ex…

關于wpf,datagrid,雙向數據綁定用法解決方案

參考&#xff1a;http://www.myexception.cn/c-sharp/1446457.html 核心內容&#xff0c;在綁定數據的地方添加雙向綁定&#xff1a; {Binding BB, ModeTwoWay,UpdateSourceTriggerPropertyChanged} 轉載于:https://www.cnblogs.com/Mindy-hym/p/11431069.html

部署zookeeper分布式節點

用2臺服務器&#xff0c;低資源&#xff0c;部署3個zookeeper分布式節點&#xff1a; 1.準備環境系統已經配置好了JAVA環境&#xff1b;下載某個版本的zookeeper壓縮包&#xff0c;下載鏈接&#xff1a;http://apache.claz.org/zookeeper/zookeeper-3.5.3-beta/zookeeper-3.5.3…

Oracle的resouce、unlimited tablespace 及如何把數據導入不同的表空間

resouce是角色&#xff0c;unlimited tablespace是權限。 很多人在進行數據遷移時&#xff0c;希望把數據導入不同于原系統的表空間&#xff0c;在導入之后卻往往發現&#xff0c;數據被導入了原表空間。本例舉例說明解決這個問題:1.如果缺省的用戶具有DBA權限那么導入時會按照…

MySQL導入導出遠程訪問命令

1.導出整個數據庫mysqldump -u 用戶名 -p 數據庫名 > 導出的文件名mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql2.導出一個表mysqldump -u 用戶名 -p 數據庫名 表名> 導出的文件名mysqldump -u wcnc -p smgp_apps_wcnc users> wcnc_users.sql3.導出一個數據庫結…

.net開發是做什么的_軟件開發是什么, 該怎么做?

軟件開發是什么, 該怎么做&#xff1f;1 引子關于什么是軟件開發存在很多觀點&#xff0c;有的認為軟件開發即服務&#xff0c;有的認為軟件開發即產品&#xff0c;有的認為軟件開發即平臺&#xff0c;這些觀點各有各的側重點。這篇文章我們來學習和探討一下軟件開發。2 軟件…

虛擬軟驅影像文件制作程序下載路徑:http://download.csdn.net/source/738137

通過這個程序&#xff0c;可制作一個在虛擬機上運行的Hello China啟動軟盤&#xff0c;而無需你的計算機具備物理軟驅。 If you have not CSDN account or you very care the 3 points will be omitted if you download,please send mail to garryxinyahoo.com.cn, I will send…

css3屬性

css3屬性 transform動畫 transform-origin&#xff1a;設置不動點&#xff0c;以這個點位移transform&#xff1a;translate(x,y):自身偏移量transform:scale(x,y)&#xff1a;縮放&#xff0c;當為負數的時候可以實現反轉元素transform&#xff1a;roate&#xff08;xdeg&…

使用HTML5、CSS3和jQuery增強網站用戶體驗

記得幾年前如果你需要添加一些互動元素到你的網站中用來改善用戶體驗&#xff1f;是不是立刻就想到了flash實現&#xff1f;這彷佛年代久遠的事了。使用現在最流行的Web技術HTML5&#xff0c;CSS3和jQuery&#xff0c;同樣也可以實現類似的用戶體驗。而且使用這些特性將會比使用…

python中loop函數_python + Django 的forloop功能試驗講解

一、forloop功能詳解記錄 遇到一個問題困擾了我好久&#xff0c;結果還是知識盲區造成的。下邊記錄一下。 通過return forloop可以返回前端循環中的索引值 二、forloop大概功能 forloop是Django模板中一個功能&#xff0c;主要是可以計算循環的對象的索引值&#xff08;大白話大…

帆軟報表(finereport)JS實現cpt中詳細單元格刷新

1.刷新固定單元格 setInterval(function(){ //獲取第二行第 5 列 E2 單元格對象var _changeCell $("tr[tridx1]","div.content-container").children().eq(7);//獲取 H2 單元格值var _changeVal _changeCell.text();//給表格賦值 if(_changeVal"…

[導入]源代碼版本控制(二)

在VS6.0時代&#xff0c;VSS的版本是6.0&#xff0c;現在VS的版本都到2008了&#xff0c;VSS的版本目前是2005&#xff0c;這回以2005為例。安裝就免了。數據庫的創建&#xff1a;如果要在局域網內共享這個數據庫&#xff0c;那還需要將剛才存放數據庫的目錄共享出去。為數據庫…

javascript 控制彈出窗口

前言:經常上網的朋友可能會到過這樣一些網站&#xff0c;一進入首頁立刻會彈出一個窗口&#xff0c;或者按一個連接或按鈕彈出&#xff0c;通常在這個窗口里會顯示一些注意事項、版權信息 、警告、歡迎光顧之類的話或者作者想要特別提示的信息。其實制作這樣的頁面效果非常的容…

蘇寧的Node.js實踐:不低于Java的渲染性能、安全穩定迭代快

前端 Node.js 的使用場景大多集中在前端工具上&#xff0c;當前的前端主要把它定位為輔助。蘇寧易購使用 Node.js 作為前后端分離的主要手段&#xff0c;經歷了從技術引進到全面開花&#xff0c;從邊緣功能到核心業務&#xff0c;從紛亂到穩定的過程。同時 Node.js 作為新引入的…

wpf: DataGridTextColumn 數字格式顯示,編輯時取消格式(StringFormat)

參考&#xff1a;Format values in a Datagrid 參考&#xff1a;Remove stringFormat while editing cell in datagrid 使用 DataGridTemplateColumn 實現&#xff1a; <DataGridTemplateColumn Header"Cot (k€)"><DataGridTemplateColumn.CellTemplate&g…