K-Means聚類的一些小問題

K-Means的細節問題#####算法

  1. K值怎麼定?我怎麼知道應該幾類?
    答:這個真的沒有肯定的作法,分幾類主要取決於我的的經驗與感受,一般的作法是多嘗試幾個K值,看分紅幾類的結果更好解釋,更符合分析目的等。或者能夠把各類K值算出的SSE作比較,取最小的SSE的K值。函數

  2. 初始的K個質心怎麼選?
    答:最經常使用的方法是隨機選,初始質心的選取對最終聚類結果有影響,所以算法必定要多執行幾回,哪一個結果更reasonable,就用哪一個結果。 固然也有一些優化的方法,第一種是選擇彼此距離最遠的點,具體來講就是先選第一個點,而後選離第一個點最遠的當第二個點,而後選第三個點,第三個點到第1、第二兩點的距離之和最小,以此類推。第二種是先根據其餘聚類算法(如層次聚類)獲得聚類結果,從結果中每一個分類選一個點。優化

  3. K-Means會不會陷入一直選質心的過程,永遠停不下來?
    答:不會,有數學證實K-Means必定會收斂,大體思路是利用SSE的概念(也就是偏差平方和),即每一個點到自身所歸屬質心的距離的平方和,這個平方和是一個函數,而後可以證實這個函數是能夠最終收斂的函數。orm

  4. 判斷每一個點歸屬哪一個質心的距離怎麼算?
    答:這個問題必須不得不提一下數學了……
    第一種,歐幾里德距離(歐幾里德這位爺仍是很厲害的,《幾何本來》被稱爲古希臘數學的高峯,就是用5個公理推導出了整個平面幾何的結論),這個距離就是平時咱們理解的距離,若是是兩個平面上的點,也就是(X1,Y1),和(X2,Y2),那這倆點距離是多少初中生都會,就是√( (x1-x2)2+(y1-y2)2) ,若是是三維空間中呢?√( (x1-x2)2+(y1-y2)2+(z1-z2)^2 ;推廣到高維空間公式就以此類推。能夠看出,歐幾里德距離真的是數學加減乘除算出來的距離,所以這就是隻能用於連續型變量的緣由。
    第二種,餘弦類似度,餘弦類似度用向量空間中兩個向量夾角的餘弦值做爲衡量兩個個體間差別的大小。相比距離度量,餘弦類似度更加註重兩個向量在方向上的差別,而非距離或長度上。下圖表示餘弦類似度的餘弦是哪一個角的餘弦,A,B是三維空間中的兩個向量,這兩個點與三維空間原點連線造成的角,若是角度越小,說明這兩個向量在方向上越接近,在聚類時就歸成一類:排序

    cosine數學


    看一個例子(也許不太恰當):歌手大賽,三個評委給三個歌手打分,第一個評委的打分(10,8,9) 第二個評委的打分(4,3,2),第三個評委的打分(8,9,10)
    若是採用餘弦類似度來看每一個評委的差別,雖然每一個評委對同一個選手的評分不同,但第1、第二兩個評委對這四位歌手實力的排序是同樣的,只是第二個評委對滿分有更高的評判標準,說明第1、第二個評委對音樂的品味上是一致的。
    所以,用餘弦類似度來看,第1、第二個評委爲一類人,第三個評委爲另一類。
    若是採用歐氏距離, 第一和第三個評委的歐氏距離更近,就分紅一類人了,但其實不太合理,由於他們對於四位選手的排名都是徹底顛倒的。
    總之,若是注重數值自己的差別,就應該用歐氏距離,若是注重的是上例中的這種的差別(我歸納不出來究竟是一種什麼差別……),就要用餘弦類似度來計算。
    還有其餘的一些計算距離的方法,可是都是歐氏距離和餘弦類似度的衍生,簡單羅列以下:明可夫斯基距離、切比雪夫距離、曼哈頓距離、馬哈拉諾比斯距離、調整後的餘弦類似度、Jaccard類似係數……

     

  5. 還有一個重要的問題是,你們的單位要一致!
    好比X的單位是米,Y也是米,那麼距離算出來的單位仍是米,是有意義的
    可是若是X是米,Y是噸,用距離公式計算就會出現「米的平方」加上「噸的平方」再開平方,最後算出的東西沒有數學意義,這就有問題了。
    還有,即便X和Y單位一致,可是若是數據中X總體都比較小,好比都是1到10之間的數,Y很大,好比都是1000以上的數,那麼,在計算距離的時候Y起到的做用就比X大不少,X對於距離的影響幾乎能夠忽略,這也有問題。
    所以,若是K-Means聚類中選擇歐幾里德距離計算距離,數據集又出現了上面所述的狀況,就必定要進行數據的標準化(normalization),即將數據按比例縮放,使之落入一個小的特定區間。去除數據的單位限制,將其轉化爲無量綱的純數值,便於不一樣單位或量級的指標可以進行計算和比較。
    標準化方法最經常使用的有兩種:產品

  • min-max標準化(離差標準化):對原始數據進行線性變換,是結果落到【0,1】區間,轉換方法爲 X'=(X-min)/(max-min),其中max爲樣本數據最大值,min爲樣本數據最小值。
  • z-score標準化(標準差標準化):處理後的數據符合標準正態分佈(均值爲0,方差爲1),轉換公式:X減去均值,再除以標準差
  1. 每一輪迭代如何選出新的質心?
    答:各個維度的算術平均,好比(X1,Y1,Z1)、(X2,Y2,Z2)、(X3,Y3,Z3),那就新質心就是【(X1+X2+X3)/3,(Y1+Y2+Y3)/3,(Z1,Z2,Z3)/3】,這裏要注意,新質心不必定是實際的一個數據點。io

  2. 關於離羣值?
    答:離羣值就是遠離總體的,很是異常、很是特殊的數據點,在聚類以前應該將這些「極大」「極小」之類的離羣數據都去掉,不然會對於聚類的結果有影響。可是,離羣值每每自身就頗有分析的價值,能夠把離羣值單獨做爲一類來分析。變量

  3. 用SPSS做出的K-Means聚類結果,包含ANOVA(單因素方差分析),是什麼意思?
    答:答簡單說就是判斷用於聚類的變量是否對於聚類結果有貢獻,方差分析檢驗結果越顯著的變量,說明對聚類結果越有影響。對於不顯著的變量,能夠考慮從模型中剔除。方法

5、聚類分析中業務專家的做用#####

業務專家的做用很是大,主要體如今聚類變量的選擇和對於聚類結果的解讀:

  1. 好比要對於現有的客戶分羣,那麼就要根據最終分羣的目的選擇不一樣的變量來分羣,這就須要業務專家經驗支持。若是要優化客戶服務的渠道,那麼就應選擇與渠道相關的數據;若是要推廣一個新產品,那就應該選用用戶目前的使用行爲的數據來歸類用戶的興趣。算法是沒法作到這一點的
  2. 欠缺經驗的分析人員和經驗豐富的分析人員對於結果的解讀會有很大差別。其實不光是聚類分析,全部的分析都不能僅僅依賴統計學家或者數據工程師。

做者:程sir 連接:https://www.jianshu.com/p/fc91fed8c77b 來源:簡書 著做權歸做者全部。商業轉載請聯繫做者得到受權,非商業轉載請註明出處。

相關文章
相關標籤/搜索