吳恩達機器學習筆記之無監督學習

2021-09-11 06:37:03 字數 1905 閱讀 4624

和監督學習相比,無監督學習的資料集是沒有標籤的。所謂沒有標籤的意識就是我們對資料一無所知,但是要借助一些演算法試著幫我們尋找到資料的某些結構特性。聚類(clustering)演算法是我們要學習的第乙個無監督學習的演算法,將我們的資料分成不同的簇。

假設我們有下圖所示的資料集:

k-means演算法是乙個迭代演算法。k-means演算法的流程是這樣的,首先隨機選擇k個初始點,k代表你想將資料分為幾類,如圖所示,k=2;然後將資料集中的所有點分別計算與這兩個初始點的距離,按照就近分配原則,分配給相應的簇,如下圖所示。然後移動我們的初始點,也可以叫做聚類中心,將所有同一類的點相加之後取平均值,然後將我們的聚類中心移動到這個平均值上。如下圖所示,如此迴圈直到收斂。

第一次迴圈的結果

第二次迴圈的結果

收斂的結果

上面的步驟我們可以叫做第一:簇分配(cluster assignment);第二:移動聚類中心(move centroid step)。

計算距離,matlab有乙個函式叫做pdist2:

x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 10, 11, 12];

y = [1, 2, 3];

pdist2(x,y)計算的是歐式距離。

distance = pdist2(x, y) % x是a*m維的,y是b*m維的,得出來的結果是a*b維的。

其中我們應該怎麼選擇初始化的聚類中心呢,一種推薦的方法是從例項當中選取,比如k=3,則隨機從例項當中選取3個點分別作為聚類中心。但是由於隨機初始化的原因,k-means演算法可能會陷入區域性最優解。

避免區域性最優解——初始化k-means演算法若干次,返回代價函式最小的那個結果。在k較小的時候,比如小於10,多次隨機初始化的效果是非常明顯的,但是如果k很大的話,多次隨機初始化的效果就不那麼明顯了。

大多數情況下,我們還是人為的選擇k值,還有一種叫做手肘法則:

如上圖所示:我們可以畫出我們的代價函式隨著k的變化曲線,選擇拐點那個k值,通常是比較好的選擇;但是並不是所有的曲線都有拐點,我們碰到的大多數情況是右邊的這種情況,那麼這樣我們的肘部法則就不在那麼適用了。

其實大多數情況下,我們使用k-means演算法進行聚類分析,和我們的目的都是相對應的,我們的目的能夠為我們選擇k值提供很好的指引。比如我們下圖我們進行衣服的尺寸設計,我們即可以分成3類,也可以分成5類。

吳恩達機器學習筆記 監督學習和無監督學習

1.監督學習 通過給定的資料集,進行 得到 正確的答案 並且資料集已經包括了答案。如 100平的房價100w,120平的房價120w,140平的房價140w,通過學習,我們可以 150平的房價150w左右。1.1回歸和分類 回歸指我們的 值應該是個連續輸出值 real valued output 如...

吳恩達機器學習筆記(1) 監督學習和無監督學習

在監督學習中,我們會有一組已經知道輸出結果應該是怎麼樣的資料集,也就是說,知道輸入和輸出之間會有一種特定的關係。然後,在監督學習中問題又被分成 回歸 和 分類 兩類問題。回歸 regression 的是一組連續的輸出結果,也就是說需要將輸入的資料與某個特定的連續函式所對應起來。分類 classifi...

吳恩達機器學習筆記 14 無監督學習

本章講述的是第乙個無監督的機器學習演算法,在無監督的演算法中,樣本資料只有特徵向量,並沒有標註的y值。比如聚類演算法,它可以用在市場分類 社交網路分析 天體資料分析等等。在做聚類時,最簡單的演算法就是k means,一般的流程是 首先隨機選擇k個聚類中心點 遍歷所有的樣本,選擇乙個距離最近的中心點,...