riv*_*ivu 2 java cluster-analysis data-mining weka k-means
该WEKA SimpleKMeans实现允许用户指定一个"种子值"与-s选项.我不明白它的意思.在这个链接中,weka架构师Mark Hall说它应该生成随机数.
Weka实现应该遵循关于KMenas ++的文章(如文档中所述),如果我理解了它,则使用前面提到的论文中的方程1b,第2.2页第3页来确定聚类质心点,并且没有其他来源随机性.
任何人都可以指出我错了什么?
这是k-means算法的常见最佳实践(注意:k-means有多个算法;它们是启发式,因为发现最佳解决方案被报告为NP-hard)用不同的随机初始中心进行多次迭代.
所以随机性通常与选择初始中心有关.K-means ++是另一种选择初始种子的方法,幸运的是它仍然是随机的(有一些不是随机的,所以你不能再尝试用多次运行来改善你的结果),但试图选择一个更好的起始情况.
你为什么要寻找另一种随机性来源而不是初始手段?
我不建议使用Weka进行群集.分类是可以的,但它对聚类和其他无监督方法的支持非常有限.相反,看看ELKI.例如,他们的k-means包非常详尽.他们有6种不同的方法来选择初始方法.大多数是随机的.最简单和最常见的初始化可能只是从数据库中的k个随机对象开始.IIRC,MacQueen使用了第一个k对象,因此变量不是随机的(除非你先对数据集进行洗牌,这对于一些算法实际上是一个好主意 - 永远不要使用已排序的数据!)因此大多数这些初始化程序都会附带一个参数-kmeans.seed- 猜测是什么 - 允许您控制随机发生器播种,以获得可重复的结果.
| 归档时间: |
|
| 查看次数: |
7598 次 |
| 最近记录: |