在這篇文章中,Nagpal以簡明易懂的語言解釋了無監督學習中的聚類(Clustering)問題,量子位將全文編譯整理,與大家分享。
何為聚類?「聚類」顧名思義,就是將相似樣本聚合在一起,屬於機器學習中的無監督學習問題。聚類的目標是找到相近的數據點,並將相近的數據點聚合在一起。
為什麼選擇聚類?將相似的實體聚合有助於刻畫不同類別的屬性。換句話說,這將讓我們深入了解不同類別的潛在模式。目前,有很多對未標記數據分類的應用,比如可以根據聚類將客戶分為幾類,之後對沒類客戶使用不同的算法使商家收益最大化。再比如,將相似話題的document分到一起。當數據維度較高時,可以採用聚類降維。
聚類算法是如何工作的?有很多算法是為了實現聚類而開發的,我們挑出兩個最流行且應用最廣泛的兩個來看看。
1.K-均值聚類算法
2.層次聚類
K-均值聚類1.以你想要的簇的數量K作為輸入,隨機初始化每個簇的中心。
2.現在,在數據點和中心點的歐氏距離,將每個數據點分配給離它最近的簇。
3.將第二步中每個簇數據點的均值作為新的聚類中心。
4.重複步驟2和步驟3直到聚類中心不再發生變化。
你可能會問,如何在第一步中決定K值?
一種「肘部法則」(Elbow Method)可以用來確定最佳聚類數。你可以在K值範圍內運行K-均值聚類,並在Y軸上繪製「可解釋方差的比例」,在X軸上繪製K值。
在下面這張圖片中可以注意到,當簇擴大到三個以上時,就不能對數據很好建模了。第一個簇增加了很多信息,但某些時候,邊際收益將開始下降。
與K-均值聚類不同的是,層次聚類中每個數據點都屬於一類。顧名思義,它構建層次結構,在下一步中,它將兩個最近的數據點合併在一起,並將其合併到一個簇中。
1.將每個數據點分配給它自己的簇。
2.使用歐氏距離找到最接近的一組簇,並將它們合併為一個簇中。
3.計算兩個最近的簇之間的距離,並結合起來,直到所有簇都聚集在一起。
K值的選取由下圖中平行於X軸的虛線確定,從而確定最優簇數量。
總結下來,使用聚類算法時需要注意:
聚類需遵守一個原則,即每一類數據點的數量規模最好相差不大,因為計算距離很重要。
在形成簇之前處理特異值數據,因為它可以影響數據點之間的距離。
最後,附文章原文連結:
https://towardsdatascience.com/clustering-unsupervised-learning-788b215b074b
量子位AI社群11群開始招募啦,歡迎對AI感興趣的同學,加小助手微信qbitbot4入群;
此外,量子位專業細分群(自動駕駛、CV、NLP、機器學習等)正在招募,面向正在從事相關領域的工程師及研究人員。
進群請加小助手微信號qbitbot4,並務必備註相應群的關鍵詞~通過審核後我們將邀請進群。(專業群審核較嚴,敬請諒解)
量子位正在招募編輯/記者,工作地點在北京中關村。期待有才氣、有熱情的同學加入我們!相關細節,請在量子位公眾號(QbitAI)對話界面,回復「招聘」兩個字。