切換
舊版
前往
大廳
主題

假裝我會機械學習-k-means

狼尾 | 2020-04-27 15:36:21 | 巴幣 31 | 人氣 466

假裝我會機械學習-k-means

在開始記錄此筆記之前,有一項事情必須事先聲明。
這個k-means,必須用英文發音,念作「k命斯」。
你手中的是什麼東西!?
這個嘛……洋人的玩意。
這就是語言的力量,講原文就是比較厲害。
回到開頭,這個k-means是個什麼東西呢?
唉呀,其實WIKI上面都有,而且寫的還挺玄呼地。
很多人看不起WIKI上面記載的內容,認為太過粗淺,但我是這麼以為的。
粗淺的不是WIKI,而是撰寫條目的人。
如果你有什麼專長特別厲害的,歡迎上去造福眾人。

k-means是一種聚類算法,用意在於挖掘未標記數據樣本的內部性質,並根據它們的相似性將樣本分配到不同的聚類中。每個聚類由彼此相似的樣本組成,而與其他聚類中的樣本不同。
現在多用於機械學習中,半監督分群的運用。

優點:
簡單快速
缺點:
K值必須確定
複雜度與樣本呈線性關係
很難發現不明顯形狀的群集

(圖一)
1.      首先設定我們有幾個群,也就是定義k值為多少。
2.      接著在二維的資料中(圖1-a)k點的起始點將會隨機分布在資料中(圖1-b)。
3.      每個資料會跟所有的k群心計算Euclidean distance(圖1-c).
4.      將每筆資料分類判給距離最近的那個群心(圖1-d)。
5.      每個群心內都會有被分類過來的資料,用這些資料更新一次新的群心(圖1-e)。
6.      一直重複3~5,直到所有群心不在有太大的變動(收斂),結束(圖1-f)。

俗話說有一好沒兩好。
當樣本過於複雜或是呈現其它群落的時候,就會像圖二那樣,完全不知道在衝三小。

下面的影片將示範我們是如何做到的。

順便推薦一個網站,裡面可以讓你快速的了解:

當然還有很多細節(數學)我沒提及,因為我不會!這樣......

我們又得到一個新工具了!
下次將會介紹DBSCAN方法,如果我還有閒的話。








參考資料
Shaodong Zheng,Jinsong Zhao , A new unsupervised data mining method based on the stacked autoencoder for chemical process fault diagnosis , Computers & Chemical Engineering Volume 135, 6 April 2020, 106755
WIKI, https://zh.wikipedia.org/wiki/K-%E5%B9%B3%E5%9D%87%E7%AE%97%E6%B3%95,2019
Visualizing K-Means Clustering ,https://www.naftaliharris.com/blog/visualizing-k-means-clustering/ ,2014
Tommy Huang, kmean2, https://www.youtube.com/watch?time_continue=4&v=m5cAvAIpAr4&feature=emb_logo, 2018
互联网开发教程19聚类算法-Kmeans 课时102KMEANS工作流程 , https://www.youtube.com/watch?v=85_qKdrZjKQ ,2018
送禮物贊助創作者 !
0
留言

創作回應

白煌羽
哈哈
2020-04-27 22:10:24
狼尾
^^
2020-04-27 23:19:19

更多創作