我正在尝试理解和使用来自雪橇的雪橇。假设我们输入了X矩阵,然后创建一个谱聚类对象,如下所示:
clustering = SpectralClustering(n_clusters=2,
assign_labels="discretize",
random_state=0)然后,我们使用光谱聚类对象调用fit_predict。
clusters = clustering.fit_predict(X)令我困惑的是,“使用所选的亲和力创建X的亲和矩阵”是什么时候?因为根据文档,fit_predict()方法‘对X执行集群并返回集群标记’。但它并没有明确指出,在聚类之前,它也会使用所选的亲和力计算“X的亲和矩阵”。
我很感谢你的帮助和建议。
发布于 2019-07-27 18:17:03
正如另一个答案中已经暗示的那样,fit_predict只是返回集群标签的一种方便的方法。根据文档,fit
使用所选的亲和力创建X的亲和矩阵,然后将谱聚类应用于此亲和矩阵。
而fit_predict
对X执行群集并返回群集标签。
在这里,对X的执行聚类应该理解为对fit的描述,即创建一个亲和矩阵.
不难验证,调用fit_predict等同于在fit之后从对象获取labels_属性;使用一些虚拟数据,我们拥有
from sklearn.cluster import SpectralClustering
import numpy as np
X = np.array([[1, 2], [1, 4], [10, 0],
[10, 2], [10, 4], [1, 0]])
# 1st way - use fit and get the labels_
clustering = SpectralClustering(n_clusters=2,
assign_labels="discretize",
random_state=0)
clustering.fit(X)
clustering.labels_
# array([1, 1, 0, 0, 0, 1])
# 2nd way - using fit_predict
clustering2 = SpectralClustering(n_clusters=2,
assign_labels="discretize",
random_state=0)
clustering2.fit_predict(X)
# array([1, 1, 0, 0, 0, 1])
np.array_equal(clustering.labels_, clustering2.fit_predict(X))
# True发布于 2019-07-27 17:33:59
从源代码 of fit_predict()的角度来看,它似乎只是一种方便的方法--它实际上只是调用fit()并从对象返回标签。
https://stackoverflow.com/questions/57234414
复制相似问题