机器学习(十六)无监督学习、聚类和KMeans聚类

无监督学习、聚类

本文由 @lonelyrains出品,转载请注明出处。
文章链接: http://blog.csdn.net/lonelyrains/article/details/49562779

聚类是在样本没有标注的情况下,对样本进行特征提取并分类,属于无监督学习的内容。有监督学习和无监督学习的区别就是需要分析处理的数据样本是否事先已经标注。如下图,左边是有监督,右边是无监督:
机器学习(十六)无监督学习、聚类和KMeans聚类_第1张图片
应用场景也有所不同。
无监督学习主要用于特征提取分类,其应用场景举例:将市场买家特征识别、分类,然后做肖像(profile);社交网络中哪些人是一个圈子的人;组织计算集群;天文数据分析等等。
有监督学习主要用于回归分析和预测,其应用场景举例:自动驾驶、手写体识别等。
Andrew Ng做的用电脑看视频最终认出哪些是猫,个人认为是无监督学习和有监督学习结合的例子。DeepLearning还有待学习中。

KMeans聚类

基本算法

机器学习(十六)无监督学习、聚类和KMeans聚类_第2张图片

  • 初始输入: K(聚类中心的数目)、样本集、初始聚类中心点
  • 循环迭代:
    • 对从1到 m 的所有的样本 x(i) ,计算哪个中心点 μ(k) 离自己最近(方差、向量差模长的平方最小),然后令centroid即 c(i) = μ(k)
    • 更新 μ(k) 为指定到这个聚类中心的所有样本点的均值点。
    • 整个循环迭代直到聚类中心稳定为止。

代价函数

样本点与聚类中心的方差和的一半
这里写图片描述

如何选择聚类中心初始点

聚类中心点选取不好,可能会导致局部最优。如下图:
机器学习(十六)无监督学习、聚类和KMeans聚类_第3张图片
一般为了避免出现局部最优,只能随机选取聚类中心,重复基本算法,最终通过代价函数来评价,选取代价函数最小的一种聚类。一般随机50到1000次左右。

如何选择聚类点的数目

直观上,如果聚类点的数目K很大,等于总样本数m,且让每个聚类点最终都分别与一个样本点重合,则代价函数为0;但是如果K很小,则容易代价函数过大。所以有一种拐点检测,如下图左侧:
机器学习(十六)无监督学习、聚类和KMeans聚类_第4张图片
但是经常遇到的实际情况是聚类点不明晰,代价函数随着聚类点的增加,如上图右侧。

基本上是人工,具体看需要达到什么效果。因为面对大部分样本集时,并没有特别明显的特征聚类,或者可能有多种选择。例如下图分别对应有特征明显的聚类、没有时的两种选择:
机器学习(十六)无监督学习、聚类和KMeans聚类_第5张图片

应用

基于KMeans的彩色图片的失真压缩:从65536种颜色重新划分到只包含256种颜色的图片。 后面会专门写博客讨论各种机器学习算法的使用例子,并贴代码详细说明。

你可能感兴趣的:(机器学习,聚类,kmeans)