前言
kmeans是一种聚类算法
其简单,易用
在机器学习,数据挖掘领域常常应用
原理
众所周知聚类就是要对一堆杂乱无章的数据进行分类合并
假设我们有数据集dataset,并且将其聚类为k个簇
kmeans聚类算法的思想有如下几步
第一步
首先在数据集随机挑选k个点,分别作为这k个簇的质心
第二步
其余的点根据欧式距离公式,找到离其自身最近的质心
并合并为一类
第三步
现在我们已经初步的到聚类过的样本集合
然后我们取每个样本集合的均值点作为新的质心
重新进行聚类
第四步
各样本点根据新的质心再进行回归
直到样本点分类不再发生改变
算法实现
网上也有很多算法实现
这里我找到一篇比较有效率的代码
下面是该博客地址
https://blog.csdn.net/xufive/article/details/101448969
我在其源代码上增加了一些注释
话不多说直接上代码
import numpy as np
import time
import matplotlib.pyplot as plt
def kmeans(ds, k):
"""
kmeans聚类算法
:param ds: 数据集,形式为ndarray(m, n) 即m个样本,每个样本有 n 个属性值
:par