kmeans算法

2020-05-30  本文已影响0人  路过的飞碟

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.少量孤立点数据对均值影响极大

根据类别未知的训练样本解决模式是些问题,无监督学习

上一篇 下一篇

猜你喜欢

热点阅读