聚类算法
无监督学习:将无标签样本分为不同的两类或者多类,称为聚类算法
K均值算法
K均值算法是一个迭代算法,共两个步骤
1.簇分配:遍历图中每个样本,根据每个样本点离那个聚类中心近,从而将该样本点分配给该聚类中心,一开始的聚类中心是随机生成的(也是最小化代价函数的过程)
2.移动聚类中心 :算出两簇点各自的均值位置,然后将聚类中心移动到各自的均值位置处。(也是选择u值最小化代价函数J)
3.再次重复以上的两个步骤再次寻找新的聚类中心位置
C(i)代表当前的簇的序号,uk代表第k个聚类中心的位置
K均值的优化目标函数
作用:
1.对学习算法进行调试,确保K均值算法运行正确
2.帮助K均值算法找到更好的簇,以避免局部最优解
k均值算法的优化目标(k均值算法最小化的代价函数)
C(i)和ui是随时变化的
初始化聚类中心
步骤:
1.确定聚类中心的数量k,这k个聚类中心的数量要小于样本数量m
2.随机挑选 k个训练样本,让这k个样本成为聚类中心
如果初始化聚类中心最终会取得局部最优,应该多次进行初始化
多次进行初始化聚类中心和运行K均值算法并且在畸变函数J(代价函数J)中选取最小的c和u作为目标,这种方法在k较小时效果较明显,当k值较大时优化效果不明显
如何选取聚类数量和参数K的值
1.肘部法则
选取不同的聚类数量,观察代价函数J大小的变化情况(一般会随着数量的增加而下降),选取下降快速和慢速的分界点,但是有时候不实用
2.根据实际情况选取聚类数量