无监督学习(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、分类:根据每个类,对每个点的访问频率,访问频率最大的那个类,作为当前点集的所属类
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)