iT邦幫忙

1

我使用sklearn的k-means分群
每一個訊號有120個點 我查到的適用fuzzy k-means均群 分群後他會出現一個平均得值
大約有600個所以要做600多次 這樣分群完後這個群會變只有一個值
例如:
第一個訊號 1
第二個訊號 5
第三個訊號 4
第四個訊號 2
第五個訊號 2
因為我找不到範例 但我好奇是怎麼自動他知道要分成幾群因為k-means要自己設定分成幾群,我如果用均值這樣會導這我後來pattern變的怪怪的嗎?

這是我的想法跟看到的一些文章 但沒有看到相關的範例 不知道是不是關鍵字下錯了。

有相關不錯的參考網站或有人有經樣可以分享給我一下!!!!!拜託了!!!

froce iT邦高手 1 級 ‧ 2018-08-15 08:13:12 檢舉
k-means要決定分幾群通常來說就是先給他2到n個群,然後自己挑出效果比較好的。
不過我也看過結合其他方式,先對樣本跑分析,適合幾群,然後再跑k-means的2 step k-means。
...

2 個回答

1
froce
iT邦高手 1 級 ‧ 2018-08-15 08:15:56
最佳解答

http://dasanlin888.pixnet.net/blog/post/34469120-sas%E7%B0%A1%E6%98%93%E6%95%99%E5%AD%B8%EF%BD%9E%E9%9B%86%E7%BE%A4%E5%88%86%E6%9E%90%EF%BC%88%E4%B8%8A%EF%BC%89

不過現在許多研究者會同時採用這兩種方法,先利用階層法決定集群的個數,再利用K-means法進行分群,這就是近年來比較常聽到的兩階段法(Two Stage Cluster analysis)

hoolada iT邦新手 5 級 ‧ 2018-08-15 19:11:01 檢舉

階層式集群分析集結法是先將每一個個體視為不同的群體,再將兩個相近的群體一步一步地進行合併,最後所有的個體合成一個群體 。
最後再用k-means 在600個進行一次分群!!
感謝 解惑了我!

2
I code so I am
iT邦新手 1 級 ‧ 2018-08-16 10:11:05

可使用 Elbow 或 Silhouette 計算『集群內聚性』(a) 與『集群分離性』(b) 的比率((b - a) / max(a, b)),並輔以圖形顯示,即可決定分成幾群。
https://ithelp.ithome.com.tw/upload/images/20180816/20001976ewMPfUVFuc.png

hoolada iT邦新手 5 級 ‧ 2018-08-17 20:40:28 檢舉

感恩 !! 但這方法要自行判斷嗎 還是他能自己判斷?

如上圖,你可以寫個幾行程式,判斷『每加一集群,比率會減多少』,如果小於特定值,就認為是最佳解。類似梯度下降法。

我要發表回答

立即登入回答