【機(jī)器學(xué)習(xí)概述】第五篇上舌缤、非監(jiān)督學(xué)習(xí)

一箕戳、k-means

k-means算法并沒(méi)有顯示的學(xué)習(xí)過(guò)程,而且很簡(jiǎn)單国撵,給定一個(gè)訓(xùn)練數(shù)據(jù)集陵吸,其中的實(shí)例類別已定,分類時(shí)介牙,對(duì)新的輸入實(shí)例壮虫,根據(jù)其k個(gè)最近鄰的訓(xùn)練實(shí)例的類別,通過(guò)多數(shù)表決等方式進(jìn)行預(yù)測(cè)环础。k-means實(shí)際上利用訓(xùn)練數(shù)據(jù)集對(duì)特征向量空間進(jìn)行劃分囚似,并作為其對(duì)分類的“模型”。
k-means主要是在對(duì)k值的選擇线得,距離的度量以及分類決策規(guī)則的調(diào)控饶唤。
K-means方法尋找的是球形或超球面形類,所以并不適用以下幾種類型的分類:


kmean.png

注意不要混淆K-近鄰算法和K均值聚類贯钩。 K-近鄰算法是一種分類算法募狂,也是監(jiān)督學(xué)習(xí)的一個(gè)子集。 K-means是一種聚類算法角雷,也是非監(jiān)督學(xué)習(xí)的一個(gè)子集熬尺。
那么就引入了其他的聚類方法:


層次聚類和密度聚類

二、層次聚類Hierarchical Clustering

部分內(nèi)容出自這里
層次聚類能讓人直觀的了解到類之間的關(guān)系谓罗。
層次聚類( Hierarchical Clustering )是聚類算法的一種粱哼,通過(guò)計(jì)算不同類別的相似度類創(chuàng)建一個(gè)有層次的嵌套的樹。
假設(shè)有 n 個(gè)待聚類的樣本檩咱,對(duì)于層次聚類算法揭措,它的步驟是:

  • 步驟一:(初始化)將每個(gè)樣本都視為一個(gè)聚類;
  • 步驟二:計(jì)算各個(gè)聚類之間的相似度刻蚯;
  • 步驟三:尋找最近的兩個(gè)聚類绊含,將他們歸為一類;
  • 步驟四:重復(fù)步驟二炊汹,步驟三躬充;直到所有樣本歸好類。
    整個(gè)過(guò)程就是建立一棵樹,在建立的過(guò)程中充甚,可以在步驟四設(shè)置所需分類的類別個(gè)數(shù)以政,作為迭代的終止條件,畢竟都?xì)w為一類并不實(shí)際伴找。
sklearn的層次聚類
層次聚類13.png
scipy畫系統(tǒng)樹圖
層次聚類14.png
層次聚類的優(yōu)缺點(diǎn)

優(yōu)點(diǎn):

  • 一次性得到聚類樹盈蛮,后期再分類無(wú)需重新計(jì)算;
  • 相似度規(guī)則容易定義技矮;
  • 可以發(fā)現(xiàn)類別的層次關(guān)系抖誉,而且層次信息非常豐富;
  • 可以將數(shù)據(jù)集的聚類結(jié)構(gòu)視覺(jué)化

缺點(diǎn):

  • 計(jì)算復(fù)雜度高衰倦,不適合數(shù)據(jù)量大的袒炉;
  • 算法很可能形成鏈狀。
  • 對(duì)噪音和離群值很敏感

下面是層次聚類的幾種分類:

1樊零、單連接聚類法Single Linkage

又叫做 nearest-neighbor 我磁,就是取兩個(gè)類中距離最近的兩個(gè)樣本的距離作為這兩個(gè)集合的距離。這種計(jì)算方式容易造成一種叫做 Chaining 的效果淹接,兩個(gè) cluster 明明從“大局”上離得比較遠(yuǎn)十性,但是由于其中個(gè)別的點(diǎn)距離比較近就被合并了,并且這樣合并之后 Chaining 效應(yīng)會(huì)進(jìn)一步擴(kuò)大塑悼,最后會(huì)得到比較松散的 cluster 劲适。單連接是查看與聚類最近的點(diǎn),這可能導(dǎo)致形成各種形狀的聚類厢蒜。

