无监督学习(Unsupervised Learning)
机器学习的一种方法,没有给定事先标记过的训练示例,自动对输入的数据进行分类或分群。
优点:
-
算法不受监督信息(偏见)的约束,可能考虑到新的信息
-
不需要标签数据,极大程度扩大数据样本
主要应用:
聚类分析(clustering,应用最广)、关联规则、维度缩减
聚类分析
又称为群分析,根据对象某些属性的相似度,将其自动划分为不同类别。
KMeans聚类:
-
根据数据与中心点距离划分类别
-
基于类别数据更新中心点
-
重复过程直到收敛
特点:
1、实现简单,收敛快
2、需要指定类别数量
均值漂移聚类(Meanshift):
-
在中心点一定区域检索数据点
-
更新中心
-
重复流程直到中心点稳定
特点:
1、自动发现类别数量,不需要人工选择
2、需要选择区域半径
DBSCAN算法(基于密度的空间聚类算法):
- 基于区域点密度筛选有效数据
- 基于有效数据向周边扩张,直到没有新点加入
特点:
1、过滤噪音数据
2、不需要人为选择类别数量
3、数据密度不同时影响结果
K近邻分类(KNN,最简单的机器学习算法之一,属于监督学习):
给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的K个实例(也就是上面说的K个邻居),这K个实例的多数属于某个类,就把该输入实例分类到这个类中。
K均值聚类(KMeans Analysis):
以空间中k个点为中心进行聚类,对最靠近他们的对象归类,是聚类算法中最为基础但也最为重要的算法。
公式:
数据点与各簇中心点的距离:
d
i
s
t
(
x
i
,
u
i
t
)
数据点与各簇中心点的距离:dist(x_i,u_i^t)
数据点与各簇中心点的距离:dist(xi,uit)
根据距离归类: x i ∈ u n e a r s t t 根据距离归类:x_i\in u^t_{nearst} 根据距离归类:xi∈unearstt
中心更新: u j t + 1 = 1 k ∑ x i ∈ S j ( x i ) 中心更新:u_j^{t+1}=\frac{1}{k}\sum_{x_i\in S_j}{(x_i)} 中心更新:ujt+1=k1xi∈Sj∑(xi)
S j S_j Sj : t t t时刻第 j j j个区域簇; k k k:包含在 S j S_j Sj范围内的点的个数
x i x_i xi:包含在 S j S_j Sj范围内的点; u j t u_j^t ujt:为第 t t t时刻状态下,第 j j j区域的中心
算法流程:
1、选择聚类的个数 k k k
2、确定聚类中心
3、根据点找到聚类中心聚类确定各个点所属的类别
4、根据各个类别数据更新聚类中心
5、重复以上步骤直至收敛(中心点不再变化)
优点:
- 原理简单,实现容易,收敛速度快
- 参数少,方便使用
缺点:
- 必须设置簇的数量
- 随机选择初始聚类中心,结果可能缺乏一致性
均值漂移聚类
一种基于密度梯度上升的聚类算法(沿着密度上升的方向寻找聚类中心点)
公式:
均值偏移:
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)=k1xi∈Sh∑(u−xi)
中心更新: u t + 1 = M t + u t 中心更新:u^{t+1} = M^t+u^t 中心更新:ut+1=Mt+ut
S h S_h Sh :以 u u u为中心点,半径为 h h h的高维球区域; k k k:包含在 S h S_h Sh范围内的点的个数
x i x_i xi:包含在 S h S_h Sh范围内的点; M t M^t Mt:为 t t t状态下求得的漂移均值; u t u^t ut:为第 t t t时刻状态下的中心
算法流程:
1、随机选择未分类的点作为中心点
2、找出离中心点距离在带宽之内的点,记作集合 S S S
3、计算从中心点到集合 S S S中每个元素的偏移向量 M M M
4、中心点以向量 M M M移动
5、重复步骤2-4,直到收敛
6、重复1-5直到所有的点都被归类
7、分类:根据每个类,对每个点的访问频率,访问频率最大的那个类,作为当前点集的所属类