乾貨 :基於使用者畫像的聚類分析
聚類(Clustering),顧名思義就是“物以類聚,人以群分”,其主要思想是按照特定標準把資料集聚合成不同的簇,使同一簇內的資料物件的相似性儘可能大,同時,使不在同一簇內的資料物件的差異性儘可能大。通俗地說,就是把相似的物件分到同一組。
聚類演算法通常不使用訓練資料,只要計算物件間的相似度即可應用演算法。這在機器學習領域中被稱為無監督學習。
某大型保險企業擁有海量投保客戶資料,由於大資料技術與相關人才的緊缺,企業尚未建立統一的資料倉儲與運營平臺,積累多年的資料無法發揮應有的價值。企業期望搭建使用者畫像,對客戶進行群體分析與個性化運營,以此啟用老客戶,挖掘百億續費市場。眾安科技資料團隊對該企業資料進行建模,輸出使用者畫像並搭建智慧營銷平臺。再基於使用者畫像資料進行客戶分群研究,制訂個性化運營策略。
本文重點介紹聚類演算法的實踐。對使用者畫像與個性化運營感興趣的親們,請參閱本公眾號其他文章。
Step 1 資料預處理
任何大資料專案中,前期資料準備都是一項繁瑣無趣卻又十分重要的工作。
首先,對資料進行標準化處理,處理異常值,補全缺失值,為了順利應用聚類演算法,還需要使使用者畫像中的所有標籤以數值形式體現。
其次要對數值指標進行量綱縮放,使各指標具有相同的數量級,否則會使聚類結果產生偏差。
接下來要提取特徵,即把最初的特徵集降維,從中選擇有效特徵放進聚類演算法裡跑。眾安科技為該保險公司定製的使用者畫像中,存在超過200個標籤,為不同的運營場景提供了豐富的多維度資料支援。但這麼多標籤存在相關特徵,假如存在兩個高度相關的特徵,相當於將同一個特徵的權重放大兩倍,會影響聚類結果。
我們可以通過關聯規則分析(Association Rules)發現並排除高度相關的特徵,也可以通過主成分分析(Principal Components Analysis,簡稱PCA)進行降維。這裡不詳細展開,有興趣的讀者可以自行了解。
Step 2 確定聚類個數
層次聚類是十分常用的聚類演算法,是根據每兩個物件之間的距離,將距離最近的物件兩兩合併,合併後產生的新物件再進行兩兩合併,以此類推,直到所有物件合為一類。
Ward方法在實際應用中分類效果較好,應用較廣。它主要基於方差分析思想,理想情況下,同類物件之間的離差平方和儘可能小,不同類物件之間的離差平方和應該儘可能大。該方法要求樣品間的距離必須是歐氏距離。
值得注意的是,在R中,呼叫ward方法的名稱已經從“ward”更新為“ward.D”。
library(proxy)
Dist <- dist(data,method='euclidean') #歐式距離
clusteModel <- hclust(Dist, method='ward.D')
plot(clusteModel)
根據R繪製的層次聚類影像,我們對該企業的客戶相似性有一個直觀瞭解,然而單憑肉眼,仍然難以判斷具體的聚類個數。這時我們通過輪廓係數法進一步確定聚類個數。
輪廓係數旨在對某個物件與同類物件的相似度和與不同類物件的相似度做對比。輪廓係數取值在-1到1之間,輪廓係數越大時,表示對應簇的數量下,聚類效果越好。
library(fpc)
K <- 3:8
round <- 30 # 避免區域性最優
rst <- sapply(K,function(i){
print(paste("K=",i))
mean(sapply(1:round,function(r){
print(paste("Round",r))
result<- kmeans(data, i)
stats<- cluster.stats(dist(data), result$cluster)
stats$avg.silwidth
}))
})
plot(K,rst,type='l',main='輪廓係數與K的關係',ylab='輪廓係數')
在輪廓係數的實際應用中,不能單純取輪廓係數最大的K值,還需要考慮聚類結果的分佈情況(避免出現超大群體),以及從商業角度是否易於理解與執行,據此綜合分析,探索合理的K值。
綜上,根據分析研究,確定K的取值為7。
Step 3 聚類
K-means是基於距離的聚類演算法,十分經典,簡單而高效。其主要思想是選擇K個點作為初始聚類中心, 將每個物件分配到最近的中心形成K個簇,重新計算每個簇的中心,重複以上迭代步驟,直到簇不再變化或達到指定迭代次數為止。K-means演算法預設使用歐氏距離來計算。
library(proxy)
library(cluster)
clusteModel <- kmeans(data, centers = 7, nstart =10)
clusteModel$size
result_df <- data.frame(data,clusteModel$cluster)
write.csv(result_df, file ="clusteModel.csv", row.names = T, quote = T)
Step 4 聚類結果分析
對聚類結果(clusteModel.csv)進行資料分析,總結群體特徵:
cluster=1:當前價值低,未來價值高。(5.6%)
cluster=2:當前價值中,未來價值高。(5.4%)
cluster=3:當前價值高,未來價值高。(18%)
cluster=4:當前價值高,未來價值中低。(13.6%)
cluster=5:高價值,穩定群。(14%)
cluster=6:當前價值低,未來價值未知(可能資訊不全導致)。(2.1%)
cluster=7:某一特徵的客戶群體(該特徵為業務重點發展方向)。(41.3%)
根據分析師與業務團隊的討論結果,將cluster=1與cluster=6進行合併,最終得到6個客戶群體,並針對客戶群體制訂運營策略。
客戶分群與運營策略
(業務敏感資訊打碼)
本文轉自:眾安數盟;
END
如果你對人工智慧與機器學習感興趣,請加交流群:群號:139482724 ;
版權宣告:本號內容部分來自網際網路,轉載請註明原文連結和作者,如有侵權或出處有誤請和我們聯絡。
關聯閱讀:
原創系列文章:
資料運營 關聯文章閱讀:
資料分析、資料產品 關聯文章閱讀:
相關文章
- 基於使用者行為的視訊聚類方案聚類
- 基於使用者畫像大資料的電商防刷架構大資料架構
- 基於大資料的使用者畫像構建(理論篇)大資料
- 聚類分析聚類
- 使用者畫像分析與場景應用
- 乾貨|個性化推薦系統五大研究熱點之使用者畫像(四)
- 聚類分析-案例:客戶特徵的聚類與探索性分析聚類特徵
- 基於MRS-ClickHouse構建使用者畫像系統方案介紹
- 活動乾貨|基於Docker的DevOps實現Dockerdev
- 教你基於MindSpore用DCGAN生成漫畫頭像
- 淺談使用者畫像
- 乾貨:基於scss的主題配色解決方案CSS
- 技術乾貨 | 基於MindSpore更好的理解Focal Loss
- 乾貨分享!手把手教你構建用於文字聚類任務的大規模、高質量語料聚類
- 【scipy 基礎】--聚類聚類
- io類遊戲觀察報告(一):遊戲描述和使用者畫像遊戲
- 使用者畫像產品化——從零開始搭建實時使用者畫像(六)
- 乾貨|基於Ansible的Ceph自動化部署解析
- 機器學習-聚類分析之DBSCAN機器學習聚類
- K-均值聚類分析聚類
- 基於 Serverless 架構的頭像漫畫風處理小程式Server架構
- 使用者畫像標籤體系——從零開始搭建實時使用者畫像(三)
- 如何構建好的使用者畫像平臺?
- 使用者畫像資料建模方法
- 大資料專案實戰之 --- 使用者畫像專案分析大資料
- 資料處理 聚類分析聚類
- 聚類分析軟體操作流程聚類
- 乾貨|兩個資料分析模型,快速解決使用者分析難題模型
- 絕地求生類遊戲研究報告:“吃雞”遊戲使用者畫像及營銷策略分析(附下載)遊戲
- 乾貨|EasyMR 基於 Kubernetes 應用的監控實踐
- Serverless:基於個性化服務畫像的彈性伸縮實踐Server
- 做遊戲運營不懂使用者畫像怎麼行? 5分鐘讓你讀懂使用者畫像遊戲
- 群邑智庫:視訊網站使用者畫像與市場分析網站
- 關於PaaS的純乾貨總結
- 3W字乾貨深入分析基於Micrometer和Prometheus實現度量和監控的方案Prometheus
- AI客服上線 乾貨 乾貨 全是乾貨!AI
- 【機器學習】K-means聚類分析機器學習聚類
- 個推使用者畫像的實踐與應用