无监督学习
无监督学习是机器学习的一种方法,没有给定事先标记过的训练示例,自动对输入数据进行分类或分群。
无监督学习的优点:
①算法不受监督信息(偏见)的约束,可能考虑到新的信息。
②不需要标签数据,极大程度上扩大数据样本
主要应用:聚类分析、关联规则、维度缩减
应用最广的是:聚类分析(clustering)
聚类分析
聚类分析又称为群分析,根据对象的某些属性的相似度,将其自动化分为不同的类别。简要举几个例子:客户划分(商业)、基因聚类(生物)、新闻关联
常用的聚类算法
KMeans聚类(K均值聚类)
KMeans聚类根据数据与中心点距离划分类别,基于类别数据更新中心点,重复过程直到收敛。
特点:
1、实现简单,收敛速度快
2、需要指定类别数量
K-均值算法:以空间中K个点为中心进行聚类,对最靠近它们的对象归类,是聚类算法中最为基础但也最为重要的算法。
步骤:
1.数据点与各簇中心点距离:
d
i
s
t
(
x
i
,
u
j
t
)
dist\left( x_i,u_{j}^{t} \right)
dist(xi,ujt)
2.根据距离归类:
x
i
∈
u
n
e
a
r
e
s
t
t
x_i∈u_{nearest}^{t}
xi∈unearestt
3.中心更新;
u
j
t
+
1
=
1
k
∑
x
i
∈
s
J
(
x
i
)
u_{j}^{t+1}=\frac{1}{k}\sum_{x_i∈s_J}{\left( x_i \right)}
ujt+1=k1∑xi∈sJ(xi)
S
j
:
S_j:
Sj: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
+
1
u_{j}^{t+1}
ujt+1为
t
t
t状态下第
j
j
j区域中心
算法流程:
1.选择聚类的个数k
2.确定聚类中心
3.根据点到聚类中心聚类确定各个点所属类别
4.根据各个类别数据更新聚类中心
5.重复以上步骤直到收敛(中心点不再变化)
K近邻分类模型(KNN)
给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的K个实例(也就是上面所说的K个邻居),这K个实例的多数属于某个类就把该输入实例分类到这个类中。(最简单的机器学习算法之一)
均值漂移聚类(Meanshift)
首先在中心点一定区域检索数据点,更新中心,重复流程到中心点稳定。
特点:
1.自动发现类别数量,不需要人工选择
2.需要选择区域半径
算法流程:
1.随机选择未分类点作为中心点
2.找出离中心点距离在在带宽之内的点,记作集合S
3.计算从中心点到集合 S中每个元素的偏移向量M
4.中心点以向量M移动
5.重复步骤2-4,直到收敛
6.重复1-5直到所有的点都被归类
7.分类:根据每个类,对每个点的访问频率,取访问频率最大的那个类,作为当前点集的所属类。
DBSCAN算法(基于密度的空间聚类算法)
基于区域点密度筛选有效数据,基于有效数据向周边扩张,直到没有新点加入
特点:
1.过滤噪声数据
2.不需要人为选择类别数量
3.数据密度不同时影响结果
DBSCN需要两个参数:扫描半径(eps)和最小包含点数(minPts)。任意选一个未被访问(unvisited)的点开始,找出与其距离在eps之内(包括eps)的所有附近点。如果附近点的数量≥minPts,则当前点与其附近点形成一个簇,并且出发点被标记为已访问(visited)。然后递归,以相同的方法处理该簇内所有未被标记为已访问的点,从而对簇进行扩展。
如果附近点的数量<minPts,则该点暂时被标记作为噪声。
如果簇充分地被扩展,即簇内的所有点被标记为已访问,然后用同样的算法去处理未被访问的点。