图中的数据可以分成三个分开的点集(称为族),一个能够分出这些点集的算法,就被称为聚类算法

K-means算法是一种无监督学习方法,是最普及的聚类算法,算法使用个没有标签的数据集,然后将数据聚类成不同的组K-means算法具有一个迭代过程,在这个过程中,数据集被分组成若干个预定义的不重叠的聚类或子组,使簇的内部点尽可能相似,同时试图保持簇在不同的空间,它将数据点分配给簇,以便簇的质心和数据点之间的平方距离之和最小,在这个位置,簇的质心是簇中数据点的算术平均值。
详细可以看我之前的博客 度量距离 闵可夫斯基距离(Minkowski distance)
取1或2时的闵氏距离是最为常用的,
即为欧氏距离,而
时则为曼哈顿距离。
当
取无穷时的极限情况下,可以得到切比雪夫距离。 距离公式:


现在我们需要找到簇的数量。通常通过“时部法则”进行计算。我们可能会得到一条类似于人的时部的曲线。右图中,代价函数的值会迅速下降在K = 3的时候达到一个时点。在此之后,代价函数的值会就下降得非常慢,所以,我们选择K = 3。这个方法叫“时部法则”

到这里,如果还有什么疑问欢迎私信、或评论博主问题哦,博主会尽自己能力为你解答疑惑的! 如果对你有帮助,你的赞和关注是对博主最大的支持!! 下次我将准备实现K-means算法