【机器学习】课程笔记12_聚类(Clustering)

聚类

  • 无监督学习(Unsupervised Learning Introduction)
  • K-均值算法(K-means Algorithm)
  • 优化目标(Optimization Objective)
  • 随机初始化(Random Initialization)
  • 选取聚类数量(Choosing the Number of Clusters)

无监督学习(Unsupervised Learning Introduction)

  • 无监督学习: 将一系列无标签的训练数据,输入到一个算法中,算法帮助我们寻找给定数据的一种结构。
  • 聚类算法: 将数据分成几个分开的点集(簇)。
  • 聚类算法作用:
    • 市场分割
    • 社交网络分析
    • 组织计算机集群
    • 了解星系的形成

K-均值算法(K-means Algorithm)

  • 作用: 接受一个未标记的数据集,然后将数据聚类成不同的组。

  • 方法:(迭代算法)

    • 首先选择 K K K个随机的点,称为聚类中心cluster centroids);

    • 簇分配(cluster assignment): 对于数据集中的每一个数据,分别计算其与 K K K个中心点的距离,将其与距离最近的中心点关联起来,与同一个中心点关联的所有点聚成一类。

    • 移动聚类中心(move centroid): 计算每一个组的平均值,将该组的聚类中心点移动到平均值的位置。

    • 重复步骤2-3直至中心点不再变化。

      【机器学习】课程笔记12_聚类(Clustering)_第1张图片

  • 伪代码:

    Repeat {
    
        for i = 1 to m
    
            c(i) := index (form 1 to K) of cluster centroid closest to x(i)
    
        for k = 1 to K
    
            μk := average (mean) of points assigned to cluster k
    
    }
    
  • K-均值算法也可以将没有非常明显区分的数据进行分组。例如将顾客的身高体重数据分为三个尺寸大小。

优化目标(Optimization Objective)

  • 代价函数/畸变函数(distortion function): J ( c ( 1 ) , ⋯   , c ( m ) , μ 1 , ⋯   , μ K ) = 1 m ∑ i = 1 m ∥ x ( i ) − μ c ( i ) ∥ 2 J(c^{(1)},\cdots,c^{(m)},\mu_1,\cdots,\mu_K)=\cfrac{1}{m}\displaystyle\sum^m_{i=1}\lVert x^{(i)}-\mu_{c^{(i)}} \rVert^2 J(c(1),,c(m),μ1,,μK)=m1i=1mx(i)μc(i)2
    • c ( i ) = c^{(i)}= c(i)= 样本 x ( i ) x^{(i)} x(i) 当前所在聚类的索引(1,2,…,K)
    • μ k = \mu_k= μk= 聚类中心 k   ( μ k ∈ R n ) k\ (\mu_k \in \mathbb R^n) k (μkRn)
    • μ c ( i ) = \mu_{c^{(i)}}= μc(i)= 样本 x ( i ) x^{(i)} x(i) 被分配到的聚类的聚类中心
  • 迭代算法第一个循环用于减小 c ( i ) c^{(i)} c(i) 引起的代价,第二个循环用于减小 μ i \mu_i μi 引起的代价,每一次迭代都在减小代价函数。

随机初始化(Random Initialization)

  • 方法:随机初始化

    • 选择 K < m KK<m,即聚类中心点的个数要小于所有训练集实例的数量;
    • 随机选择 K K K个训练实例,然后令 K K K个聚类中心分别与这 K K K个训练实例相等。
  • 问题: 当聚类数量很少时,如果初始化的位置不够好,会得到一个局部最优解。

    【机器学习】课程笔记12_聚类(Clustering)_第2张图片

  • 方法:多次随机初始化

    • 多次运行K-均值算法(例如100次),每一次都重新进行随机初始化;
    • 比较多次运行K-均值的结果,选择代价函数最小的结果。

K K K较小的时候(2-10)还是可行的,但是如果 K K K较大,这么做也可能不会有明显地改善。

选取聚类数量(Choosing the Number of Clusters)

  • 肘部法则: 找到曲线的肘点,在此之前畸变值下降得很快,在此之后下降得很慢。(并不常用)

    【机器学习】课程笔记12_聚类(Clustering)_第3张图片

  • 根据k均值聚类的目的来做判断: 比如做衣服尺寸的聚类分析,根据市场需求,3个聚类或5个聚类更适合市场营销等等。

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