日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

聚类、K-Means、例子、细节

發(fā)布時(shí)間:2023/11/30 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 聚类、K-Means、例子、细节 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
聚類#####

今天說聚類,但是必須要先理解聚類和分類的區(qū)別,很多業(yè)務(wù)人員在日常分析時(shí)候不是很嚴(yán)謹(jǐn),混為一談,其實(shí)二者有本質(zhì)的區(qū)別。

分類其實(shí)是從特定的數(shù)據(jù)中挖掘模式,作出判斷的過程。比如Gmail郵箱里有垃圾郵件分類器,一開始的時(shí)候可能什么都不過濾,在日常使用過程中,我人工對(duì)于每一封郵件點(diǎn)選“垃圾”或“不是垃圾”,過一段時(shí)間,Gmail就體現(xiàn)出一定的智能,能夠自動(dòng)過濾掉一些垃圾郵件了。這是因?yàn)樵邳c(diǎn)選的過程中,其實(shí)是給每一條郵件打了一個(gè)“標(biāo)簽”,這個(gè)標(biāo)簽只有兩個(gè)值,要么是“垃圾”,要么“不是垃圾”,Gmail就會(huì)不斷研究哪些特點(diǎn)的郵件是垃圾,哪些特點(diǎn)的不是垃圾,形成一些判別的模式,這樣當(dāng)一封信的郵件到來,就可以自動(dòng)把郵件分到“垃圾”和“不是垃圾”這兩個(gè)我們?nèi)斯ぴO(shè)定的分類的其中一個(gè)。

** 聚類**的的目的也是把數(shù)據(jù)分類,但是事先我是不知道如何去分的,完全是算法自己來判斷各條數(shù)據(jù)之間的相似性,相似的就放在一起。在聚類的結(jié)論出來之前,我完全不知道每一類有什么特點(diǎn),一定要根據(jù)聚類的結(jié)果通過人的經(jīng)驗(yàn)來分析,看看聚成的這一類大概有什么特點(diǎn)。

K-Means#####

聚類算法有很多種(幾十種),K-Means是聚類算法中的最常用的一種,算法最大的特點(diǎn)是簡單,好理解,運(yùn)算速度快,但是只能應(yīng)用于連續(xù)型的數(shù)據(jù),并且一定要在聚類前需要手工指定要分成幾類。

