kmeans算法
简介kmeans算法
kmeans算法又称k平均或k均值算法,一种已知聚类类别数的聚类算法。
它是将各个聚类子集内所有数据样本的均值作为该聚类的代表点,实现方式是,通过迭代过程把数据集划分为不同的类别,使得评价聚类性能的准则函数达到最优,从而生成每个聚类(簇)内紧凑,类间独立。
深度理解
基础知识介绍
聚类以同类事物相聚为原则,将原没有类别的样本聚集成不同的组,这样形成的一组数据对象的集合叫簇,对每一个簇描述的过程即是聚类。
分类由于数据库存在类已知,对每条记录属于哪个类进行标记
聚类学习样本没有标记,由聚类算法自行确定。
样本间的相似度常用距离表示,距离小相似度大,距离大相似度小
欧氏距离,欧几里得距离或欧几里得度量是欧几里得空间中两点间“普通”(即直线)距离。
kmeans算法使用误差平方和准则函数来评价聚类性能。
误差平方和又称残差平方和、组内平方和等,根据n个观察值拟合适当的模型后,余下未能拟合部份(ei=yi一y平均)称为残差,其中y平均表示n个观察值的平均值,所有n个残差平方之和称误差平方和。
kmeans算法步骤:
1 随机选取k个中心点,每个聚类确定一个初始聚类中心
2 遍历所有数据,将每个数据分配到最近的中心点中
3 计算每个聚类的平均值,并作为新的中心点
4 重复2和3,直到这k个中线点不再变化(收敛),或执行了足够多的迭代
5.得到k个聚类
伪代码
kmeans(输入数据,中心点个数k)
输入数据并获取数据数N
从数据中随机生成k个点
while(算法未收敛)对N个点:
计算每个点属于哪一类。
对于K个中心点:
1,找出所有属于自己这一类的所有数据点
2,把自己的坐标修改为这些数据点的中心点坐标
end
输出结果:
end
kmeans算法特点总结
优点
1.快速,简单,处理大数据高效
2.簇是密集的,簇与簇之间区分明显时,效果更好
缺点
1.平均值被定义才可用该算法
2.要先生成簇的个数,初值k不同,结果可能不同
3.少量孤立点数据对均值影响极大
根据类别未知的训练样本解决模式是些问题,无监督学习
网友评论