機器學習第十六講:K-means → 自動把超市顧客分成不同消費群體
資料取自《零基礎學機器學習》。
查看總目錄:學習大綱
關于DeepSeek本地部署指南可以看下我之前寫的文章:DeepSeek R1本地與線上滿血版部署:超詳細手把手指南
K-means是一種用于自動將相似數據分組的無監督學習算法。下面用超市顧客分組的例子詳細講解:
一、核心原理(類似整理雜貨鋪)
假設你有一堆散落的商品要分類擺放,但不知道應該分幾類。K-means的解決步驟是:
- 隨機選位置:先猜測分3類,在賣場隨機選3個貨架位置作為初始"中心點" [1-3][3]
- 就近擺放:把所有商品擺到離它最近的貨架周圍,形成3個臨時區域 [^3]
- 調整中心:在每個臨時區域中心放個新貨架,替代原來的隨機位置 [^3]
- 重復優化:根據新貨架位置重新擺放商品,直到貨架位置不再明顯變化 [^3]
二、超市顧客分群實戰
案例背景:某超市收集了200名顧客的:
- 年收入(萬元)
- 消費分數(0-100分,綜合消費金額和頻率)[^1]
-
選擇關鍵特征:這里選年收入和消費分數,就像選"尺子"來度量顧客差異 [^1]
示例數據片段:
| 顧客ID | 年收入 | 消費分數 |
|--------|--------|----------|
| 001 | 38 | 82 |
| 002 | 43 | 78 | -
確定分組數量K:用手肘法找最佳分組數 [^3]
- 原理:計算不同K值時的總誤差(各點到中心的距離和)
- 圖示:當誤差下降變緩時,就像人手臂的"肘關節",選這個K值
# 代碼示例(Python) cost = [] for k in 1到10:用K-means分組記錄當前總誤差 plt.plot(cost) # 找肘部拐點
-
生成4個消費群體(當K=4時)[1][2]
- 簇1(藍):高收入-高消費 → 重點維護的VIP客戶
- 簇2(綠):中等收入-高消費 → 高潛力客戶
- 簇3(紅):低收入-低消費 → 普通客戶
- 簇4(青):高收入-低消費 → 需提升消費意愿
三、應用價值與局限
適用場景 ? 銀行客戶分群/新聞主題聚類/市場細分 [^5-3]
優點:簡單高效,適合處理大型數據集
缺點:需要人工確定K值,對異常值敏感
生活類比:就像給圖書館散落的書籍分類,先估計大概有幾個主題區,不斷調整書架位置直到形成自然的圖書集群 [^3]
目錄:總目錄
上篇文章:機器學習第十五講:決策樹全面講解:像玩"20個問題"游戲猜身份🎮
下篇文章:機器學習第十七講:PCA → 把100維數據壓縮成3D視圖仍保持主要特征
[^1-3]《零基礎學機器學習》第一章第三節類型劃分
[^5-3]《零基礎學機器學習》第五章第五節聚類算法
[1][2][^3]參見客戶聚類案例代碼(《零基礎學機器學習》第十章教學用例)