机器学习算法(六)K-Means聚类、层次聚类、密度聚类、谱聚类

来源:互联网 发布:淘宝一星店能刷几单? 编辑:程序博客网 时间:2024/06/02 05:47

本文主要简述聚类算法族。聚类算法与前面文章的算法不同,它们属于非监督学习。

1、K-means聚类

记k个簇中心,为μ1,μ2,…,μk,每个簇的样本数为Ni
假设每个簇中的数据都满足分布N(μi,σ),即方差相同,均值不同的GMM。
则每一个样本点的分布函数为:

ϕi=12πσ2exp((xiμ)22σ2)

可求出其似然函数
Lμ=ϕ1×ϕ2×...

且可求其对数似然为(以三个点为例)
lμ=12j=1kNji=1(xIμj)2

求驻点有:
μj=1Nji=1Nxi

因此,以均方误差为目标函数的时候肯定是收敛的。用其他函数作为目标函数不一定收敛。

注:k的选择采用“手肘法”,注意不是交叉验证,它连标签都没有!

2、密度聚类

代表算法:DBSCAN

K-means对噪声敏感,密度聚类对噪声不敏感。

3、层次聚类

按层次聚类,由上至下或由下至上,优点是可以任意选择聚类数

4、谱聚类

Step1:对样本点俩俩计算相似度Sij,组成相似度矩阵,又称权值矩阵

Wn×n=[Sij]

Step2:将Wn×n的主对角线元素全部置为0,把每行元素的值相加,第i行的和为di。将di作为主对角线元素组成Dn×n

Step3:令

Ln×n=Dn×nWn×n
,称为拉普拉斯矩
阵。这个L是半正定的,它最小的特征值为0。

Step4:求L矩阵的特征值和特征向量,将所有特征值从小大排列,取出前k个(聚类数为k),将其对应的特征向量如下排列:

[u1,u2,...,uk]
该矩阵的第一行即为第一个样本点转换后的特征,第二行为第二个样本点转换后的特征。将这些特征扔入K_means,其聚类结果即是谱聚类结果。

原创粉丝点击