sklearn.cluster.KMeans中的奇怪错误

时间:2015-07-19 11:50:42

标签: python scikit-learn k-means

我想先用先生。 yasaichi用我的硕士论文(yasaichi的x-means:https://gist.github.com/yasaichi/254a060eff56a3b3b858)用Python编写的x-means的实现。在过去的几周里没有问题,我已经在各种数据集上多次运行算法。然而,今天出现了一个奇怪的错误:

  

AttributeError:'KMeans'对象没有属性'get_params'。

该错误来自yasaichi实施中的第75行:

  

labels = range(0,k_means.get_params()[“n_clusters”])

最初我以为是我对代码进行了一些奇怪的更改,但是当我再次重新下载原文时,却出现了同样的错误。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

听起来您尝试使用的KMeans对象没有方法get_params

我刚刚在https://gist.github.com/yasaichi/254a060eff56a3b3b858测试了代码,它对我有用。所以,我最好的猜测是你以某种方式覆盖了KMeans对象,或者你的代码使用了定义KMeans对象的代码的缓存版本。

要验证这一点,请尝试在yasaichi实施的第75行之前添加print dir(k_means)。您还应该看到print k_means.__module__应该显示sklearn.cluster.k_means_。如果是这种情况,我建议的最后一件事就是删除实现k_means_模块的已编译Python文件。可以通过运行以下命令找到:

import sklearn.cluster.k_means_
print sklearn.cluster.__file__