「非監督式學習」和上一章的「監督式學習」是不同的。「監督式學習」是拿已經標註好的資料來讓電腦做訓練以作為分類的依據 ;而非監督式學習的訓練資料則無任何標註,只能藉由訓練資料的相似性進行分群。例如:資料中有大量貓或狗的照片,無需先跟機器說哪些是貓、哪些是狗,由機器自己根據特徵相似性,以分群的方式建構出預測模型,是一種非監督式學習。在非監督式學習中,極具代表性的方法是「K平均分群法」(Clustering: K-means Algorithm)
◎K平均分群法(K-means Algorithm)
1.定義:
K平均分群法是使用群聚的方式,將資料分為K個群集,其中「K」是由使用者自行設定,「群心」是指各群集資料的平均值。
2.運作原則:
(1) 預先設定欲將資料分成幾個群集(預設K值)
(2) 從訓練資料中,隨機找出K個資料當作初始群心。
(3) 計算每筆資料到各群心的距離,距離哪個群心最近,該筆資料就被歸類到該群集。
(4) 計算群集的平均值,並四捨五入至小數點後第一位。再以該平均值取代原本的群心
成為新的群心。
(5) 重複執行步驟3、4,直到各群集資料及各群心的值不再變動(收斂),分群即結束。
◎範例:
使用K平均分群法將下列這組資料2,3,5,6,8,12,15,17,18,20,21,25,26,29,30 分為三群並找出三個群心。
運作過程:
1.將資料分成A、B、C三個群集(K值=3)
2.從資料中任取三個群心,例如:3,13,23當作初始群心。
3.逐一將每筆資料歸類到最接近的群心之群集中。
4.計算每個群集的平均值,四捨五入到小數點後第一位,完成這一次的分群。
(註:若與兩群心的距離相同時,以歸到大群心的群集之原則,因此數字8歸到群集B中)
第一次分群結果
以4、13、24.1作為新的群心。重複運作步驟3、4
第二次分群結果
以4.8、15.5、25.2作為新的群心。重複運作步驟3、4
第三次分群結果
以5、16.4、26.2作為新的群心。重複運作步驟3、4
第四次分群結果
以4.8、17.2、27.5作為新的群心。重複運作步驟3、4
第五次分群結果
當執行到第五次分群時,可以發現A、B、C三個群集的組成和群心皆不再改變,便完成分群。分群所需回合數會因資料分布及初始群心的選取而異。
◎練習二: 撲克牌K平均分群
請從撲克牌1~13(J表示11,Q表示12,K表示13)中任選10個數字,從第一回合開始,依說明內容進行數字分群,直到尋找到三個「群心不更換」才完成任務喔!
抽取的數字: 5、9、2、3、8、12、1、4、11、6
第一次群心: 1、3、5
請於作業二完成