K Means 演算法的 10 個有趣用例

2021-08-18 14:31:13 字數 2144 閱讀 6978

k-means演算法具有悠久的歷史,並且也是最常用的聚類演算法之一。k-means演算法實施起來非常簡單,因此,它非常適用於機器學習新手愛好者。首先我們來回顧k-means演算法的起源,然後介紹其較為典型的應用場景。

起源2023年,james macqueen在他的**《用於多變數觀測分類和分析的一些方法》中首次提出 「k-means」這一術語。2023年,貝爾實驗室也將標準演算法用於脈衝編碼調製技術。2023年,e.w. forgy發表了本質上相同的演算法——lloyd-forgy演算法。

什麼是k-means演算法?

聚類,是將資料分成若干組,使得相同組中的資料點之間比其他組中的資料點更具有相似性。簡而言之,聚類就是將具有相似特徵的資料點分割成乙個個組,也就是乙個個聚類中。k-means演算法的目標是在資料中查詢乙個個組,組的數量由變數k表示。根據資料所提供的特徵,通過迭代運算將每個資料點分配給k個組中的其中乙個組。下圖中k = 2,因此可以從原始資料集中識別出兩個聚類。

圖0:k-means演算法的10個有趣用例

在乙個資料集上執行k-means演算法,其輸出分別是:

1.k中心點:從資料集中識別的k個聚類的每乙個中心點。

2.資料集的完全標記,以確保每個資料點都可以分配給其中乙個聚類。

k-means演算法的十大用例

k-means演算法通常可以應用於維數、數值都很小且連續的資料集,比如:從隨機分布的事物集合中將相同事物進行分組。

1.文件分類器

根據標籤、主題和文件內容將文件分為多個不同的類別。這是乙個非常標準且經典的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個有趣的Linux命令

linux最強大的乙個特徵就是它有大量的各種小命令工具,這也可以稱做是它最有趣的乙個地方了。在這些大量的有用的命令和指令碼中,你會發現有少部分命令工具不那麼有用的。linux命令終端並不是總來幹一些嚴肅的事情的,這裡列舉的幾個沒有實際用處 但很有趣的命令,它們的有趣並不是因為無用,而是真的有趣,接下...

這10個Python專案超有趣!

python可謂是現在很多人正在學或者想學的乙個指令碼語言了,提到學習自然就少不了拿專案練手,可是一般的專案根本提不起興趣嘛,這10個專案可是非常有趣的,不信你看看。用 50 行 python 完成轉字元畫小工具。通過實驗將學習到 linux 命令列操作,python 基礎,pillow 庫的使用,...

乙個有趣的演算法題

今天看到一道很有意思的演算法面試題,因為之前很少研究演算法,好奇心加上暴躁的脾氣,就決定一定要乾掉這道題 5個小姐站成一列 他們的姓不同 衣服顏色不同 和不同的飲料 樣不同的寵物 吃不同的水果 1錢小姐穿紅色的衣服,2翁小姐養乙隻狗,3陳小姐喝茶。4穿綠衣服的站在白衣服的左邊,5綠衣服的再喝咖啡,6...