如何用聚類模型(k-means)做數(shù)據(jù)分析?

3 評論 22638 瀏覽 39 收藏 11 分鐘

編輯導語:由于數(shù)據(jù)對于各行各業(yè)的人來說是越來越重要的存在,于是近年來關(guān)于數(shù)據(jù)分析的方法也是越來越多。在本篇文章中,作者為我們介紹了聚類模型,看看應該如何用聚類模型(k-means)來做數(shù)據(jù)分析吧。

在日常工作中,很多時候都會用到數(shù)據(jù)分析的方法,聚類模型模型看起來非常簡單,但實際上它的十分重要;本文作者分享了關(guān)于如何用聚類模型做數(shù)據(jù)分析的方法,我們一起來學習一下。

k-means屬于無監(jiān)督學習算法,無監(jiān)督算法的內(nèi)涵是觀察無標簽數(shù)據(jù)集自動發(fā)現(xiàn)隱藏結(jié)構(gòu)和層次,在無標簽數(shù)據(jù)中尋找隱藏規(guī)律。

聚類模型在數(shù)據(jù)分析當中的應用:既可以作為一個單獨過程,用于尋找數(shù)據(jù)內(nèi)在規(guī)律,也可以作為分類等其他分析任務(wù)的前置探索。

例如:我們想探尋我們產(chǎn)品站內(nèi)都有哪些社交行為群體,剛開始拍腦門想可能并不會很容易。

這時候可以根據(jù)用戶屬性、行為對用戶進行聚類,根據(jù)結(jié)果將每個簇定義為一類社交群體,基于這些類訓練后續(xù)的分類模型,給用戶打標簽后進行個性化推薦、運營。

一、k-means算法與距離

K-means聚類的目標,是將n個觀測數(shù)據(jù)點按照一定標準劃分到k個聚類中,數(shù)據(jù)點根據(jù)相似度劃分。每一個聚類有一個質(zhì)心,質(zhì)心是對聚類中所有點的位置求平均值得到的點,每個觀測點屬于距離它最近的質(zhì)心所代表的聚類。

模型最終會選擇n個觀測點到所屬聚類質(zhì)心距離平方和(損失函數(shù))最小的聚類方式作為模型輸出,K-means聚類分析中,特征變量需要是數(shù)值變量,以便于計算距離。

我們使用距離來測量兩個樣本的相似性,距離的實質(zhì)是他將兩個具有多維特征數(shù)據(jù)的樣本的比較映射成一個數(shù)字,可以通過這個數(shù)字的大小來衡量距離。

幾個常見距離計算方法:

  1. 歐幾里得距離-直線距離,不適合高維度數(shù)據(jù),對某一維度大數(shù)值差異更加敏感;
  2. 曼哈頓距離-也叫出租車距離,用來標明兩個點在標準坐標系上的絕對軸距總和,只計算水平或垂直距離,對某一維度大數(shù)值差異不敏感;
  3. Hamming距離-可用來測量含有分類值的向量之間的距離;
  4. 余弦距離-通過計算兩個向量的夾角余弦值來評估相似度,適用于結(jié)果與數(shù)據(jù)中特征的取值大小無關(guān),而與不同特征之間比值有關(guān)的案例。

k-means的實質(zhì)是每次都把質(zhì)心移動到群內(nèi)所有點的‘means’上,不是建立在距離這個基礎(chǔ)上,而是建立在最小化方差和的基礎(chǔ)上,方差恰好是歐幾里得距離平方,如果采用其他距離但依然去最小化方差和,會導致整個算法無法收斂,所以k-means使用歐幾里得方法。

二、k-means算法原理

第一步:數(shù)據(jù)歸一化、離群點處理后,隨機選擇k個聚類質(zhì)心,k的選擇下一節(jié)詳細講;第二步:所有數(shù)據(jù)點關(guān)聯(lián)劃分到離自己最近的質(zhì)心,并以此為基礎(chǔ)劃分聚類;第三步:將質(zhì)點移動到當前劃分聚類包含所有數(shù)據(jù)點的中心(means);

重復第二步、第三步n次,直到所有點到其所屬聚類質(zhì)心的距離平方和最小。

如何用聚類模型(k-means)做數(shù)據(jù)分析?

如何用聚類模型(k-means)做數(shù)據(jù)分析?

多次隨機:選擇聚幾類,則開始隨機選擇幾個聚類質(zhì)心,基于不同隨機初始質(zhì)心(第一步的質(zhì)心)的嘗試:

  • 嘗試1:第一步→第二步→第三步 … (重復二、三步~10次)→聚類方式1
  • 嘗試2:第一步→第二步→第三步 … (重復二、三步~10次)→聚類方式2

在所有嘗試結(jié)果中,選擇所有點到其所屬聚類質(zhì)心的距離平方和(方差和)最小的聚類方式。

三、k值選擇方法

K值的選擇是k-means算法很重要的一步,K值選擇方法有肘部法則、拍腦袋法、gap statistic法、輪廓系數(shù)等,本篇主要介紹肘部法則及gap statistic兩種常用方法。