跟上面的步驟一樣霞势,我們分解來(lái)看:

  • 步驟一:(初始化)將每個(gè)樣本都視為一個(gè)聚類;


    層次聚類1.png
  • 步驟二:計(jì)算各個(gè)聚類之間的相似度斑鸦,簡(jiǎn)單來(lái)說(shuō)就是計(jì)算任意兩點(diǎn)之間的距離


    層次聚類2.png
  • 步驟三:尋找最近的兩個(gè)聚類愕贡,將他們歸為一類,就是選擇兩個(gè)類之間的最短距離巷屿,然后將這兩個(gè)點(diǎn)作為一個(gè)聚類固以,在旁邊就能畫出第一個(gè)節(jié)點(diǎn)的層次。


    層次聚類3.png
  • 步驟四:重復(fù)步驟二和步驟三嘱巾,當(dāng)不再有單獨(dú)的點(diǎn)作為一個(gè)類憨琳,而是要判斷多個(gè)類和多個(gè)類之間的距離的地方(這是個(gè)關(guān)鍵的地方,這一步是區(qū)分不同層次聚類的方法的標(biāo)準(zhǔn)旬昭,究竟是看單個(gè)類篙螟,還是類的平均距離等等。)單連接聚類法關(guān)乎的是兩類間的最短距離问拘,所以他衡量的依然是單個(gè)類與另一個(gè)類節(jié)點(diǎn)的最短距離遍略,以圖例來(lái)說(shuō)就是6和7是最短距離


    層次聚類4.png

    判斷好最短距離后惧所,將這個(gè)單獨(dú)節(jié)點(diǎn)再歸到整體聚類中,成為了一個(gè)新的類绪杏,這個(gè)新的類中含有另外一個(gè)類作為子類


    層次聚類5.png

    如此循環(huán)規(guī)整完畢后下愈,就生成了系統(tǒng)樹圖
    層次聚類6.png

    就像上面說(shuō)的,歸為一個(gè)類是不切實(shí)際的寞忿,所以我們會(huì)給層次聚類一個(gè)輸入驰唬,那就是有多少個(gè)類顶岸,通過(guò)有多少個(gè)類腔彰,來(lái)在系統(tǒng)樹圖上進(jìn)行切割劃分,比如我們分兩個(gè)聚類辖佣,那么如圖霹抛,截掉不必要的層次即可:


    層次聚類7.png

    所以 單連接聚類法 或廣義上的層次聚類法能幫我們得到一個(gè)類 或者樣本數(shù)量等等。

與k-means的區(qū)別
下圖是同樣的數(shù)據(jù)卷谈,使用k-means和使用單連接層次聚類法的區(qū)別

層次聚類8.png

同樣我們通過(guò)單連接層次聚類能畫出系統(tǒng)樹圖來(lái)看數(shù)據(jù)的規(guī)律
層次聚類9.png

雖然我們不一定能通過(guò)單連接聚類法得出最好的分類結(jié)果杯拐,但是系統(tǒng)樹圖還是能讓我們看出來(lái)規(guī)律,再使用其他的聚類方法來(lái)得到劃分世蔗。

2端逼、全連接聚類Complete Linkage

這個(gè)則完全是 Single Linkage 的反面極端,取兩個(gè)集合中距離最遠(yuǎn)的兩個(gè)點(diǎn)的距離作為兩個(gè)集合的距離污淋。全連接聚類法中 這樣的距離衡量方法使得產(chǎn)生的類比較緊湊顶滩,比單連接聚類法產(chǎn)生的類更緊湊 更好,但畢竟也是只考慮單個(gè)點(diǎn)的存在寸爆,其效果也是剛好相反的礁鲁,限制也很大。Single Linkage和Complete Linkage這兩種相似度的定義方法的共同問(wèn)題就是指考慮了某個(gè)有特點(diǎn)的數(shù)據(jù)赁豆,而沒(méi)有考慮類內(nèi)數(shù)據(jù)的整體特點(diǎn)仅醇。
來(lái)看具體步驟,它整體的步驟跟單連接聚類很接近魔种,只是在步驟四時(shí)有區(qū)分

  • 步驟四:之前也有說(shuō)過(guò)析二,判斷距離方式的不同造就了不同的聚類方法,全連接聚類不再是判斷兩個(gè)類最近的距離节预,而是將一個(gè)類與另一個(gè)類中節(jié)點(diǎn)最遠(yuǎn)的那個(gè)點(diǎn)作為最小距離的判斷依據(jù)(全連接聚類法關(guān)注的是兩個(gè)類中兩點(diǎn)之間的最遠(yuǎn)距離作為最小距離)叶摄,有點(diǎn)繞,看圖:
    層次聚類10.png
