谱聚类解释:特征向量如何揭示复杂的簇结构

了解为什么谱聚类优于 K-means后谱聚类解释:特征向量如何揭示复杂的聚类结构首先出现在走向数据科学上。

来源:走向数据科学

和特征向量是线性代数中的关键概念,在数据科学和机器学习中也发挥着重要作用。之前,我们讨论了如何使用协方差矩阵的特征值和特征向量进行降维。

今天,我们将讨论另一个有趣的应用:如何使用特征值和特征向量来执行谱聚类,它适用于复杂的聚类结构。

在本文中,我们将探讨特征值和特征向量如何使谱聚类成为可能,以及为什么该方法可以优于传统的 K 均值。

我们将从一个简单的可视化开始,它将向您展示谱聚类的重要性,并激励您继续学习如何使用特征值和特征向量执行谱聚类。

谱聚类的动机

学习谱聚类的一个好方法是将其与 K-means 等传统聚类算法在 K-means 难以表现良好的数据集上进行比较。

在这里,我们使用人工生成的两月数据集,其中簇是弯曲的。 Scikit-learn make_moons 算法在二维空间中生成两个卫星。然后,我们使用 Scikit-learn KMeans 和 SpectralClustering 算法来执行 K 均值和谱聚类。最后,我们比较聚类可视化。

制作月球数据

# 制作月球数据

将 matplotlib.pyplot 导入为 plt

从 sklearn.datasets 导入 make_moons

X, y = make_moons(n_samples=400, 噪声=0.05,

随机状态=0)

plt.figure(figsize=[4.2, 3])plt.scatter(X[:,0], X[:,1], s=20)plt.title("原始月球数据")plt.savefig("月球数据.png")原始数据集有两个弯曲的簇结构,称为卫星。这就是为什么我们称之为月球数据。将 K-means 应用于月球数据K-means 经常错误地对月球数据进行分组(它错误地混合了数据点)。将光谱聚类应用于月球数据什么是谱聚类?执行谱聚类背后的直觉如下: