1. 聚类简介
首先简要介绍无监督学习中的聚类问题. 这一部分主要参考:
• | The Elements of Statistical Learning, Section 14.3 |
• | 邓婉璐老师《多元统计分析》课程 |
聚类, 也称数据分组、数据划分, 作为探索性数据分析 [Exploratory Data Analysis, EDA] 的方法之一, 在统计学、计算科学、生物学、社会学、心理学等学科具有重要的应用.
简单建模: 数据点 之间存在某种相似关系 [similarity] 或距离 [distance] , 我们想要对它们做一个划分, 使得类内相似度高 (距离小) , 类间相似度低 (距离大) .
最简单的聚类方法有层次聚类法 [Hierarchicle Approach] 和分割聚类法 [Partitioning Approach] , 后者以 K-means 方法为代表.
1.1层次聚类法
层次聚类法有两种方式: 集聚 [Agglomerative] 和分散 [Divisive] . 以前者为例:
1. | 初始状态: 每个数据点自成一类; |
2. | 每次将相似度最高 (距离最小) 的两类聚为一类; |
3. | 形成一个树状图. |
其优点是操作非常直观, 但也有如下局限性:
• | 相似度 (距离) 有多种选取: Single Linkage, Complete Linkage, Group Average, Distance between Centroids, …… |
• | 计算复杂度高 |
• | 集聚过程不可逆 |
1.2K-means 方法
考虑优化问题这个约束指的是: 对每个 , 只有一个 , 即 属于第 类. 表示第 类的均值 (重心) 对于每个 , 当所有 给定时, 易见 当且仅当
由此可见这是一个交替更新的过程 [Alternating optimization procedure] :
1. | 给定类别数 , 以及初始分类 (或任取 个数据点) ; |
2. | 在上一分类的基础上, 如果有某个数据点离某个类的中心 (均值) 更近 (与目前所在类的中心相比) , 则将该点归入该 “最近” 的类, 并更新所有类的中心; |
3. | 重复执行上一步的操作, 直到没有可以调整的点为止, 算法停止. |
优点: 计算量为 , 较为高效 (一般来说 )
局限性:
• | 类别数 的选择有所考究 |
• | 对初始点、离群点比较敏感 |
• | 当不同类呈现出不同尺寸、不同密度、非凸等形状时, 聚类效果不佳 |
• | 只能收敛到局部最优解 |
• | 对于某些特定的数据类型, 我们并不能直接取均值 (例如: 花的颜色; 分词算法) |