zoukankan      html  css  js  c++  java
  • 机器学习之聚类

    背景

    聚类属于无监督学习,我们前面所讲的逻辑回归,决策树都是有类别标签y的,也就是说样本中给出了样本的类别y。而聚类的样本却没有给样本的类别y,只有样本的特征x。聚类的目的是找到每个样本x潜在的类别y,并将相同类别y的样本x放在一起。

    kmeans

    kmeans中聚类算法中使用的最广泛的算法之一。我们通过一个简单的例子,看看kmeans聚类的过程

    如图所示,数据样本用圆点表示,每个簇的中心点用叉叉表示。

    • a) 刚开始时是原始数据,杂乱无章,没有label,看起来都一样,都是绿色的。
    • b) 假设数据集可以分为两类,令K=2,随机在坐标上选两个点,作为两个类的中心点。
    • (c-f)演示了聚类的两种迭代。先划分,把每个数据样本划分到最近的中心点那一簇;划分完后,更新每个簇的中心,即把该簇的所有数据点的坐标加起来取平均值。这样不断进行”划分—更新—划分—更新”,直到每个簇的中心不再移动为止。

    ok,我们把上面的步骤用数学的语言来描述:

    假定我们有m个训练样本是 (x^{(1)},x^{(2)},x^{(3)},...,x^{(m)}),每个样本的特征有n维(x in R^n),kmeans算法把样本聚类为k个簇,具体算法描述如下:

    1 随机选取k个聚类质心点 ((u_1,u_2,u3,...u_k) in R^n)
    2 重复下面的过程直到收敛
    2.1 对于每一个样本,计算其所属的类别
    $$c^{(i)} = arg min_j ||x^{(i)} - u_j||^2$$
    2.2 对于每一个类别j,重新计算它的质心
    $$u_j = frac{sum_{i=1}{m}1{c{i}=j}x{i}}{sum_{i=1}{m}1{c^{i}=j}}$$

    • K是我们事先给定的聚类数
    • (c^{(i)})代表样例(x^{(i)})与k个类中距离最近的那个类
    • (c^{(i)})的值是1到k中的一个。
    • 质心(u_j)代表我们对属于同一个类的样本中心点的猜测
    • 质心的计算方式为每个簇中样本的坐标的平均值

    kmeans++

    Kmeans 的一个问题在于,它有可能会停留在一个局部最小值处,而这取决于初始化的情况。如下面的例子

    我们的数据可以聚为三类。a)图是最好的划分方式,b)图和c)图由于初始值选择的缘故都停留在了局部极小值处。为了解决这个问题,我们通常需要多次运行 Kmeans算法,每一次都重新进行随机初始化,最后再比较多次运行 Kmeans的结果,选择代价函数最小的结果。这种方法在K较小的时候(2--10)还是可行的,但是如果 K 较大,这么做也可能不会有明显地改善

    针对这个问题我们有了kmeans++算法

    k-means++算法选择初始seeds的基本思想就是:初始的聚类中心之间的相互距离要尽可能的远。

    1. 从输入的样本集合中随机选择一个样本作为第一个聚类中心
    2. 对于数据集中的每一个样本x,计算它与最近聚类中心(指已选择的聚类中心)的距离D(x)
    3. 选择一个新的样本作为新的聚类中心,选择的原则是:D(x)较大的样本,被选取作为聚类中心的概率较大
    4. 重复2和3直到k个聚类中心被选出来
      利用这k个初始的聚类中心来运行标准的k-means算法

    从上面的算法描述上可以看到,算法的关键是第3步,如何将D(x)反映到点被选择的概率上,算法如下:

    1. 先从我们的样本集合中随机挑选一个样本当做“种子样本”
    2. 对于每个样本,我们都计算其和最近的一个“种子样本”的距离D(x)并保存在一个数组里,然后把这些距离加起来得到Sum(D(x))。
    3. 然后,再取一个随机值,用权重的方式来取计算下一个“种子样本”。这个算法的实现是,先取一个能落在Sum(D(x))中的随机值Random,然后用Random -= D(x),直到其<=0,此时的样本就是下一个“样本点”。
    4. 重复2和3直到k个聚类中心被选出来,利用这k个初始的聚类中心来运行标准的k-means算法

    参考文献

  • 相关阅读:
    Git 基础
    SharePoint 2013 对象模型操作"网站设置"菜单
    SharePoint 2013 隐藏部分Ribbon菜单
    SharePoint 2013 Designer系列之数据视图筛选
    SharePoint 2013 Designer系列之数据视图
    SharePoint 2013 Designer系列之自定义列表表单
    SharePoint 2013 设置自定义布局页
    SharePoint 2013 "通知我"功能简介
    SharePoint 2013 创建web应用程序报错"This page can’t be displayed"
    SharePoint 禁用本地回环的两个方法
  • 原文地址:https://www.cnblogs.com/duanxingxing/p/6924927.html
Copyright © 2011-2022 走看看