聚类分析之谱聚类
Posted 机器学习小石头
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了聚类分析之谱聚类相关的知识,希望对你有一定的参考价值。
聚类根据给定的样本数据集定义一个描述成对数据点相似度的亲合矩阵,并且计算矩阵的特征值和特征向量 , 然后选择合适 的特征向量聚类不同的数据点。
谱聚类可以在任意形状的样本空间聚类,且收敛于全局最优解,因此在处理高维数据方面存在着明显优势。总的来说,该算法存在一些不足之处。算法在聚类之前需要设置具体应用的尺度参数,通常需要一些经验。初始聚类中心对整个聚类效果影响很大,存在初始值敏感问题。很难找到图划分的优化解,聚类数目对于整个聚类效果有很大影响。
setp1:计算图的拉普拉斯矩阵L=D-w
setp2:归一化拉普拉斯矩阵
setp3:计算归一化后的拉普拉斯矩阵的特征值和特征向量Q
setp4:对Q进行K-means聚类,return(c1,c2,c3...cn)
优点:因此比传统的聚类算法更加健壮一些,对于不规则的误差数据不是那么敏感,计算复杂度比 K-means 要小
代码:
from sklearn.cluster import SpectralClustering
from sklearn import datasets
from dask.array.learn import predict
import numpy as np
iris = datasets.load_iris()
X = iris.data
y = iris.target
print(y)
clf=SpectralClustering(n_clusters=3)
predicted=clf.fit_predict(X)
print(predicted)
k2y = np.array([0,1,2])
print(k2y[predicted])
print((k2y[predicted] == y).astype(int).mean())
聚类精度为0.9
以上是关于聚类分析之谱聚类的主要内容,如果未能解决你的问题,请参考以下文章
均值漂移(MeanShift)谱聚类(Spectral clustering)AP聚类(Affinity propagation)聚类应用(客户分群)聚类应用(睡眠分析)