3心铃、組平均聚類average link

這種方法跟上兩個(gè)其實(shí)也很相似准谚,就是把兩個(gè)集合中的點(diǎn)兩兩的距離全部放在一起求均值,相對(duì)也能得到合適一點(diǎn)的結(jié)果(詳細(xì)來(lái)說(shuō)去扣,它計(jì)算的是任意兩類中任意兩點(diǎn)之間的距離柱衔,然后取平均值 即為兩類之間的距離樊破,然后判斷最小類距離作為聚類標(biāo)準(zhǔn))。有時(shí)異常點(diǎn)的存在會(huì)影響均值唆铐,平常人和富豪平均一下收入會(huì)被拉高是吧哲戚,因此這種計(jì)算方法的一個(gè)變種就是取兩兩距離的中位數(shù)。

層次聚類11.png

上圖舉例兩類距離求平均艾岂。

4顺少、Ward's method離差平方和法

這種方法是 Scikit-learn 框架中一種預(yù)設(shè)的層次聚類法,它的目的是把合并類時(shí)的變量最小化王浴,離差平方和法計(jì)算兩類間的距離的方法是:先找出這兩個(gè)聚類總體的中心位置O脆炎,然后計(jì)算每個(gè)節(jié)點(diǎn)和中心位置的距離記做C,分別計(jì)算這些距離C的平方氓辣,并且相加記為delta秒裕,然后找出這兩個(gè)聚類分別的中心位置O1,O2钞啸,比如第一個(gè)類的中心是O1几蜻,那么第一類的節(jié)點(diǎn)與O1的距離記做A,那么之前求出來(lái)的平方和delta減去所有A的平方体斩,這樣循環(huán)得出來(lái)各個(gè)類之間的最小距離梭稚,將最小距離的類化為一類。這樣離差平方和法會(huì)最小化在每個(gè)合并步驟中的方差絮吵。

整體流程如圖:


層次聚類12.png

離差平方和法和平均連接算法一般傾向于導(dǎo)致緊湊的聚類弧烤。

三、密度聚類Density-based Clustering

最主要的算法叫DBScan源武,指的是 具有噪聲的基于密度的聚類方法扼褪,對(duì)有噪聲的數(shù)據(jù)集具有很強(qiáng)的適用性,它并不要求我們具體說(shuō)明一系列的類粱栖,一般把一些密集分布的點(diǎn)聚類话浇,再將其他剩余的點(diǎn)標(biāo)記為噪音。
具體步驟如下:
步驟一:設(shè)置最小距離闹究,用來(lái)決定在某個(gè)范圍內(nèi)是否有其他點(diǎn)的這個(gè)范圍幔崖,設(shè)置點(diǎn)的個(gè)數(shù),即在這個(gè)范圍內(nèi)是否有這么多的點(diǎn)存在渣淤,如果存在設(shè)置為Core point赏寇,如果不存在設(shè)置為Noise point,如果不存在价认,但是在之前設(shè)置的core point范圍內(nèi)嗅定,那么就為border point。
步驟二:隨機(jī)找到一個(gè)數(shù)據(jù)點(diǎn)用踩,看是否有足夠數(shù)量的點(diǎn)在范圍內(nèi)
步驟三:重復(fù)步驟二

以下圖為例渠退,可以將數(shù)據(jù)點(diǎn)劃為下面幾種:

密度聚類1.png

DBSCAN優(yōu)缺點(diǎn)
優(yōu)點(diǎn):

  • 不需要指明類數(shù)量忙迁,而是通過(guò)舉例和點(diǎn)數(shù)量來(lái)分的,即點(diǎn)的密度
  • 能夠找到并分離各種形狀和大小的聚類碎乃,不局限于外形
  • 能夠處理噪聲和離群值
    缺點(diǎn):
  • 邊界點(diǎn)很有可能在多次運(yùn)行時(shí)不會(huì)被劃分為同一個(gè)類姊扔,因?yàn)檫\(yùn)行算法時(shí)的點(diǎn)是隨機(jī)選取的
  • 在找到不同密度的聚類方面有一定的困難,畢竟只能設(shè)置一個(gè)密度(所以我們可以用 DBSCAN 的變體 HDBSCAN 即具有噪聲的基于密度的高層次空間聚類算法)

DBSCAN和Kmeans的對(duì)比

密度聚類2.png

sklearn實(shí)現(xiàn)DBSCAN

密度聚類3.png

因?yàn)榭煽貐?shù)不太多梅誓,那么有一些基本的規(guī)律在里面:

  • 如果聚類后有很多小的聚類恰梢。超出了數(shù)據(jù)集的預(yù)期數(shù)量。
    措施:增大 min_samples 和 ε
  • 很多點(diǎn)都屬于一個(gè)聚類
    措施:降低 ε 并增大 min_samples
  • 大部分/所有數(shù)據(jù)點(diǎn)都標(biāo)記為噪點(diǎn)
    措施:增大 ε 并降低 min_sample
  • 除了非常密集的區(qū)域之外梗掰,大部分/所有數(shù)據(jù)點(diǎn)都標(biāo)記為噪點(diǎn)(或者所有點(diǎn)都標(biāo)記為噪點(diǎn))嵌言。
    措施:降低 min_samples 和 ε

四、高斯混合模型聚類Gaussian Mixture Model Clustering

部分參考這里這里
統(tǒng)計(jì)的先修知識(shí)也可以先查看我以前寫過(guò)的文章愧怜。

GMM和k-means其實(shí)是十分相似的呀页,區(qū)別僅僅在于對(duì)GMM來(lái)說(shuō)妈拌,我們引入了概率拥坛,這種聚類算法假定每個(gè)類都遵循特定的統(tǒng)計(jì)分布,它大量使用概率和統(tǒng)計(jì)學(xué)知識(shí)來(lái)找出這些類尘分。說(shuō)到這里猜惋,我想先補(bǔ)充一點(diǎn)東西。統(tǒng)計(jì)學(xué)習(xí)的模型有兩種培愁,一種是概率模型著摔,一種是非概率模型。所謂概率模型定续,就是指我們要學(xué)習(xí)的模型的形式是P(Y|X)谍咆,這樣在分類的過(guò)程中,我們通過(guò)未知數(shù)據(jù)X可以獲得Y取值的一個(gè)概率分布私股,也就是訓(xùn)練后模型得到的輸出不是一個(gè)具體的值摹察,而是一系列值的概率(對(duì)應(yīng)于分類問(wèn)題來(lái)說(shuō),就是對(duì)應(yīng)于各個(gè)不同的類的概率)倡鲸,然后我們可以選取概率最大的那個(gè)類作為判決對(duì)象(算軟分類soft assignment)供嚎。而非概率模型,就是指我們學(xué)習(xí)的模型是一個(gè)決策函數(shù)Y=f(X)峭状,輸入數(shù)據(jù)X是多少就可以投影得到唯一的一個(gè)Y克滴,就是判決結(jié)果(算硬分類hard assignment)∮糯玻回到GMM劝赔,學(xué)習(xí)的過(guò)程就是訓(xùn)練出幾個(gè)概率分布,所謂混合高斯模型就是指對(duì)樣本的概率密度分布進(jìn)行估計(jì)胆敞,而估計(jì)的模型是幾個(gè)高斯模型加權(quán)之和(具體是幾個(gè)要在模型訓(xùn)練前建立好)着帽。每個(gè)高斯模型就代表了一個(gè)類(一個(gè)Cluster)罩阵。對(duì)樣本中的數(shù)據(jù)分別在幾個(gè)高斯模型上投影,就會(huì)分別得到在各個(gè)類上的概率启摄。然后我們可以選取概率最大的類所為判決結(jié)果稿壁。
如圖:


