机器学习的相关知识-常用的聚类方法
聚类就是按照某个标准,把数据集划分成不同的类,不同类的数据差异性尽可能大,同类的数据相似性尽可能大。
k-means聚类算法
K邻近算法,要把数据分成K类,一开始是随机的,后来迭代进行选择,直到收敛,采用平方误差。
E
=
∑
i
=
1
k
∑
p
∈
C
i
∥
p
−
m
i
∥
2
E=\sum_{i=1}^{k}\sum_{p\in C_i}\left\|p-m_i\right\|^2
E=i=1∑kp∈Ci∑∥p−mi∥2
算法流程:
输入:包含n个对象的数据和簇的数目k;
输出:n个对象到k个簇,使平方误差准则最小。
步骤:
(1) 任意选择k个对象作为初始的簇中心;
(2) 根据簇中对象的平均值,将每个对象(重新)赋予最类似的簇;
(3) 更新簇的平均值,即计算每个簇中对象的平均值;
(4) 重复步骤(2)、(3)直到簇中心不再变化;
层次聚类算法
根据层次分解的顺序是自底向上的还是自上向下的,层次聚类算法分为凝聚的层次聚类算法和分裂的层次聚类算法。
每个对象作为一类,慢慢得合并,直到所有对象都在一个类中,或者某个终结条件被满足。
算法流程:
注:以采用最小距离的凝聚层次聚类算法为例:
(1) 将每个对象看作一类,计算两两之间的最小距离;
(2) 将距离最小的两个类合并成一个新类;
(3) 重新计算新类与所有类之间的距离;
(4) 重复(2)、(3),直到所有类最后合并成一类。
SOM聚类算法
SOM网络包含输入层和输出层。输入层对应一个高维的输入向量,输出层由一系列组织在2维网格上的有序节点构成,输入节点与输出节点通过权重向量连接。 学习过程中,找到与之距离最短的输出层单元,即获胜单元,对其更新。同时,将邻近区域的权值更新,使输出节点保持输入向量的拓扑特征。 有点神经网络那味儿了。
算法流程:
(1) 网络初始化,对输出层每个节点权重赋初值;
(2) 从输入样本中随机选取输入向量并且归一化,找到与输入向量距离最小的权重向量;
(3) 定义获胜单元,在获胜单元的邻近区域调整权重使其向输入向量靠拢;
(4) 提供新样本、进行训练;
(5)收缩邻域半径、减小学习率、重复,直到小于允许值,输出聚类结果。
FCM聚类算法
Fuzzy C-Means(模糊C均值聚类)算法原理详解与python实现
有点类似VAE
FCM算法是一种以隶属度来确定每个数据点属于某个聚类程度的算法。该聚类算法是传统硬聚类算法的一种改进。
设数据集
X
=
x
1
,
x
2
,
.
.
.
,
x
n
X={x_1,x_2,...,x_n}
X=x1,x2,...,xn,它的模糊
c
c
c划分可用模糊矩阵
U
=
[
u
i
j
]
U=[u_{ij}]
U=[uij]表示,矩阵
U
U
U的元素
u
i
j
u_{ij}
uij表示第
j
(
j
=
1
,
2
,
.
.
.
,
n
)
j(j=1,2,...,n)
j(j=1,2,...,n)个数据点属于第
i
(
i
=
1
,
2
,
.
.
.
,
c
)
i(i=1,2,...,c)
i(i=1,2,...,c)类的隶属度,
u
i
j
u_{ij}
uij满足如下条件:
{
∑
i
=
1
c
u
i
j
=
1
∀
j
u
i
j
∈
[
0
,
1
]
∀
i
,
j
∑
j
=
1
c
u
i
j
>
0
∀
i
\left\{ \begin{array}{lr} \sum_{i=1}^c u_{ij}=1 \quad\forall~j \\u_{ij}\in[0,1] \quad\forall ~i,j \\\sum_{j=1}^c u_{ij}>0 \quad\forall ~i \end{array} \right.
⎩⎨⎧∑i=1cuij=1∀ juij∈[0,1]∀ i,j∑j=1cuij>0∀ i目前被广泛使用的聚类准则是取类内加权误差平方和的极小值。即:
(
m
i
n
)
J
m
(
U
,
V
)
=
∑
j
=
1
n
∑
i
=
1
c
u
i
j
m
d
i
j
2
(
x
j
,
v
i
)
(min)J_m(U,V)=\sum^n_{j=1}\sum^c_{i=1}u^m_{ij}d^2_{ij}(x_j,v_i)
(min)Jm(U,V)=j=1∑ni=1∑cuijmdij2(xj,vi)其中
V
V
V为聚类中心,
m
m
m为加权指数,
d
i
j
(
x
j
,
v
i
)
=
∣
∣
v
i
−
x
j
∣
∣
d_{ij}(x_j,v_i)=||v_i-x_j||
dij(xj,vi)=∣∣vi−xj∣∣。
算法流程:
(1) 标准化数据矩阵;
(2) 建立模糊相似矩阵,初始化隶属矩阵;
(3) 算法开始迭代,直到目标函数收敛到极小值;
(4) 根据迭代结果,由最后的隶属矩阵确定数据所属的类,显示最后的聚类结果。
本文来自博客园,作者:赫凯,转载请注明原文链接:https://www.cnblogs.com/heKaiii/p/17137421.html