k-means
聚类算法是在不知道数据标签的情况下将相似的数据分为一类。K-means是一个经典的聚类算法,在实践中往往得到不错的效果。
K-means的算法流程:
- 选择K个中心点,计算样本中每个点与这K个点的距离。
- 比较样本点离那个中心点最近的,并将该样本点划分到离样本点最近的类别中。
- 根据第2步将每个样本分为K个簇,求每个簇的中心点,将其作为新的中心点。
- 重复的执行1到3步,直到簇的中心变化小于规定值,或者达到预定的迭代次数,或者MSE小于预定值。
算法的可视化如图:
算法的优点:
- 计算的时间复杂度接近线性( O ( n k t ) O(nkt)