高斯混合模型聚類.png
單高斯模型

要理解高斯混合模型,首先要知道最基本的高斯模型是什么歉备,下面是找到的定義:


單高斯模型.png
高斯混合模型(GMM)

那么再回到高斯混合模型傅是,高斯混合模型可以看作是由 K 個(gè)單高斯模型組合而成的模型,這 K 個(gè)子模型是混合模型的隱變量(Hidden variable)蕾羊。一般來(lái)說(shuō)喧笔,一個(gè)混合模型可以使用任何概率分布,這里使用高斯混合模型是因?yàn)楦咚狗植季邆浜芎玫臄?shù)學(xué)性質(zhì)以及良好的計(jì)算性能龟再。
舉個(gè)不是特別穩(wěn)妥的例子书闸,比如我們現(xiàn)在有一組狗的樣本數(shù)據(jù),不同種類的狗利凑,體型浆劲、顏色、長(zhǎng)相各不相同哀澈,但都屬于狗這個(gè)種類牌借,此時(shí)單高斯模型可能不能很好的來(lái)描述這個(gè)分布,因?yàn)闃颖緮?shù)據(jù)分布并不是一個(gè)單一的橢圓割按,所以用混合高斯分布可以更好的描述這個(gè)問(wèn)題膨报,如下圖所示:


圖中每個(gè)點(diǎn)都由 K 個(gè)子模型中的某一個(gè)生成

高斯混合模型聚類4.png
模型參數(shù)學(xué)習(xí)

對(duì)于單高斯模型,我們可以用最大似然法(Maximum likelihood)估算參數(shù)θ的值适荣,

高斯混合模型聚類5.png

這里我們假設(shè)了每個(gè)數(shù)據(jù)點(diǎn)都是獨(dú)立的(Independent)现柠,似然函數(shù)由概率密度函數(shù)(PDF)給出。


高斯混合模型聚類6.png

由于每個(gè)點(diǎn)發(fā)生的概率都很小弛矛,乘積會(huì)變得極其小够吩,不利于計(jì)算和觀察,因此通常我們用 Maximum Log-Likelihood 來(lái)計(jì)算(因?yàn)?Log 函數(shù)具備單調(diào)性汪诉,不會(huì)改變極值的位置废恋,同時(shí)在 0-1 之間輸入值很小的變化可以引起輸出值相對(duì)較大的變動(dòng)):


高斯混合模型聚類7.png

對(duì)于高斯混合模型,Log-Likelihood 函數(shù)是:

高斯混合模型聚類8.png

如何計(jì)算高斯混合模型的參數(shù)呢扒寄?這里我們無(wú)法像單高斯模型那樣使用最大似然法來(lái)求導(dǎo)求得使 likelihood 最大的參數(shù)鱼鼓,因?yàn)閷?duì)于每個(gè)觀測(cè)數(shù)據(jù)點(diǎn)來(lái)說(shuō),事先并不知道它是屬于哪個(gè)子分布的(hidden variable)该编,因此 log 里面還有求和迄本, K 個(gè)高斯模型的和不是一個(gè)高斯模型,對(duì)于每個(gè)子模型都有未知的α课竣,μ嘉赎,σ 置媳,直接求導(dǎo)無(wú)法計(jì)算。需要通過(guò)迭代的方法求解公条。
這就引出了下面這個(gè)算法EM算法:

期望最大化算法(EM算法)概述

先來(lái)看下整體的步驟的定義:


EM算法

那么拆解下來(lái)詳細(xì)看:

第一步 初始化 K 個(gè)高斯分布
那么需要設(shè)置這幾個(gè)高斯分布的均值和標(biāo)準(zhǔn)差拇囊,最簡(jiǎn)單的方法是設(shè)定為數(shù)據(jù)集本身的均值和標(biāo)準(zhǔn)差,另一種方法是在數(shù)據(jù)集使用k-means靶橱,然后使用由 k means生成的聚類來(lái)初始化這K個(gè)高斯分布寥袭。
下面的例子假設(shè)為2個(gè)高斯分布,隨機(jī)初始化了兩個(gè)分布的均值和標(biāo)準(zhǔn)差:

