[問題] k-means無窮遞迴

看板C_Sharp (C#)作者 (眼睛茫然中)時間11年前 (2014/02/07 00:54), 編輯推噓0(008)
留言8則, 2人參與, 最新討論串1/1
大家好: 小弟我目前正在實作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

02/07 01:09, , 1F
你在code裡面用goto! 走到哪去了?
02/07 01:09, 1F

02/07 01:10, , 2F
看到了 在下面
02/07 01:10, 2F

02/07 01:11, , 3F
應該是 for k還沒到classNumber 就被if 送到goto
02/07 01:11, 3F

02/07 01:11, , 4F
這種情況 recursiveFlag永遠是1
02/07 01:11, 4F
按照原始文章的做法,當classes裡與tmpClasses裡的值全部相等時,recursiveFlag就 會是0,此時就執行我演算法裡的第68行,整個程式結束。 但我逐步執行的結果是,兩個陣列好像都不會相等..... 會不會是因為這樣,他才會無窮的算下去。 ※ 編輯: coldwind7810 來自: 125.231.156.218 (02/07 01:26)

02/07 10:32, , 5F
我印象中以前上課時 有說到K-means有可能不會穩定
02/07 10:32, 5F

02/07 10:33, , 6F
也就是說最終結果可能會有幾個 演算法會在這之間切來切去
02/07 10:33, 6F

02/07 10:35, , 7F
另外還有可能是 http://goo.gl/WTTSJC 提到的精度問題
02/07 10:35, 7F

02/07 10:35, , 8F
(我沒看過你的code 純粹用猜的)
02/07 10:35, 8F
感謝兩位前輩的幫忙,我今天也突然想到會不會是精度的問題,我先用整數測試 看看,謝謝。 ※ 編輯: coldwind7810 來自: 120.107.152.28 (02/07 11:55) 感謝各位,問題解決了,的確是精度的問題,感謝各位的幫忙(≧口≦) ※ 編輯: coldwind7810 來自: 120.107.152.28 (02/07 12:49)
文章代碼(AID): #1IyxvFBi (C_Sharp)
文章代碼(AID): #1IyxvFBi (C_Sharp)