分类和聚类的区别以及各自常见的算法
搬運(yùn)工
參考:
[1] 百度回答:點(diǎn)擊打開鏈接
[2] 博客:點(diǎn)擊打開鏈接
簡單地說,聚類是指事先沒有“標(biāo)簽”而通過某種成團(tuán)分析找出事物之間存在聚集性原因的過程。
區(qū)別是,分類是事先定義好類別 ,類別數(shù)不變 。分類器需要由人工標(biāo)注的分類訓(xùn)練語料訓(xùn)練得到,屬于有指導(dǎo)學(xué)習(xí)范疇。聚類則沒有事先預(yù)定的類別,類別數(shù)不確定。 聚類不需要人工標(biāo)注和預(yù)先訓(xùn)練分類器,類別在聚類過程中自動(dòng)生成 。分類適合類別或分類體系已經(jīng)確定的場合,比如按照國圖分類法分類圖書;聚類則適合不存在分類體系、類別數(shù)不確定的場合,一般作為某些應(yīng)用的前端,比如多文檔文摘、搜索引擎結(jié)果后聚類(元搜索)等。
分類的目的是學(xué)會(huì)一個(gè)分類函數(shù)或分類模型(也常常稱作分類器 ),該模型能把數(shù)據(jù)庫中的數(shù)據(jù)項(xiàng)映射到給定類別中的某一個(gè)類中。 要構(gòu)造分類器,需要有一個(gè)訓(xùn)練樣本數(shù)據(jù)集作為輸入。訓(xùn)練集由一組數(shù)據(jù)庫記錄或元組構(gòu)成,每個(gè)元組是一個(gè)由有關(guān)字段(又稱屬性或特征)值組成的特征向量,此外,訓(xùn)練樣本還有一個(gè)類別標(biāo)記。一個(gè)具體樣本的形式可表示為:(v1,v2,...,vn; c);其中vi表示字段值,c表示類別。分類器的構(gòu)造方法有統(tǒng)計(jì)方法、機(jī)器學(xué)習(xí)方法、神經(jīng)網(wǎng)絡(luò)方法等等。
聚類(clustering)是指根據(jù)“物以類聚”原理,將本身沒有類別的樣本聚集成不同的組,這樣的一組數(shù)據(jù)對(duì)象的集合叫做簇,并且對(duì)每一個(gè)這樣的簇進(jìn)行描述的過程。它的目的是使得屬于同一個(gè)簇的樣本之間應(yīng)該彼此相似,而不同簇的樣本應(yīng)該足夠不相似。與分類規(guī)則不同,進(jìn)行聚類前并不知道將要?jiǎng)澐殖蓭讉€(gè)組和什么樣的組,也不知道根據(jù)哪些空間區(qū)分規(guī)則來定義組。其目的旨在發(fā)現(xiàn)空間實(shí)體的屬性間的函數(shù)關(guān)系,挖掘的知識(shí)用以屬性名為變量的數(shù)學(xué)方程來表示。聚類技術(shù)正在蓬勃發(fā)展,涉及范圍包括數(shù)據(jù)挖掘、統(tǒng)計(jì)學(xué)、機(jī)器學(xué)習(xí)、空間數(shù)據(jù)庫技術(shù)、生物學(xué)以及市場營銷等領(lǐng)域,聚類分析已經(jīng)成為數(shù)據(jù)挖掘研究領(lǐng)域中一個(gè)非常活躍的研究課題。常見的聚類算法包括:K-均值聚類算法、K-中心點(diǎn)聚類算法、CLARANS、 BIRCH、CLIQUE、DBSCAN等。
? ? ?當(dāng)把聚類(Clustering)和分類(Classification)放到一起時(shí),很容易弄混淆兩者的概念,下分別對(duì)兩個(gè)概念進(jìn)行解釋。
??????1 聚類(Clustering):
????????將物理或抽象對(duì)象的集合分成由類似的對(duì)象組成的多個(gè)類的過程被稱為聚類。
?????? 聚類分析的一般做法是,先確定聚類統(tǒng)計(jì)量,然后利用統(tǒng)計(jì)量對(duì)樣品或者變量進(jìn)行聚類。對(duì)N個(gè)樣品進(jìn)行聚類的方法稱為Q型聚類,常用的統(tǒng)計(jì)量稱為“距離”;對(duì)于m個(gè)變量進(jìn)行聚類的方法稱為R型聚類,常用的統(tǒng)計(jì)量稱為“相似系數(shù)”。??????????????
| K-Means | number of clusters | Very large?n_samples, medium?n_clusterswith?MiniBatch code | General-purpose, even cluster size, flat geometry, not too many clusters | Distances between points |
| Affinity propagation | damping, sample preference | Not scalable with n_samples | Many clusters, uneven cluster size, non-flat geometry | Graph distance (e.g. nearest-neighbor graph) |
| Mean-shift | bandwidth | Not scalable withn_samples | Many clusters, uneven cluster size, non-flat geometry | Distances between points |
| Spectral clustering | number of clusters | Medium?n_samples, small?n_clusters | Few clusters, even cluster size, non-flat geometry | Graph distance (e.g. nearest-neighbor graph) |
| Ward hierarchical clustering | number of clusters | Large?n_samples?andn_clusters | Many clusters, possibly connectivity constraints | Distances between points |
| Agglomerative clustering | number of clusters, linkage type, distance | Large?n_samples?andn_clusters | Many clusters, possibly connectivity constraints, non Euclidean distances | Any pairwise distance |
| DBSCAN | neighborhood size | Very large?n_samples, medium?n_clusters | Non-flat geometry, uneven cluster sizes | Distances between nearest points |
| Gaussian mixtures | many | Not scalable | Flat geometry, good for density estimation | Mahalanobis distances to centers |
| Birch | branching factor, threshold, optional global clusterer. | Large?n_clusters?andn_samples | Large dataset, outlier removal, data reduction. | Euclidean distance between points |
?
?? ??2 分類(Classification):
???????? 在已有分類標(biāo)準(zhǔn)下,對(duì)新數(shù)據(jù)進(jìn)行劃分,分類。
??????? 常用分類算法:
?????? 樸素貝葉斯(Naive Bayes, NB)
?????? 超級(jí)簡單,就像做一些數(shù)數(shù)的工作。如果條件獨(dú)立假設(shè)成立的話,NB將比鑒別模型(如Logistic回歸)收斂的更快,所以你只需要少量的訓(xùn)練數(shù)據(jù)。即使條件獨(dú)立假設(shè)不成立,NB在實(shí)際中仍然表現(xiàn)出驚人的好。如果你想做類似半監(jiān)督學(xué)習(xí),或者是既要模型簡單又要性能好,NB值得嘗試。
????????Logistic回歸(Logistic Regression, LR)
LR有很多方法來對(duì)模型正則化。比起NB的條件獨(dú)立性假設(shè),LR不需要考慮樣本是否是相關(guān)的。與決策樹與支持向量機(jī)(SVM)不同,NB有很好的概率解釋,且很容易利用新的訓(xùn)練數(shù)據(jù)來更新模型(使用在線梯度下降法)。如果你想要一些概率信息(如,為了更容易的調(diào)整分類閾值,得到分類的不確定性,得到置信區(qū)間),或者希望將來有更多數(shù)據(jù)時(shí)能方便的更新改進(jìn)模型,LR是值得使用的。
??????? 決策樹(Decision Tree, DT)
DT容易理解與解釋(對(duì)某些人而言——不確定我是否也在他們其中)。DT是非參數(shù)的,所以你不需要擔(dān)心野點(diǎn)(或離群點(diǎn))和數(shù)據(jù)是否線性可分的問題(例如,DT可以輕松的處理這種情況:屬于A類的樣本的特征x取值往往非常小或者非常大,而屬于B類的樣本的特征x取值在中間范圍)。DT的主要缺點(diǎn)是容易過擬合,這也正是隨機(jī)森林(Random Forest, RF)(或者Boosted樹)等集成學(xué)習(xí)算法被提出來的原因。此外,RF在很多分類問題中經(jīng)常表現(xiàn)得最好(我個(gè)人相信一般比SVM稍好),且速度快可擴(kuò)展,也不像SVM那樣需要調(diào)整大量的參數(shù),所以最近RF是一個(gè)非常流行的算法。
??????? 支持向量機(jī)(Support Vector Machine, SVM)
很高的分類正確率,對(duì)過擬合有很好的理論保證,選取合適的核函數(shù),面對(duì)特征線性不可分的問題也可以表現(xiàn)得很好。SVM在維數(shù)通常很高的文本分類中非常的流行。由于較大的內(nèi)存需求和繁瑣的調(diào)參,我認(rèn)為RF已經(jīng)開始威脅其地位了。
回到LR與DT的問題(我更傾向是LR與RF的問題),做個(gè)簡單的總結(jié):兩種方法都很快且可擴(kuò)展。在正確率方面,RF比LR更優(yōu)。但是LR可以在線更新且提供有用的概率信息。鑒于你在Square(不確定推斷科學(xué)家是什么,應(yīng)該不是有趣的化身),可能從事欺詐檢測(cè):如果你想快速的調(diào)整閾值來改變假陽性率與假陰性率,分類結(jié)果中包含概率信息將很有幫助。無論你選擇什么算法,如果你的各類樣本數(shù)量是不均衡的(在欺詐檢測(cè)中經(jīng)常發(fā)生),你需要重新采樣各類數(shù)據(jù)或者調(diào)整你的誤差度量方法來使各類更均衡。
3 舉例
?????? 假設(shè)有一批人的年齡的數(shù)據(jù),大致知道其中有一堆少年兒童,一堆青年人,一堆老年人。
???????聚類就是自動(dòng)發(fā)現(xiàn)這三堆數(shù)據(jù),并把相似的數(shù)據(jù)聚合到同一堆中。所以對(duì)于這個(gè)例子,如果要聚成3堆的話,那么輸入就是一堆年齡數(shù)據(jù),注意,此時(shí)的年齡數(shù)據(jù)并不帶有類標(biāo)號(hào),也就是說我只知道里面大致有三堆人,至于誰是哪一堆,現(xiàn)在是不知道的,而輸出就是每個(gè)數(shù)據(jù)所屬的類標(biāo)號(hào),聚類完成之后,就知道誰和誰是一堆了。
?????? 而分類就是,我事先告訴你,少年兒童、青年人及老年人的年齡是什么樣的,現(xiàn)在新來了一個(gè)年齡,輸出它的類標(biāo)號(hào),就是它是屬于少年兒童、青年人、老年人的哪個(gè)類。一般來說,分類器是需要訓(xùn)練的,也就是要告訴你的算法,每個(gè)類的特征是什么樣子,它才能識(shí)別新的數(shù)據(jù)。
?????? 剛才舉的是一個(gè)超級(jí)簡單的例子,方便大家理解。下面再舉一個(gè)實(shí)際的例子。
?????? 對(duì)于聚類,比如有些搜索引擎有“查看相似網(wǎng)頁”的功能,這個(gè)就可以用聚類來做,把網(wǎng)頁就行聚類,在聚類的結(jié)果中,每一個(gè)類中的網(wǎng)頁看成是相似的。
?????? 對(duì)于分類,比如手寫識(shí)別就可以看到是分類問題,比如我寫了10個(gè)“我”字,然后對(duì)這10個(gè)“我”字進(jìn)行特征提取,就可以告訴算法,“我”字具有什么樣的特征,于是來了一個(gè)新的“我”字,雖然筆畫和之前的10個(gè)“我”字不完全一樣,但是特征高度相似,于是就把這個(gè)手寫的字分類到“我”這個(gè)類,就識(shí)別出來了。
?
參考: [1] 百度百科 [2] http://www.zhihu.com/question/24169940/answer/26952728總結(jié)
以上是生活随笔為你收集整理的分类和聚类的区别以及各自常见的算法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: From 7.8 To 7.14
- 下一篇: Opencv2与Opencv4共存