作者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)