1.K-D樹
概念:一種分割k維數據空間的數據結構。
構造過程:
(1)針對k條坐標軸方向,分別在每個方向上統計所有點的數據方差。并在k個方差選擇最大的,將其方向作為分割方向。(數據方差大表明沿該坐標軸方向上的數據分散得比較開,在這個方向上進行數據分割有較好的分辨率。)
(2)選出分割方向上中間的一點,用其將數據點分割成左右兩部分。
(3)對左右兩部分數據重復(1)(2)操作,直至每個子空間中只剩一個數據點。
查詢步驟:
(1)從根節點開始,通過二叉搜索,查找到與目標點距離最近的一點A,并在棧中順序存儲已經遍歷的節點。
(2)以目標點為圓心,以兩點間距離為半徑作圓,若與父節點的分割線(超平面)相交,則對分割線另一邊進行二叉搜索。
(3)若不相交,則按棧中存儲的節點進行回溯,若當前節點比A距離更近,則更新A。
(4)直至回溯到root點,此時的A點即為最近鄰接點。
2.Bag of words
概念:該模型忽略掉文本的語法和語序,用一組無序的單詞(words)來表達一段文字或一個文檔。近年來,BoW模型被廣泛應用于計算機視覺中。與應用于文本的BoW類比,圖像的特征(feature)被當作單詞(Word)。文本方面:例如有下面兩句話:
John likes to watch movies. Mary likes movies too.
John also likes to watch football games.
可生成如下詞典:
[“John”,?“likes”,?“to”,?“watch”,?“movies”,?“also”,?“football”,?“games”,?“Mary”,?“too”]
根據這個詞典,可以將這兩句話轉換成兩個向量:
[1, 2, 1, 1, 2, 0, 0, 0, 1, 1]
[1, 1, 1, 1, 0, 1, 1, 1, 0, 0]
這兩個向量共包含10個元素,其中第i個元素表示詞典中第i個單詞在句子中出現的次數。因此BoW模型可認為是一種統計直方圖(histogram)。在文本檢索和處理應用中,可以通過該模型很方便的計算詞頻。
計算機視覺方面:將圖像可以類比作文檔,圖像中的特征點類比成詞匯,那么圖像的BoW模型即是“圖像中所有圖像塊的特征點得到的直方圖”.建立BoW模型主要分為如下幾個步驟:
(1)特征提取
假設有N張圖像,第i張圖像可由n(i)個特征點表示,則總共能得到sum(n(i))個特征點。
(2)生成詞典/碼本(codebook)
對上一步得到的特征向量進行聚類(可以使用K-means等聚類方法),得到K個聚類中心,用聚類中心構建碼本。
(3)根據碼本生成直方圖
對每張圖片,通過最近鄰計算該圖片的每個特征點應該屬于codebook中的“哪一類”特征點,從而得到該圖片對應于該碼本的BoW表示。匹配兩個圖片的直方圖,就可判斷其相似度。
3.TF-IDF
概念:term frequency–inverse document frequency是一種用于信息檢索與數據挖掘的常用加權技術。
TF:詞頻,計算方法:,分子為詞條i在文檔j中出現的次數,分母為文檔j所有詞條出現的總次數。
IDF:逆向文件頻率(inverse document frequency,IDF)是一個詞語普遍重要性的度量,計算方法:
分子為庫中文檔數目,分母為庫中所有包含詞條i的文檔數目。
TF-IDF:即為TF*IDF,以此來計算某個詞條的權重,形式較多,上面僅列出其中一種表示。
4.K-means clustering
概念:把數據分成幾組,按照定義的測量標準,同組內數據與其他組數據相比具有較強的相似性,這就叫聚簇。聚簇是數據挖掘最基礎的操作,但現在存在的一些傳統聚簇方法已不能滿足處理復雜類型的、高維的、任意分布形狀的數據集合的需要。
k-means算法就是用得最多的一種傳統的聚簇方法,是一種劃分法,相似度的計算是求數據對象與簇中心的距離,與簇中心距離近的就劃為一個簇。工作流程:
(1)隨機地選擇k個對象,每個對象初始地代表了一個簇的平均值或中心。
(2)對剩余的每個對象,根據其與各個簇中心的距離,將其賦給最近的簇。
(3)重新計算每個簇的平均值,求出新的簇中心,再重新聚簇。
(4)不斷重復(2)(3),直到準則函數收斂。
分析:該算法的時間復雜度是O(nkt),其中n是所有對象數目,k是簇的數目,t是迭代次數。它的效率比較高;缺點是只能處理數值型數據,不能處理分類數據,對例外數據非常敏感,不能處理非凸面形狀的聚簇。
5.SIFT
6.SVM