我想在我的硕士论文中使用yasaichi先生用Python编写的x-means实现(yasaichi的x-means: https://gist.github.com/yasaichi/254a060eff56a3b3b858)。在过去的几周里,没有任何问题,我已经在不同的数据集上运行了几次算法。然而,今天,一个奇怪的错误弹出:
AttributeError: 'KMeans'对象没有'get_params'属性。
这个错误来自yasaichi的实现中的第75行:
标签=范围(0,k_means.get_params()("n_clusters"))
最初我以为是我对代码做了一些奇怪的改变,但是当我重新下载原始代码时,它又出现了同样的错误。
任何想法?
听起来像您试图使用的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__