聚類系列 概述

2021-07-27 13:40:37 字數 2379 閱讀 4260

本系列要講解一下本人這一段時間工作中 使用聚類來做的一些事情,第一次寫部落格大家不喜勿噴,有錯誤請及時指出,本人一定改正。

nlp中的聚類就是在沒有任何的指導資料的情況下,將相似的實體聚集到乙個類別中,將不相似的聚集到不同的類別中去。但是這裡相似或者不相似用什麼去衡量呢?又是怎麼計算出來的相似度呢?之前我們講過實體在落實到輸入語料中時,都必須表示成數學模型,所以我們選擇用數學中的概念來衡量相似性,有了這個前提我們就可以用數學公式去計算相似度了。打個比方,有a、b、c三個人,a是山東的,b是河北的,而c呢是雲南人,現在我們要求將這三個人分成兩個類別,我們可能將ab分到一塊,將c分類一塊。為什麼呢?因為ab兩個人的距離比較近,而且生活習性也都相近,但是c距離他們兩個比較遠,生活習性也有一些差距。其實在這個過程中我們不自覺的使用了數學上的距離來表示了三個實體之間的相似性,其實在nlp中也是這樣的一種思路去度量相似度。再舉乙個在我們nlp中經常遇到的例子,假設有三個句子:

句子a:我有乙個蘋果。

句子b:我有乙個梨。

句子c:我今天吃了乙個蘋果。

然後對上邊的三個句子進行聚類,首先我們需要將上述的三個句子分詞,然後將它們表示數學模型,最後再來對上述句子聚類。分詞結果如下:

句子a:我 有 乙個 蘋果。

句子b:我 有 乙個 梨。

句子c:我 今天 吃 了 乙個 蘋果。

然後將上述句子表示成數學模型在nlp中一般使用的是向量空間模型,所以我們將上述句子表示成向量空間模型語料中一共有八個詞(去掉標點),我們將選擇八維的向量來表示每乙個句子,每一維的特徵就是詞語,有表示1,沒有表示0。得到如下向量:

我         有       乙個       蘋果        梨         今天      吃         了

a            1            1           1           1             0             0         0          0

b           1            1           1            0             1             0         0         0

c           1            0           1           1             0            1         1           1

之後我們就是將相似度的句子聚到乙個類裡,不相似的聚到不同的類中。在數學上一般距離小的我們就說相近,在這個地方我們同樣可以利用距離來表示兩個句子之間的相似度,當然這只是其中的一種度量,像余弦夾角等等也是不錯的相似度的度量標準。

聚類的演算法我們大致可以分為以下幾類:

基於劃分聚類演算法(partition clustering):首先建立k個劃分,k為要建立的劃分個數;然後利用乙個迴圈定位技術通過將物件從乙個劃分移到另乙個劃分來幫助改善劃分質量。典型的劃分方法包括: k-means,

k-medoids等。

層次方法(hierarchical method) : 建立乙個層次以分解給定的資料集。該方法可以分為自上而下(分解)和自下而上(合併)兩種操作方式。為彌補分解與合併的不足,層次合併經常要與其它聚類方法相結合,如迴圈定位。典型的這類方法包括:birch(balanced iterative reducing and clustering using hierarchies) 方法,cure(clustering using reprisentatives) 方法等。

基於網格方法:首先將物件空間劃分為有限個單元以構成網格結構;然後利用網格結構完成聚類。例如sting(statistical information grid)

基於模型方法:它假設每個聚類的模型並發現適合相應模型的資料,典型的基於模型方法如cobweb。

圖論聚類方法:圖論聚類方法解決的第一步是建立與問題相適應的圖,圖的節點對應於被分析資料的最小單元,圖的邊(或弧)對應於最小處理單元資料之間的相似性度量。因此,每乙個最小處理單元資料之間都會有乙個度量表達,這就確保了資料的區域性特性比較易於處理。圖論聚類法是以樣本資料的局域連線特徵作為聚類的主要資訊源,因而其主要優點是易於處理區域性資料的特性。典型的代表演算法有ap(affinity propagation clustering algorithm)聚類演算法。

當然還有一些其他的比較的好的聚類方法,如譜聚類等等。我在後續的序列中會選擇一些比較常用的聚類演算法進行專門的講解。

聚類演算法概述

聚類是乙個把資料物件集劃分成多個組或者簇的過程,使得簇內的物件具有很高的相似性,但與其他簇中的物件很不相似 聚類是無監督學習,不依賴於預定義的類和類標號的訓練例項。我們常見的聚類演算法分為以下幾類 劃分方法 層次方法 基於密度的方法和基於網格的方法。給定n個物件的集合,劃分方法構建資料的k個劃分,每...

譜聚類概述

一 簡述 聚類是對探索性資料分析最廣泛使用的技術,在現在各個科學領域中處理沒有類標的資料時,人們總是想通過確定資料中不同樣本的歸類,來獲取對資料的直觀印象。傳統的聚類方法有很多,像k means,single linkage等,但是k means演算法有些缺點,比如當樣本維度特別大的時候,k mea...

Mahout系列 譜聚類

1.構造親和矩陣w 2.構造度矩陣d 3.拉普拉斯矩陣l 4.計算l矩陣的第二小特徵值 譜 對應的特徵向量fiedler 向量 5.以fiedler向量作為kmean聚類的初始中心,用kmeans聚類 親和矩陣 w ij exp d s i,s j 2o 2 d s i,s j s i,s j o ...