我想先用先生。 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”])
最初我以为是我对代码进行了一些奇怪的更改,但是当我再次重新下载原文时,却出现了同样的错误。
有什么想法吗?
答案 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__