KMeans——之我见
来源:互联网 发布:js前端解析excel 编辑:程序博客网 时间:2024/05/17 22:39
在讲解KMeans算法聚类之前,先推出一个场景:在上政治课的过程中,有N个班级,每个班级为M人,按照正常逻辑,相熟悉的人,会坐在一起。但是,不代表每个班的同学恰巧都坐在一起,为了把每个班的同学聚集在一起,我们需要给每个同学贴一个Label。同时,让每个班的班长站起来,其余同学根据自己身上的Label(即:属于哪个班集体),自动的和身边的人换座,向班长靠拢。这个过程和KMeans所表达的思想基本上是类似的,使结果尽可能收敛(每个班级的同学尽可能坐在一起)。
注:当一个班级中所有的同学都找到班长时,可以向班长做一个手势,该手势只有该班班长能清楚——做这个手势的同学,是属于我们班的。然后,班长为了能够使同学通过移动最小的距离,就聚集在一起,他需要分析自己和每个同学大致的距离,然后尽可能的把自己的位置调整到最中心(使同学们移动的总的距离最小)。
通过模拟以上场景,大家对KMeans算法作用及其操作应该有了一个清晰的认识。好了,让我们具体的去学习它吧!
聚类算法和分类算法思想是不同的(不要混为一谈)。分类算法是给出一个数据,然后判断这个数据属于已分好的类中的具体哪一个类。聚类算法是给一大堆原始数据,然后通过算法将其中具有相似特征的数据聚为一类。
在这里,聚类的对象,根据自己定义(本文就不多加干涉了,要不就感觉有了局限性)。
KMeans算法的思想是随机给定k个簇中心(就是每个班的班长)。按照最近邻原则把待分类样本点(每个班级里的学生)分到各个簇。然后按平均法重新计算各个簇的中心,从而确定新的簇心(班长的位置需要变动,以致同学们总的移动距离最短)。然后,进行迭代,直到簇心的移动距离小于某个给定的值。(收敛的程度,根据实验要求安排)
主要分为三步:
1) 为待聚类的点寻找聚类中心(一般是随机定义)
2) 计算每个点到聚类中心的距离,将每个点聚类到离该点最近的聚类中心,设置Label.
3) 计算每个聚类中所有点的坐标平均值,并将这个平均值作为新的类中心。(在这里,每个样本就是一个N维向量,每维相加,最后取均值)
最后:反复执行(2)、(3),直到聚类中心不再进行大范围移动或者聚类次数达到实验要求位置。
KMeans主要思想就是以上内容,思想懂了,Code就不难了。各位朋友,如果在做行实验过程中,有什么疑问,可以留言。
- KMeans——之我见
- Android——DisplayMetrics之我见
- Android——DisplayMetrics之我见
- Android——DisplayMetrics之我见
- Java基础之我见——泛型
- 身怀绝“技” —— 面试之我见
- Android——DisplayMetrics之我见
- 计科——考研之我见
- mongoDB——metadata之我见
- 软考之我见——论文
- 分布式K—V系统之我见
- 李兴华—JAVA学习之我见 分析!!!
- 分布式K—V系统之我见
- mahout之聚类算法——KMeans分析
- mahout之聚类算法——KMeans分析
- mahout探索之旅——kmeans算法(上)
- 聚类分析之——Kmeans算法(一)
- 360和QQ之战——之我见
- 横竖屏切换SurfaceView 大小的调整
- Aho-Corasick 自动机
- 求二叉树的所有末级左节点的值的和
- mac下安装伪分布hadoop2.6.0和hbase1.0.1.1
- matplotlib中ion()和ioff()的使用
- KMeans——之我见
- PAT:1005. Spell It Right
- 【NOIP2010提高组T4】引水入城-搜索+DP
- Matlab中值滤波代码
- Autocad提示产品许可证错误无法激活的解决办法
- c语言显示比赛的结果
- OpenCV常见算法实现(一)- 椒盐噪声
- hdu 5945 Fxx and game
- POJ 1989 贪心