美文网首页
kmeans算法

kmeans算法

作者: 路过的飞碟 | 来源:发表于2020-05-30 07:04 被阅读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.少量孤立点数据对均值影响极大

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

    相关文章

      网友评论

          本文标题:kmeans算法

          本文链接:https://www.haomeiwen.com/subject/ovoqzhtx.html