0

我正在使用 scikit-learn(又名 sklearn)进行一些聚类,一切正常,直到我尝试使用函数的gamma参数spectral_clustering

我在使用 anaconda (1.5.1) 管理的虚拟环境中使用 sklearn (0.18.1) 和 python (3.5.2)。

函数的官方文档中,提到了一个参数gamma

sklearn.cluster.SpectralClustering 类(n_clusters=8,eigen_solver=None,random_state=None,n_init=10,gamma=1.0,affinity='rbf',n_neighbors=10,eigen_tol=0.0,assign_labels='kmeans',degree=3 , coef0=1, kernel_params=None, n_jobs=1)

但是,在我的机器上,当我尝试将参数传递gamma给函数时,出现以下错误:

TypeError:spectral_clustering() 得到了一个意外的关键字参数“gamma”

然后,当我显示该功能的帮助页面时,我得到的信息与官方文档help(spectral_clustering)完全不同:

光谱聚类(亲和力,n_clusters=8,n_components=None,eigen_solver=None,random_state=None,n_init=10,eigen_tol=0.0,assign_labels='kmeans')

这就像一些参数丢失了。我想也许它来自 conda 包,但用 pip 安装它并不能解决问题。

我什至尝试在虚拟环境之外安装它,但仍然存在类似问题。

但是,我问了我的两位同事,一位和我有同样的问题,而另一位可以在help(spectral_clustering)函数中看到与官方文档中相同的信息。

如何获得与官方文档中相同的功能?

spectral_clustering在我的管道之一中使用该函数,如下所示:

if clt_mtd == 'spectral':
    # Spectral clustering
    labels = spectral_clustering(sm, n_clusters=num_clt, random_state=seed, gamma=0.1)

只要我不尝试修改gamma参数,此功能就可以正常工作。


已解决: 我的错误来自我用作参考的官方示例之一。

解决方案: 正如下面的评论中所讨论的,SpectralClustering并且spectral_clustering是不一样的。最后一个由fit类中的函数使用,SpectralClustering并且不gamma作为参数,因为这个之前在函数中使用过fit

因此,为了能够修改gamma参数,首先应该实例化一个SpectralClustering对象并使用fit该类提供的功能。

4

0 回答 0