摘要: 讓咱們走進K-Means算法的「前世此生」以及和它有關的十個有趣的應用案例。算法
K-means算法具備悠久的歷史,而且也是最經常使用的聚類算法之一。K-means算法實施起來很是簡單,所以,它很是適用於機器學習新手愛好者。首先咱們來回顧K-Means算法的起源,而後介紹其較爲典型的應用場景。數據庫
起源網絡
1967年,James MacQueen在他的論文《用於多變量觀測分類和分析的一些方法》中首次提出 「K-means」這一術語。1957年,貝爾實驗室也將標準算法用於脈衝編碼調製技術。1965年,E.W. Forgy發表了本質上相同的算法——Lloyd-Forgy算法。架構
聚類,是將數據分紅若干組,使得相同組中的數據點之間比其餘組中的數據點更具備類似性。簡而言之,聚類就是將具備類似特徵的數據點分割成一個個組,也就是一個個聚類中。K-means算法的目標是在數據中查找一個個組,組的數量由變量K表示。根據數據所提供的特徵,經過迭代運算將每一個數據點分配給K個組中的其中一個組。下圖中K = 2,所以能夠從原始數據集中識別出兩個聚類。機器學習
在一個數據集上執行K-means算法,其輸出分別是:學習
1.K中心點:從數據集中識別的k個聚類的每個中心點。優化
2.數據集的徹底標記,以確保每一個數據點均可以分配給其中一個聚類。網站
K-means算法一般能夠應用於維數、數值都很小且連續的數據集,好比:從隨機分佈的事物集合中將相同事物進行分組。編碼
1.文檔分類器spa
根據標籤、主題和文檔內容將文檔分爲多個不一樣的類別。這是一個很是標準且經典的K-means算法分類問題。首先,須要對文檔進行初始化處理,將每一個文檔都用矢量來表示,並使用術語頻率來識別經常使用術語進行文檔分類,這一步頗有必要。而後對文檔向量進行聚類,識別文檔組中的類似性。 這裏是用於文檔分類的K-means算法實現案例。
2.物品傳輸優化
使用K-means算法的組合找到無人機最佳發射位置和遺傳算法來解決旅行商的行車路線問題,優化無人機物品傳輸過程。這是該項目的白皮書。
3.識別犯罪地點
使用城市中特定地區的相關犯罪數據,分析犯罪類別、犯罪地點以及二者之間的關聯,能夠對城市或區域中容易犯罪的地區作高質量的勘察。這是基於德里飛行情報區犯罪數據的論文。
4.客戶分類
聚類能過幫助營銷人員改善他們的客戶羣(在其目標區域內工做),並根據客戶的購買歷史、興趣或活動監控來對客戶類別作進一步細分。這是關於電信運營商如何將預付費客戶分爲充值模式、發送短信和瀏覽網站幾個類別的白皮書。對客戶進行分類有助於公司針對特定客戶羣制定特定的廣告。
5.球隊狀態分析
分析球員的狀態一直都是體育界的一個關鍵要素。隨着競爭越來愈激烈,機器學習在這個領域也扮演着相當重要的角色。若是你想建立一個優秀的隊伍而且喜歡根據球員狀態來識別相似的球員,那麼K-means算法是一個很好的選擇。具體細節和實現請參照這篇文章。
6.保險欺詐檢測
機器學習在欺詐檢測中也扮演着一個相當重要的角色,在汽車、醫療保險和保險欺詐檢測領域中普遍應用。利用以往欺詐性索賠的歷史數據,根據它和欺詐性模式聚類的類似性來識別新的索賠。因爲保險欺詐可能會對公司形成數百萬美圓的損失,所以欺詐檢測對公司來講相當重要。這是汽車保險中使用聚類來檢測欺詐的白皮書。
7.乘車數據分析
面向大衆公開的Uber乘車信息的數據集,爲咱們提供了大量關於交通、運輸時間、高峯乘車地點等有價值的數據集。分析這些數據不只對Uber大有好處,並且有助於咱們對城市的交通模式進行深刻的瞭解,來幫助咱們作城市將來規劃。這是一篇使用單個樣本數據集來分析Uber數據過程的文章。
8.網絡分析犯罪分子
網絡分析是從我的和團體中收集數據來識別兩者之間的重要關係的過程。網絡分析源自於犯罪檔案,該檔案提供了調查部門的信息,以對犯罪現場的罪犯進行分類。這是一篇在學術環境中,如何根據用戶數據偏好對網絡用戶進行 cyber-profile的論文。
9.呼叫記錄詳細分析
通話詳細記錄(CDR)是電信公司在對用戶的通話、短信和網絡活動信息的收集。將通話詳細記錄與客戶我的資料結合在一塊兒,這可以幫助電信公司對客戶需求作更多的預測。在這篇文章中,你將瞭解如何使用無監督K-Means聚類算法對客戶一天24小時的活動進行聚類,來了解客戶數小時內的使用狀況。
10.IT警報的自動化聚類
大型企業IT基礎架構技術組件(如網絡,存儲或數據庫)會生成大量的警報消息。因爲警報消息能夠指向具體的操做,所以必須對警報信息進行手動篩選,確保後續過程的優先級。對數據進行聚類能夠對警報類別和平均修復時間作深刻了解,有助於對將來故障進行預測。
文章原標題《10 Interesting Use Cases For the K-Means Algorithm》
詳細內容請查看原文。