2015-07-19 210 views
-1

我想使用先生。 yasaichi为我的硕士论文使用Python编写的x-means(yasaichi的x-means:https://gist.github.com/yasaichi/254a060eff56a3b3b858)。在过去的几周里,没有任何问题,我一直在不同的数据集上运行算法几次。然而,今天,一个奇怪的错误弹出:sklearn.cluster.KMeans中的奇怪错误

AttributeError: 'KMeans' object has no attribute 'get_params'.

这个错误来自线75在yasaichi的实现:

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

本来我还以为是我的谁做的代码一些奇怪的变化,但是当我再次下载原始文件时,它出现了相同的错误。

任何想法?

+0

而不是要求我们修复某人在互联网上找到的elses代码 - **尝试自己修复它**。例如,它可能是针对sklearns k-means的较旧/较新版本/扩展版本编写的。 –

+0

我一直在使用它约两个星期,现在没有问题。我完全相信(并且知道)代码的作品,这是我觉得有趣的一切。我只在这里提出这个问题,因为我现在没有最微弱的方法。我没有更新我的操作系统上的任何软件包(Ubuntu 12.04.5精确企鹅),我在没有网络访问的虚拟机上运行它。 虽然感谢您的建议! –

回答

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_。如果是这种情况,我建议的最后一件事就是删除编译好的Python文件,实现k_means_模块。这可以通过运行以下内容找到:

import sklearn.cluster.k_means_ 
print sklearn.cluster.__file__ 
+0

感谢您的建议! 我刚刚测试过它,看起来'get_params'是我的KMeans版本的一部分。连同其他不在你名单上的其他人,显然! –

+0

糟糕,我只是重新读我的第一个答案,并意识到这是不正确的。我提供了一个更正。 –