看板 C_Sharp 關於我們 聯絡資訊
大家好: 小弟我目前正在實作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
CCWck:你在code裡面用goto! 走到哪去了? 02/07 01:09
CCWck:看到了 在下面 02/07 01:10
CCWck:應該是 for k還沒到classNumber 就被if 送到goto 02/07 01:11
CCWck:這種情況 recursiveFlag永遠是1 02/07 01:11
按照原始文章的做法,當classes裡與tmpClasses裡的值全部相等時,recursiveFlag就 會是0,此時就執行我演算法裡的第68行,整個程式結束。 但我逐步執行的結果是,兩個陣列好像都不會相等..... 會不會是因為這樣,他才會無窮的算下去。 ※ 編輯: coldwind7810 來自: 125.231.156.218 (02/07 01:26)
bdvstg:我印象中以前上課時 有說到K-means有可能不會穩定 02/07 10:32
bdvstg:也就是說最終結果可能會有幾個 演算法會在這之間切來切去 02/07 10:33
bdvstg:另外還有可能是 http://goo.gl/WTTSJC 提到的精度問題 02/07 10:35
bdvstg:(我沒看過你的code 純粹用猜的) 02/07 10:35
感謝兩位前輩的幫忙,我今天也突然想到會不會是精度的問題,我先用整數測試 看看,謝謝。 ※ 編輯: coldwind7810 來自: 120.107.152.28 (02/07 11:55) 感謝各位,問題解決了,的確是精度的問題,感謝各位的幫忙(≧口≦) ※ 編輯: coldwind7810 來自: 120.107.152.28 (02/07 12:49)