03-无监督学习
什么是无监督学习
- 定义:机器学习的一种方法,没有给定事先标记过的训练示例,自动对输入的数据进行分类或分群(也就是说训练的数据集并没有固定标签,只需要找到数据的共同点)。
- 优点:
- 算法不受监督信息(偏见)的约束,可能考虑到新的信息(新的分类方式)
- 不需要标签数据,极大程度扩大数据样本(节省成本)
- 应用:聚类分析(Clustering)、关联规则、维度缩减(将关联的维度合并)
聚类分析
聚类分析又称为群分析,根据对象某些属性的相似度,将其自动化分为不同的类别。例如:
- 客户划分:价值用户、普通用户、负样本
- 基因聚类:研究基因的特性,先分类
- 新闻关联:检索
常用的聚类算法
- KMeans聚类
- 过程:
- 根据数据与中心点距离划分类别
- 基于类别数据更新中心点
- 重复过程直到收敛
- 特点:
- 实现简单,收敛快
- 需要指定类别数量
- 过程:
- Meanshift(均值漂移聚类)
- 过程
- 在中心点一定区域统计数据点密度分布
- 更新中心
- 重复流程到中心稳定
- 特点:
- 自动发现类别数量,不需要人工选择
- 需要选择区域半径
- 过程
- DBSCAN算法(基于密度的空间聚类算法):
-过程:
- 基于区域点密度筛选有效数据
- 基于有效数据向周边扩张,直到没有新点加入- 特点:
- 过滤噪声数据
- 不需要人为选择类别数量
- 数据密度不同时影响结果
- 特点:
聚类算法实例
K均值聚类
-
各种量:
- 数据点与各簇中心点距离: d i s t ( x i , u j t ) dist\left(x_i,u^t_j\right) dist(xi,ujt)
- 根据距离归类: x i ∈ u n e a r e s t t x_i\in u^t_{nearest} xi∈unearestt
- 中心更新: u j t + 1 = 1 k ∑ x i ∈ s j ( x i ) u^{t+1}_j=\frac{1}{k}\sum_{x_i\in s_j}(x_i) ujt+1=k1∑xi∈sj(xi)
- t时刻第 j j j个区域簇: S j S_j Sj
- 包含在 S j S_j Sj范围内点的个数: k k k
- 包含在 S j S_j Sj范围内的点
-
流程:
- 选择聚类的个数 k k k
- 确定聚类中心
- 根据点到聚类中心聚类确定各个点所属类别
- 根据各个类别数据更新聚类中心
- 重复以上步骤直到收敛
-
优点:
- 原理简单,实现容易,收敛速度快
- 参数少,方便使用
-
缺点:
- 必须设置簇的数量
- 随机选择初始聚类中心,结果可能缺乏一致性
-
Kmeans vs KNN
- Kmeans为无监督学习
- K近邻分类为监督学习
K近邻分类模型(KNN)
给定一个训练数据集,对新的输入实例,在数据集中找到与该实例最邻近的K个实例,这K个实例的多数属于某个类,就把该输入实例分类到这个类中。
-
最简单的机器学习算法之一
-
举例:
- K=3,绿色圆点的最近的3个邻居是2个红色小三角形和1个蓝色小正方形,判定绿色的待分类点属于红色的三角形一类。
- K=5,绿色圆点的最近的5个邻居是2个红色三角形和3个蓝色的正方形,判定绿色的待分类点属于蓝色的正方形一类。
均值漂移聚类
一种基于密度梯度上升的聚类算法(沿着密度上升方向寻找聚类中心点)
-
各种量:
- 以 u u u为中心点,半径为 h h h的高维球区域: S h S_h Sh
- 包括在 S h S_h Sh范围内点的个数:k
- 包含在 S h S_h Sh范围内的点: x i x_i xi
- t t t状态下求得的偏移均值: M t M^t Mt
- t t t状态下的中心: u t u^t ut
- 均值漂移: M ( x ) = 1 k ∑ x i ∈ s h ( u − x i ) M(x)=\frac{1}{k}\sum_{x_i\in s_h}(u-x_i) M(x)=k1∑xi∈sh(u−xi)
- 中心更新: u t + 1 = M t + u t u^{t+1}=M^t+u^t ut+1=Mt+ut
-
流程:
- 随机选择未分类点作为中心点
- 找出离中心点距离在带宽之内的点,记作集合S
- 计算从中心点到集合S中每个元素的偏移向量M
- 中心点以向量M移动
- 重复2-4直至收敛
- 重复1-5直到所有的点都被归类
- 分类:根据每个类,对每个点的访问频率,取访问频率最大的那个类,作为当前点集的所属类
以上为B站BV1884y1k7cv的课程笔记,如有不足之处请指出,谢谢!