1. 肘部法則

我們可以嘗試不同的K值,并將不同K值所對應的損失函數(shù)畫成折線,橫軸為K的取值,縱軸為距離平方和定義的損失函數(shù),距離平方和隨著K的變大而減小。

當K=5時,存在一個拐點,像人的肘部一樣,當k<5時,曲線極速下降,當K>5時,曲線趨于平穩(wěn),拐點即為K的最佳取值。

如何用聚類模型(k-means)做數(shù)據(jù)分析?

2. 間隔統(tǒng)計量(gap statistic)

手肘法則是強依賴經(jīng)驗的方法,而gap statistic方法則不強依賴經(jīng)驗,只需要找到最大gap statistic 所對應的K即可,我們繼續(xù)使用上面的損失函數(shù),當分為K組時,對應的損失函數(shù)為Dk,則gap statistic定義為:

如何用聚類模型(k-means)做數(shù)據(jù)分析?

這里的E(logDk)是logDk的期望,通過蒙特卡洛模擬產(chǎn)生,我們在樣本所在的區(qū)域內(nèi)按照均勻分布隨機產(chǎn)生和原始樣本數(shù)一樣多的隨機樣本,并對這些隨機樣本做k-means,得到對應的損失函數(shù)Dk,重復多次即可得出E(logDk)的近似值,從而最終可以計算gap statistic。

而gap statistic取得最大值所對應的K就是最佳的分組數(shù)。如下圖所示,K=3時,Gap(K)的取值最大,所以3為K的最佳取值。

如何用聚類模型(k-means)做數(shù)據(jù)分析?

四、k-means數(shù)據(jù)分析實戰(zhàn)案例

案例背景:O2O平臺為了更好地為線下店面服務(wù),增加一個增值服務(wù),即利用自己擁有的地理位置數(shù)據(jù)為線下店面選址,數(shù)據(jù)如下:

如何用聚類模型(k-means)做數(shù)據(jù)分析?

每一條數(shù)據(jù)是一個興趣點(POI – Point of Interest)的特征,具體指的是以這個位置為中心的500米半徑圓里,各類商家/設(shè)施的數(shù)量,數(shù)據(jù)中我們隱藏掉了每個POI的具體名稱、坐標、類型。

選址的商家將試圖從這些位置中,選擇一個作為下一個店面的位置。

商家想知道這40個潛在店面位置之間是否有顯著的差異。我們可以將所有POI按照相似程度,劃分成幾個類別?

步驟:

如何用聚類模型(k-means)做數(shù)據(jù)分析?

  • 數(shù)據(jù)準備:數(shù)據(jù)獲取、數(shù)據(jù)清洗、數(shù)據(jù)變換等步驟,重點是針對分析目的,進行特征選擇以及特征標準化;
  • 數(shù)據(jù)建模:使用k-means算法進行數(shù)據(jù)建模;
  • 后續(xù)分析:聚類模型的特征描述分析,基于業(yè)務(wù)問題,進一步分析。

1. 讀取數(shù)據(jù)

如何用聚類模型(k-means)做數(shù)據(jù)分析?

2. 特征選取

如何用聚類模型(k-means)做數(shù)據(jù)分析?

3. 標準化

如何用聚類模型(k-means)做數(shù)據(jù)分析?

4. k值選擇

如何用聚類模型(k-means)做數(shù)據(jù)分析?

5. 模型建立

如何用聚類模型(k-means)做數(shù)據(jù)分析?

6. 聚類分析,對每一聚類進行進一步分析和描述

如何用聚類模型(k-means)做數(shù)據(jù)分析?

根據(jù)描述分析,生成poi聚類結(jié)果畫像,利用聚類,對人群/商品/行為標簽進行精細劃分,作為進一步商業(yè)決策的基礎(chǔ)。

如何用聚類模型(k-means)做數(shù)據(jù)分析?

k-means是面試常考算法,其算法原理簡單,且參數(shù)很少,也是業(yè)界的常用算法。

但是其缺點也很明顯,例如其對離群點較敏感、容易產(chǎn)生局部最優(yōu)(多次隨機來解決)、需要提前確定k值、聚類結(jié)果依賴初始位置選擇等。

在接下來的文章中,會繼續(xù)為大家介紹其他的常用聚類算法,例如層次聚類、密度聚類(dbscan),敬請期待吧~

 

作者:趙小洛,公眾號:趙小洛洛洛

本文由 @趙小洛 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載

題圖來自Unsplash,基于CC0協(xié)議

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 案例那邊有數(shù)據(jù)么,我想自己試試,有點看不懂

    來自浙江 回復
  2. 聚類結(jié)果1-5是怎么對應出區(qū)域的呢

    回復
  3. 整體講的清晰易懂,不過在k的選擇那塊還是有點懵,感覺何為拐點很難選擇,gap statistic的概念也沒有完全理解

    來自浙江 回復