0. 版權聲明
- machine learning 系列筆記來源於Andrew Ng 教授在 Coursera 網站上所授課程《machine learning》1;
- 該系列筆記不以盈利爲目的,僅用於個人學習、課後複習及交流討論;
- 如有侵權,請與本人聯繫([email protected]),經覈實後即刻刪除;
- 轉載請註明出處;
1. Unsupervised learning
1.1 Clustring(聚類)
- Symbol:
- K:大寫的 K 表示簇的數量,即聚類中心的數量;
- k:小寫的 k 表示不同聚類中心的下標;
- :樣本 所在簇的索引;
- :第 k 個聚類中心的位置;
- :樣本 所在簇的聚類中心的位置;
- 聚類算法有:K-means 算法(K均值算法)。。。;
- K-means 算法的輸入:
- K:簇的數量;
- 訓練集:;
- ,因爲按照慣例,此處 drop ;
- K-means 算法步驟:
- 隨機初始化 K 個聚類中心 ;
- 簇分配:按照距離遠近,將各個樣本匹配到最近的聚類中心;
- 求解 或 ;
- 該步驟用於優化 ;
- 移動聚類中心:根據簇分配得到的本類別的樣本點均值,求得新的聚類中心;
- 該步驟用於優化 ;
- Q:若在簇分配階段,有的簇沒有被分配任何樣本點,應如何處理?
A:- 若不嚴格要求將樣本劃分爲 K 個簇,則直接去掉該簇;
- 若嚴格要求將樣本劃分爲 K 個簇,則再隨機選取一個聚類中心,替換掉未被分配樣本點的簇;
1.2 優化目標
- 代價函數:;
- 該代價函數被稱爲失真代價函數,或 K 均值算法的失真;
- 代價函數的意義:最小化各個樣本點到對應聚類中心的距離;
1.3 隨機初始化
-
隨機初始化狀態不同,可能導致 K 均值算法得到的運算結果不同;
- Soultion:多次隨機初始化(典型的次數爲50-1000次),選取代價函數最小的聚類結果;
- 若 K 的數值較小(在2-10之間),使用多次隨機初始化的方法一般能夠得到較好的局部最優解;
- 若 K 的數值較大(遠大於10),K-means 算法仍能給出一個合適的結果,但該狀態下使用多次隨機初始化對結果的改善不明顯;
-
K-means 算法隨機初始化的方法:
- 確保簇的數量小於樣本數量,即 K<m;
- 隨機從選擇 K 個樣本作爲聚類中心;
-
Q:一般而言,K 取值越大時,代價函數越小,若 K=5 時的代價高於 K=3 時的代價,可能的原因是什麼?
A:K=5時,運行 K-means 算法得到了一個較差的局部最小值;可嘗試多次隨機初始化加以解決;
1.4 選擇聚類數量 K 的方法
- 選擇聚類數量 K 的方法:
- 手動選擇:最爲常見的方法,根據實際問題的需要,選擇合適的 K 值;
- Elbow method(肘部法則):一種用於選擇聚類數量 K 的方法;
- 若代價函數的導數值變化出現明顯的拐點,則取該點對應的簇數量作爲 K 值;
- 若代價函數的導數值變化無明顯的拐點,則該方法不適用;
2. 數據降維
2.1 數據壓縮與可視化
- 數據壓縮的作用:
- 減小數據冗餘;
- 減小數據佔用的存儲空間;
- 加快機器學習算法運行速度;
- 便於可視化;