机器学习训练营——机器学习爱好者的自由交流空间(入群联系qq:2279055353)
在数据的多变量统计和聚类里,谱聚类技术使用数据的相似矩阵的谱(即,相似矩阵的特征值)降低特征的维度。然后,在降维后的空间使用k-means
聚类。其中的相似矩阵度量了数据集的任何两点的相似性。
这个例子产生一个带有连接的圆圈区域的图像,使用谱聚类法(spectral clustering
)分隔出这些区域。在这种情况下,谱聚类法解决了标准的图像分割问题:图像被当作一个由三维像素连接的图,谱聚类算法等于是选择图分割的区域,最小化沿着分割的梯度改变率。因为该算法试图平衡区域的大小,如果我们分隔的圆圈大小不同,分割就等于失败了。
实例详解
首先,从scikit-learn的feature_extraction
导入image
, 从clusters
导入谱聚类函数spectral_clustering
. 在image里定义4个圆圈区域。
import numpy as np
import matplotlib.pyplot as plt
from sklearn.feature_extraction import image
from sklearn.cluster import spectral_clustering
l = 100
x, y = np.indices((l, l))
center1 = (28, 24)
center2 = (40, 50)
center3 = (67, 58)
center4 =