前面《mahout探索之旅——开篇》已经初略地介绍了mahout算法库的组成。这里先谈一谈我对聚类算法开发的感想。
不管是学习还是开发一个聚类算法,首先应该考虑的这样三个问题:
1)算法核心:算法是用于聚类,聚类核心在什么地方?与其他聚类算法有什么区别?优势在什么地方?
2)相似度衡定:既然是聚类算法,应该有度量类的方法,如何把数据归类?如kmeans算法把离k均值最近点归类到相应类。
3)停止条件:算法需要在多次迭代过程中趋于最佳结果,应该如何界定最佳结果?算法在何时结果才有最佳结果?如kmeans算法把到质心最段的距离和作为算法结束条件。
好了,关于一点点感想先谈到这里,明天将贴出十大经典算法之一kmeans,虽然kmeans算法很简单,也有很多技术博客在讲述kmeans,但它是聚类算法绕不过去的经典算法,我将在博文中提出自己对算法的理解(使初学者都一目了然)和改进意见。