高斯混合模型聚類1.png

第二步 假設(shè)參數(shù)已知关霸,去估計(jì)隱藏變量的期望传黄,即將數(shù)據(jù)軟聚類成我們初始化的兩個(gè)高斯,這一步稱為期望步驟 或 E-step
公式如圖队寇,中間N()是正態(tài)分布的概率密度函數(shù)膘掰,那么N(A)是指屬于A正太的概率密度是多少,同理N(B)是指屬于B正太的概率密度是多少佳遣,那么E(Z_1A)中识埋,1是指某一個(gè)點(diǎn),A是指屬于A正太分布苍日,Z是所謂的隱藏變量或潛在變量惭聂,那么通過(guò)公式和具體的點(diǎn)和正態(tài)分布的均值標(biāo)準(zhǔn)差,就能計(jì)算出所有點(diǎn)的期望值相恃。

高斯混合模型聚類2.png

第三步 利用E步求得的隱藏變量的期望,根據(jù)最大似然估計(jì)求得參數(shù)笨觅,然后新得到的參數(shù)值重新被用于E步拦耐,即基于軟聚類重新估計(jì)高斯,即求極大见剩,計(jì)算新一輪迭代的模型參數(shù)杀糯,這一步稱為最大化步驟 或 M-step
這一步就是用第二步的結(jié)果作為輸入,來(lái)生成新的均值和標(biāo)準(zhǔn)差苍苞。
那么新均值固翰,怎么出來(lái)的呢?是所有屬于這一類的點(diǎn)的加權(quán)平均值羹呵,權(quán)值就是上面的期望值骂际,如圖:

高斯混合模型聚類3.png

這樣就得出了聚類A的新均值。
接著計(jì)算新標(biāo)準(zhǔn)差的平方即方差冈欢,整體思路差不多歉铝,套公式(跟傳統(tǒng)計(jì)算方差的公式很像)帶進(jìn)去算屬于該類的所有點(diǎn)加權(quán)平均的方差即可,同樣E是之前第二步計(jì)算出的期望值:
高斯混合模型聚類4.png

第四步 我們?cè)u(píng)估對(duì)數(shù)似然來(lái)檢查收斂凑耻,如果它收斂太示,則認(rèn)為一切正常柠贤,返回結(jié)果,如果它不收斂 我們回到第二步直到它收斂


高斯混合模型聚類4.png

這個(gè)計(jì)算出來(lái)的結(jié)果越高类缤,我們?cè)侥艽_定生成的混合模型適合我們有的數(shù)據(jù)集臼勉,所以我們的目的就是通過(guò)改變合適的混合系數(shù)π,均值μ餐弱,方差σ^2坚俗,從而來(lái)最大化這個(gè)值,即達(dá)到最大值或每一步開始增加一小部分岸裙,這樣就停止運(yùn)算猖败,然后選擇那些計(jì)算好的模型作為高斯混合模型的組成部分。

上面例子是使用方差來(lái)降允,只能衡量一維數(shù)據(jù)的離散程度恩闻,對(duì)于二維數(shù)據(jù),就用到了協(xié)方差(最上面提過(guò)的那個(gè)式子)剧董,那么就不單單是方差的圓形范圍而可以是橢圓范圍了幢尚。

使用協(xié)方差來(lái)進(jìn)行運(yùn)算,上面那些數(shù)據(jù)點(diǎn)就可以分成這樣:


使用協(xié)方差.png

具體的公式與推導(dǎo)可以看這里.

sklearn實(shí)現(xiàn)GMM
sklearn實(shí)現(xiàn)GMM.png
GMM優(yōu)缺點(diǎn)

優(yōu)點(diǎn):

  • 為我們提供軟聚類翅楼,軟聚類是多個(gè)聚類的示例性隸屬度尉剩。
  • 在聚類外觀方面很有靈活性
    缺點(diǎn):
  • 對(duì)初始化值很敏感
  • 有可能收斂到局部最優(yōu)
  • 收斂速度慢

五、聚類分析過(guò)程

1毅臊、總體流程

聚類分析.png

