k - means 聚类算法
k - means 聚类算法是人工智能聚类算法中的一个,它可以将多维空间中的一些数据集合分成n类(n由用户定义),
其原理我们通过一段核心代码说明:
void KMeans::iteration()
{
for (int i = 0; i < numIteration; ++i)//迭代n次
{
calculateDistance();//计算各个数据与聚类中心的欧式距离。
reCategory();//根据欧式距离将数据划分到不同聚类中。
//计算聚类中心,当中心与原来的中心不一样时,更新中心,一样,则说明聚类完成,跳出。
if (calculateCategoryCentre() != categoryCentre)
{
categoryCentre.clear();
categoryCentre = calculateCategoryCentre();
}
else
{
break;
}
}
}
是不是非常容易理解k - mean算法,同时不要忘记:
talk is cheap,show me code!
最后附上已经用cpp完成的k-mean算法源码 - project_k_means
兄弟们,干就完事了!