K均值聚类(K-means)
2017-12-02 09:41
232 查看
之前在做研究,以及后来的工作中,频繁的用到K均值算法。所以就想写一写,也是一种提升吧,把有些问题想清楚。
聚类:事先不知道数据集样本的分类情况是什么样的,所以我们的目的就是在不知道具体类别的情况下,把样本集分成几个类。
分类:事先知道类别信息,通过学习找到一个分类的平面(或公式),把数据分到它属于的那个类中。
K均值聚类算法的步骤:
第一、确定要聚类的簇(或类)的个数K,
第二、初始化每个簇(或类)的初始值(或类中心),可以任意选取数据集中的K个数据点作为每个类的类中心,也可以任意指定类中心;
第三、计算数据集中每个数据点到这K个类的类中心的距离,如果那个距离小,就把这个数据点分到对应的类中;
第四、当数据集中所有数据点都分好类之后,重新计算每个类的类中心(可以是均值或者其他);
第五、重复步骤三和四,直到每个类的类中心不再改变,或者类中心改变范围在允许范围内。
这个算法简单。
但是,1、初始化的值是影响聚类结果的;2、数据量很大的时候,计算量也是比较大的;3、K的值也影响聚类的结果。
K均值聚类算法(K-means)
首先,这个是聚类算法,大致说一下聚类和分类的区别。聚类:事先不知道数据集样本的分类情况是什么样的,所以我们的目的就是在不知道具体类别的情况下,把样本集分成几个类。
分类:事先知道类别信息,通过学习找到一个分类的平面(或公式),把数据分到它属于的那个类中。
K均值聚类算法的步骤:
第一、确定要聚类的簇(或类)的个数K,
第二、初始化每个簇(或类)的初始值(或类中心),可以任意选取数据集中的K个数据点作为每个类的类中心,也可以任意指定类中心;
第三、计算数据集中每个数据点到这K个类的类中心的距离,如果那个距离小,就把这个数据点分到对应的类中;
第四、当数据集中所有数据点都分好类之后,重新计算每个类的类中心(可以是均值或者其他);
第五、重复步骤三和四,直到每个类的类中心不再改变,或者类中心改变范围在允许范围内。
这个算法简单。
但是,1、初始化的值是影响聚类结果的;2、数据量很大的时候,计算量也是比较大的;3、K的值也影响聚类的结果。
相关文章推荐
- k-means(k均值聚类)算法介绍及实现(c++)
- k-means(k均值聚类)算法介绍及实现(c++)
- k均值聚类(K-means)
- 机器学习算法与Python实践之(五)k均值聚类(k-means)
- 算法杂货铺——k均值聚类(K-means)
- k均值聚类(k-means)
- k均值聚类(K-means)
- 算法杂货铺——k均值聚类(K-means)
- 机器学习算法与Python实践之k均值聚类(k-means)
- 机器学习算法与Python实践之(五)k均值聚类(k-means)
- Kmeans K均值聚类,OpenCV实现
- 4.k均值聚类(K-means)
- 机器学习实战5:k-means聚类:二分k均值聚类+地理位置聚簇实例
- Python机器学习算法实践——k均值聚类(k-means)
- 机器学习教程之10-聚类(Clustering)-K均值聚类(K-means)的sklearn实现
- k均值聚类(K-means)
- 机器学习算法与Python实践之(五)k均值聚类(k-means)
- 机器学习--k均值聚类(k-means)算法
- K均值聚类(K-means)算法及应用(matlab)
- 模糊c均值聚类和k-means聚类的数学原理