下面,我們描述一下K-means算法的過程,為了盡量不用數(shù)學(xué)符號(hào),所以描述的不是很嚴(yán)謹(jǐn),大概就是這個(gè)意思,“物以類聚、人以群分”:

  • 首先輸入k的值,即我們希望將數(shù)據(jù)集經(jīng)過聚類得到k個(gè)分組。
  • 從數(shù)據(jù)集中隨機(jī)選擇k個(gè)數(shù)據(jù)點(diǎn)作為初始大哥(質(zhì)心,Centroid)
  • 對(duì)集合中每一個(gè)小弟,計(jì)算與每一個(gè)大哥的距離(距離的含義后面會(huì)講),離哪個(gè)大哥距離近,就跟定哪個(gè)大哥。
  • 這時(shí)每一個(gè)大哥手下都聚集了一票小弟,這時(shí)候召開人民代表大會(huì),每一群選出新的大哥(其實(shí)是通過算法選出新的質(zhì)心)。
  • 如果新大哥和老大哥之間的距離小于某一個(gè)設(shè)置的閾值(表示重新計(jì)算的質(zhì)心的位置變化不大,趨于穩(wěn)定,或者說收斂),可以認(rèn)為我們進(jìn)行的聚類已經(jīng)達(dá)到期望的結(jié)果,算法終止。
  • 如果新大哥和老大哥距離變化很大,需要迭代3~5步驟。
  • 簡單的手算例子#####

    我搞了6個(gè)點(diǎn),從圖上看應(yīng)該分成兩推兒,前三個(gè)點(diǎn)一堆兒,后三個(gè)點(diǎn)是另一堆兒。現(xiàn)在手工執(zhí)行K-Means,體會(huì)一下過程,同時(shí)看看結(jié)果是不是和預(yù)期一致。

    case

    1.選擇初始大哥:我們就選P1和P2

    2.計(jì)算小弟和大哥的距離:P3到P1的距離從圖上也能看出來(勾股定理),是√10 = 3.16;P3到P2的距離√((3-1)2+(1-2)2 = √5 = 2.24,所以P3離P2更近,P3就跟P2混。同理,P4、P5、P6也這么算,如下:

    round1P3到P6都跟P2更近,所以第一次站隊(duì)的結(jié)果是:

    • 組A:P1
    • 組B:P2、P3、P4、P5、P6

    3.人民代表大會(huì):組A沒啥可選的,大哥還是P1自己組B有五個(gè)人,需要選新大哥,這里要注意選大哥的方法是每個(gè)人X坐標(biāo)的平均值和Y坐標(biāo)的平均值組成的新的點(diǎn),為新大哥,也就是說這個(gè)大哥是“虛擬的”。因此,B組選出新大哥的坐標(biāo)為:P哥((1+3+8+9+10)/5,(2+1+8+10+7)/5)=(6.2,5.6)。綜合兩組,新大哥為P1(0,0),P哥(6.2,5.6),而P2-P6重新成為小弟

    4.再次計(jì)算小弟到大哥的距離:

    round2這時(shí)可以看到P2、P3離P1更近,P4、P5、P6離P哥更近,所以第二次站隊(duì)的結(jié)果是:

    • 組A:P1、P2、P3
    • 組B:P4、P5、P6(虛擬大哥這時(shí)候消失)

    5.第二屆人民代表大會(huì):按照上一屆大會(huì)的方法選出兩個(gè)新的虛擬大哥:P哥1(1.33,1) P哥2(9,8.33),P1-P6都成為小弟

    6.第三次計(jì)算小弟到大哥的距離:

    round3這時(shí)可以看到P1、P2、P3離P哥1更近,P4、P5、P6離P哥2更近,所以第二次站隊(duì)的結(jié)果是:

    • 組A:P1、P2、P3
    • 組B:P4、P5、P6

    我們發(fā)現(xiàn),這次站隊(duì)的結(jié)果和上次沒有任何變化了,說明已經(jīng)收斂,聚類結(jié)束,聚類結(jié)果和我們最開始設(shè)想的結(jié)果完全一致。

    K-Means的細(xì)節(jié)問題#####
  • K值怎么定?我怎么知道應(yīng)該幾類?答:這個(gè)真的沒有確定的做法,分幾類主要取決于個(gè)人的經(jīng)驗(yàn)與感覺,通常的做法是多嘗試幾個(gè)K值,看分成幾類的結(jié)果更好解釋,更符合分析目的等。或者可以把各種K值算出的SSE做比較,取最小的SSE的K值。

  • 初始的K個(gè)質(zhì)心怎么選?答:最常用的方法是隨機(jī)選,初始質(zhì)心的選取對(duì)最終聚類結(jié)果有影響,因此算法一定要多執(zhí)行幾次,哪個(gè)結(jié)果更reasonable,就用哪個(gè)結(jié)果。 當(dāng)然也有一些優(yōu)化的方法,第一種是選擇彼此距離最遠(yuǎn)的點(diǎn),具體來說就是先選第一個(gè)點(diǎn),然后選離第一個(gè)點(diǎn)最遠(yuǎn)的當(dāng)?shù)诙€(gè)點(diǎn),然后選第三個(gè)點(diǎn),第三個(gè)點(diǎn)到第一、第二兩點(diǎn)的距離之和最小,以此類推。第二種是先根據(jù)其他聚類算法(如層次聚類)得到聚類結(jié)果,從結(jié)果中每個(gè)分類選一個(gè)點(diǎn)。

  • K-Means會(huì)不會(huì)陷入一直選質(zhì)心的過程,永遠(yuǎn)停不下來?答:不會(huì),有數(shù)學(xué)證明K-Means一定會(huì)收斂,大致思路是利用SSE的概念(也就是誤差平方和),即每個(gè)點(diǎn)到自身所歸屬質(zhì)心的距離的平方和,這個(gè)平方和是一個(gè)函數(shù),然后能夠證明這個(gè)函數(shù)是可以最終收斂的函數(shù)。

  • 判斷每個(gè)點(diǎn)歸屬哪個(gè)質(zhì)心的距離怎么算?答:這個(gè)問題必須不得不提一下數(shù)學(xué)了……第一種,歐幾里德距離(歐幾里德這位爺還是很厲害的,《幾何原本》被稱為古希臘數(shù)學(xué)的高峰,就是用5個(gè)公理推導(dǎo)出了整個(gè)平面幾何的結(jié)論),這個(gè)距離就是平時(shí)我們理解的距離,如果是兩個(gè)平面上的點(diǎn),也就是(X1,Y1),和(X2,Y2),那這倆點(diǎn)距離是多少初中生都會(huì),就是√( (x1-x2)2+(y1-y2)2) ,如果是三維空間中呢?√( (x1-x2)2+(y1-y2)2+(z1-z2)^2 ;推廣到高維空間公式就以此類推。可以看出,歐幾里德距離真的是數(shù)學(xué)加減乘除算出來的距離,因此這就是只能用于連續(xù)型變量的原因。第二種,余弦相似度,余弦相似度用向量空間中兩個(gè)向量夾角的余弦值作為衡量兩個(gè)個(gè)體間差異的大小。相比距離度量,余弦相似度更加注重兩個(gè)向量在方向上的差異,而非距離或長度上。下圖表示余弦相似度的余弦是哪個(gè)角的余弦,A,B是三維空間中的兩個(gè)向量,這兩個(gè)點(diǎn)與三維空間原點(diǎn)連線形成的角,如果角度越小,說明這兩個(gè)向量在方向上越接近,在聚類時(shí)就歸成一類:

    cosine看一個(gè)例子(也許不太恰當(dāng)):歌手大賽,三個(gè)評(píng)委給三個(gè)歌手打分,第一個(gè)評(píng)委的打分(10,8,9) 第二個(gè)評(píng)委的打分(4,3,2),第三個(gè)評(píng)委的打分(8,9,10)如果采用余弦相似度來看每個(gè)評(píng)委的差異,雖然每個(gè)評(píng)委對(duì)同一個(gè)選手的評(píng)分不一樣,但第一、第二兩個(gè)評(píng)委對(duì)這四位歌手實(shí)力的排序是一樣的,只是第二個(gè)評(píng)委對(duì)滿分有更高的評(píng)判標(biāo)準(zhǔn),說明第一、第二個(gè)評(píng)委對(duì)音樂的品味上是一致的。因此,用余弦相似度來看,第一、第二個(gè)評(píng)委為一類人,第三個(gè)評(píng)委為另外一類。如果采用歐氏距離, 第一和第三個(gè)評(píng)委的歐氏距離更近,就分成一類人了,但其實(shí)不太合理,因?yàn)樗麄儗?duì)于四位選手的排名都是完全顛倒的。總之,如果注重?cái)?shù)值本身的差異,就應(yīng)該用歐氏距離,如果注重的是上例中的這種的差異(我概括不出來到底是一種什么差異……),就要用余弦相似度來計(jì)算。還有其他的一些計(jì)算距離的方法,但是都是歐氏距離和余弦相似度的衍生,簡單羅列如下:明可夫斯基距離、切比雪夫距離、曼哈頓距離、馬哈拉諾比斯距離、調(diào)整后的余弦相似度、Jaccard相似系數(shù)……

  • 還有一個(gè)重要的問題是,大家的單位要一致!比如X的單位是米,Y也是米,那么距離算出來的單位還是米,是有意義的但是如果X是米,Y是噸,用距離公式計(jì)算就會(huì)出現(xiàn)“米的平方”加上“噸的平方”再開平方,最后算出的東西沒有數(shù)學(xué)意義,這就有問題了。還有,即使X和Y單位一致,但是如果數(shù)據(jù)中X整體都比較小,比如都是1到10之間的數(shù),Y很大,比如都是1000以上的數(shù),那么,在計(jì)算距離的時(shí)候Y起到的作用就比X大很多,X對(duì)于距離的影響幾乎可以忽略,這也有問題。因此,如果K-Means聚類中選擇歐幾里德距離計(jì)算距離,數(shù)據(jù)集又出現(xiàn)了上面所述的情況,就一定要進(jìn)行數(shù)據(jù)的標(biāo)準(zhǔn)化(normalization),即將數(shù)據(jù)按比例縮放,使之落入一個(gè)小的特定區(qū)間。去除數(shù)據(jù)的單位限制,將其轉(zhuǎn)化為無量綱的純數(shù)值,便于不同單位或量級(jí)的指標(biāo)能夠進(jìn)行計(jì)算和比較。標(biāo)準(zhǔn)化方法最常用的有兩種:

    • min-max標(biāo)準(zhǔn)化(離差標(biāo)準(zhǔn)化):對(duì)原始數(shù)據(jù)進(jìn)行線性變換,是結(jié)果落到【0,1】區(qū)間,轉(zhuǎn)換方法為 X'=(X-min)/(max-min),其中max為樣本數(shù)據(jù)最大值,min為樣本數(shù)據(jù)最小值。
    • z-score標(biāo)準(zhǔn)化(標(biāo)準(zhǔn)差標(biāo)準(zhǔn)化):處理后的數(shù)據(jù)符合標(biāo)準(zhǔn)正態(tài)分布(均值為0,方差為1),轉(zhuǎn)換公式:X減去均值,再除以標(biāo)準(zhǔn)差
  • 每一輪迭代如何選出新的質(zhì)心?答:各個(gè)維度的算術(shù)平均,比如(X1,Y1,Z1)、(X2,Y2,Z2)、(X3,Y3,Z3),那就新質(zhì)心就是【(X1+X2+X3)/3,(Y1+Y2+Y3)/3,(Z1,Z2,Z3)/3】,這里要注意,新質(zhì)心不一定是實(shí)際的一個(gè)數(shù)據(jù)點(diǎn)。

  • 關(guān)于離群值?答:離群值就是遠(yuǎn)離整體的,非常異常、非常特殊的數(shù)據(jù)點(diǎn),在聚類之前應(yīng)該將這些“極大”“極小”之類的離群數(shù)據(jù)都去掉,否則會(huì)對(duì)于聚類的結(jié)果有影響。但是,離群值往往自身就很有分析的價(jià)值,可以把離群值單獨(dú)作為一類來分析。

  • 用SPSS作出的K-Means聚類結(jié)果,包含ANOVA(單因素方差分析),是什么意思?答:答簡單說就是判斷用于聚類的變量是否對(duì)于聚類結(jié)果有貢獻(xiàn),方差分析檢驗(yàn)結(jié)果越顯著的變量,說明對(duì)聚類結(jié)果越有影響。對(duì)于不顯著的變量,可以考慮從模型中剔除。

  • 五、聚類分析中業(yè)務(wù)專家的作用#####

    業(yè)務(wù)專家的作用非常大,主要體現(xiàn)在聚類變量的選擇和對(duì)于聚類結(jié)果的解讀:

  • 比如要對(duì)于現(xiàn)有的客戶分群,那么就要根據(jù)最終分群的目的選擇不同的變量來分群,這就需要業(yè)務(wù)專家經(jīng)驗(yàn)支持。如果要優(yōu)化客戶服務(wù)的渠道,那么就應(yīng)選擇與渠道相關(guān)的數(shù)據(jù);如果要推廣一個(gè)新產(chǎn)品,那就應(yīng)該選用用戶目前的使用行為的數(shù)據(jù)來歸類用戶的興趣。算法是無法做到這一點(diǎn)的
  • 欠缺經(jīng)驗(yàn)的分析人員和經(jīng)驗(yàn)豐富的分析人員對(duì)于結(jié)果的解讀會(huì)有很大差異。其實(shí)不光是聚類分析,所有的分析都不能僅僅依賴統(tǒng)計(jì)學(xué)家或者數(shù)據(jù)工程師。
  • 作者:程sir 鏈接:http://www.jianshu.com/p/fc91fed8c77b 來源:簡書 著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。

    總結(jié)

    以上是生活随笔為你收集整理的聚类、K-Means、例子、细节的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。