第一步 特征選擇和特征提取
特征選擇是從一組候選特征中選擇特征理茎,我們不必對(duì)所有的數(shù)據(jù)集都使用聚類方法,畢竟運(yùn)算量非常大管嬉,進(jìn)行選擇并提取后皂林,留下與所需數(shù)據(jù)強(qiáng)相關(guān)的數(shù)據(jù)從而來(lái)進(jìn)行運(yùn)算即可,特征提取是對(duì)數(shù)據(jù)進(jìn)行轉(zhuǎn)換蚯撩,以生成新的有用特征(例如PCA)
sklearn實(shí)現(xiàn)特征縮放

>>> from sklearn.preprocessing import MinMaxScaler
>>>
>>> data = [[-1, 2], [-0.5, 6], [0, 10], [1, 18]]
>>> scaler = MinMaxScaler()
>>> print(scaler.fit(data))
MinMaxScaler(copy=True, feature_range=(0, 1))
>>> print(scaler.data_max_)
[ 1. 18.]
>>> print(scaler.transform(data))
[[0.   0.  ]
 [0.25 0.25]
 [0.5  0.5 ]
 [1.   1.  ]]
>>> print(scaler.transform([[2, 2]]))
[[1.5 0. ]]

第二步 選擇一個(gè)聚類算法
根據(jù)需要做什么和數(shù)據(jù)的外觀础倍,試驗(yàn)?zāi)囊粋€(gè)算法可以給你更好的結(jié)果,沒(méi)有任何算法可以普遍地適用于我們可能面臨的問(wèn)題胎挎,在這一步沟启,我們必須選擇一個(gè)鄰近度度量,比如歐幾里得距離犹菇,余弦距離德迹,Pearson 相關(guān)系數(shù)等等。
第三步 聚類評(píng)價(jià)
評(píng)估一個(gè)聚類的效果如何项栏,除了在可能的情況下對(duì)聚類結(jié)果進(jìn)行可視化以外浦辨,我們還可以使用一些評(píng)分方法來(lái)評(píng)估,基于特定標(biāo)準(zhǔn)的聚類結(jié)構(gòu)的質(zhì)量,這些評(píng)分方法被稱為指數(shù)流酬,每一個(gè)指數(shù)稱為聚類有效性指標(biāo)
第四步 聚類結(jié)果解釋
可以從最終的聚類結(jié)構(gòu)中學(xué)習(xí)到什么樣的見(jiàn)解币厕,這一步驟需要領(lǐng)域?qū)I(yè)知識(shí)為集群提供標(biāo)簽,并試圖從中推斷出一些見(jiàn)解

2芽腾、詳解聚類評(píng)價(jià)

聚類評(píng)價(jià)是客觀和定量評(píng)估聚類結(jié)果的過(guò)程旦装,大多數(shù)評(píng)價(jià)指標(biāo)是通過(guò)緊湊性和可分性來(lái)定義的,緊湊性是衡量一個(gè)聚類中的元素彼此之間的距離摊滔,可分性是表示不同聚類之間的距離阴绢,聚類方法通常希望產(chǎn)生一個(gè)聚類中的元素彼此最相似,而聚類之間最不相同的聚類艰躺,聚類評(píng)價(jià)方法總共有三種:
2.1呻袭、外部指標(biāo)
處理有標(biāo)簽數(shù)據(jù)時(shí)使用的評(píng)分

羅列下外部指標(biāo).png

調(diào)整蘭德系數(shù)定義
調(diào)整蘭德系數(shù)1.jpg

調(diào)整蘭德系數(shù)優(yōu)缺點(diǎn)
優(yōu)點(diǎn):

  • 對(duì)任意數(shù)量的聚類中心和樣本數(shù),隨機(jī)聚類的ARI都非常接近于0腺兴;
  • 取值在[-1左电,1]之間,負(fù)數(shù)代表結(jié)果不好页响,越接近于1越好篓足;
  • 可用于聚類算法之間的比較。

缺點(diǎn):

  • 需要真實(shí)標(biāo)簽

舉例調(diào)整蘭德系數(shù)求解過(guò)程:

調(diào)整蘭德系數(shù).png

Sklearn實(shí)現(xiàn)

