k - means 聚类算法

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

兄弟们,干就完事了!

你可能感兴趣的:(机器学习基础,聚类,人工智能,算法)