作者coldwind7810 (眼睛茫然中)
看板C_Sharp
標題[問題] k-means無窮遞迴
時間Fri Feb 7 00:54:36 2014
大家好:
小弟我目前正在實作k-means的分群方法。
我所參考的演算法是Hao-Yu Wang的k-means實作文章。
網址為:
http://ppt.cc/884O
但因為我所需要處理的是多維的矩陣空間而非單純的X,Y坐標系,所以有把關於
座標的作法用for迴圈的方式處理。
但在執行時系統就會在kmean function出現無窮遞迴的錯誤。
找了許久,也一步步地執行,但還是看不出來問題出在哪裡。
所以想請教各位前輩幫忙指點迷津,點出問題大概的方向,在下感激不盡。
以下連結為小弟我所寫的k-means演算法。
http://pastebin.com/YdJaRExd
在此先謝謝各位了
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 125.231.156.218
1F:→ CCWck:你在code裡面用goto! 走到哪去了? 02/07 01:09
2F:→ CCWck:看到了 在下面 02/07 01:10
3F:→ CCWck:應該是 for k還沒到classNumber 就被if 送到goto 02/07 01:11
4F:→ CCWck:這種情況 recursiveFlag永遠是1 02/07 01:11
按照原始文章的做法,當classes裡與tmpClasses裡的值全部相等時,recursiveFlag就
會是0,此時就執行我演算法裡的第68行,整個程式結束。
但我逐步執行的結果是,兩個陣列好像都不會相等.....
會不會是因為這樣,他才會無窮的算下去。
※ 編輯: coldwind7810 來自: 125.231.156.218 (02/07 01:26)
5F:→ bdvstg:我印象中以前上課時 有說到K-means有可能不會穩定 02/07 10:32
6F:→ bdvstg:也就是說最終結果可能會有幾個 演算法會在這之間切來切去 02/07 10:33
8F:→ bdvstg:(我沒看過你的code 純粹用猜的) 02/07 10:35
感謝兩位前輩的幫忙,我今天也突然想到會不會是精度的問題,我先用整數測試
看看,謝謝。
※ 編輯: coldwind7810 來自: 120.107.152.28 (02/07 11:55)
感謝各位,問題解決了,的確是精度的問題,感謝各位的幫忙(≧口≦)
※ 編輯: coldwind7810 來自: 120.107.152.28 (02/07 12:49)