>>> from sklearn import metrics
>>> labels_true = [0, 0, 0, 1, 1, 1] 
>>> labels_pred = [0, 0, 1, 1, 2, 2] 
>>> metrics.adjusted_rand_score(labels_true, labels_pred) 
0.24

2.2闰蚕、內(nèi)部指標(biāo)
大部分非監(jiān)督學(xué)習(xí)是沒(méi)有評(píng)分栈拖,所以一般用內(nèi)部指標(biāo)比較合理,內(nèi)部指標(biāo)僅使用數(shù)據(jù)來(lái)衡量數(shù)據(jù)和結(jié)構(gòu)之間的吻合度

羅列下內(nèi)部指標(biāo).png

輪廓系數(shù)定義
輪廓系數(shù).jpg

另外提示下:處理 DBSCAN 時(shí)没陡,不要使用輪廓系數(shù)涩哟,而使用DBCV評(píng)價(jià)指標(biāo)。
舉例輪廓系數(shù)求解過(guò)程:
輪廓系數(shù)1.png

Sklearn實(shí)現(xiàn)

>>> import numpy as np 
>>> from sklearn.cluster import KMeans 
>>> kmeans_model = KMeans(n_clusters=3, random_state=1).fit(X) 
>>> labels = kmeans_model.labels_ 
>>> metrics.silhouette_score(X, labels, metric='euclidean') 
... 
0.55
...

2.3诗鸭、相對(duì)指標(biāo)
這個(gè)指標(biāo)表明兩個(gè)聚類結(jié)構(gòu)中哪一個(gè)在某種意義上更好染簇,基本上所有的外部指標(biāo)都能作為相對(duì)指標(biāo)

更多指標(biāo)詳解可以看這里

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市强岸,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌砾赔,老刑警劉巖蝌箍,帶你破解...
    沈念sama閱讀 222,183評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異暴心,居然都是意外死亡妓盲,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門专普,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)悯衬,“玉大人,你說(shuō)我怎么就攤上這事檀夹〗畲郑” “怎么了策橘?”我有些...
    開封第一講書人閱讀 168,766評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)娜亿。 經(jīng)常有香客問(wèn)我丽已,道長(zhǎng),這世上最難降的妖魔是什么买决? 我笑而不...
    開封第一講書人閱讀 59,854評(píng)論 1 299
  • 正文 為了忘掉前任沛婴,我火速辦了婚禮,結(jié)果婚禮上督赤,老公的妹妹穿的比我還像新娘嘁灯。我一直安慰自己,他們只是感情好躲舌,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,871評(píng)論 6 398
  • 文/花漫 我一把揭開白布丑婿。 她就那樣靜靜地躺著汰瘫,像睡著了一般锯厢。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上昆咽,一...
    開封第一講書人閱讀 52,457評(píng)論 1 311
  • 那天办悟,我揣著相機(jī)與錄音尘奏,去河邊找鬼。 笑死病蛉,一個(gè)胖子當(dāng)著我的面吹牛炫加,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播铺然,決...
    沈念sama閱讀 40,999評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼俗孝,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了魄健?” 一聲冷哼從身側(cè)響起赋铝,我...
    開封第一講書人閱讀 39,914評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎沽瘦,沒(méi)想到半個(gè)月后革骨,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,465評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡析恋,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,543評(píng)論 3 342
  • 正文 我和宋清朗相戀三年良哲,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片助隧。...
    茶點(diǎn)故事閱讀 40,675評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡筑凫,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情巍实,我是刑警寧澤滓技,帶...
    沈念sama閱讀 36,354評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站蔫浆,受9級(jí)特大地震影響殖属,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜瓦盛,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,029評(píng)論 3 335
  • 文/蒙蒙 一洗显、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧原环,春花似錦挠唆、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至谒麦,卻和暖如春俄讹,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背绕德。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工患膛, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人耻蛇。 一個(gè)月前我還...
    沈念sama閱讀 49,091評(píng)論 3 378
  • 正文 我出身青樓踪蹬,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親臣咖。 傳聞我的和親對(duì)象是個(gè)殘疾皇子跃捣,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,685評(píng)論 2 360

推薦閱讀更多精彩內(nèi)容