K-means算法是一种无监督算法,需要首先确定将要分成的聚类数k,随机选k个点(称为聚类点),样本点分配给离聚类点最近的那个聚类,然后每个聚类的mean设为新的聚类的点,一直更新直到损失(可以通过平方损失,每个样本点到聚类点距离的平方)变化不大。按照此思路实现的代码如下。
实现的过程中想到了一些问题。如果随机初始化聚类点,这时存在一个点离样本点都特别远,可能不会被更新。如果随机选取k个样本点的话,极端情况下会出现存在聚类点附着在样本点上不更新。还有如果聚类点比较多,会有多个极值点,不容易找到最优解。这些问题可以通过修改K的方式,来是结果趋向于较好的分类。
标签:means,样本,更新,算法,随机,聚类 From: https://www.cnblogs.com/RanX2018/p/16790184.html