d@TOC
前言
首先需要先介绍一下无监督学习,所谓无监督学习,就是训练样本中的标记信息是未知的,目标是通过对无标记训练样本的学习来揭示数据的内在性质以及规律。通俗得说,就是根据数据的一些内在性质,找出其内在的规律。而这一类算法,应用最为广泛的就是“聚类”。
聚类算法可以对数据进行数据归约,即在尽可能保证数据完整的前提下,减少数据的量级,以便后续处理。也可以对聚类数据结果直接应用或分析。
而Kmeans 算法可以说是聚类算法里面较为基础的一种算法。
K-means
这里先以二维数据进行
对于平面中的一堆数据,想要将数据分为若干团簇,便使用了该算法
其思想与em算法类似,都是先假定,再通过迭代获得最终的数值解
详细步骤
若想要分类的类数为n
1,先在样本空间中随机定n个点,视为各自簇的中心点
2,对于每一个数据,求得其到这n个点的距离(曼哈顿,欧式),取距离最短的点作为其分类
3,将所有数据分类后,重新计算这n个簇的中心点,作为新的n个中心点
4,复2,重复足够次数,直到收敛足够小
5,得到最终结果
注意事项
第三步中的新中心点计算:
与回归类似,将所有点与(x,y)的距离之和表达式写出,求极小值
n的选定方法,与KNN类似,也是迭代看趋势
在真实簇数N前后,有较大的斜率变化,我们选取这个值作为聚类的参数