sklearn.cluster.KMeans 中的奇怪错误
Weird error in sklearn.cluster.KMeans
我想用先生。 yasaichi 在 Python 中为我的硕士论文编写的 x-means 实现(yasaichi 的 x-means:https://gist.github.com/yasaichi/254a060eff56a3b3b858)。在过去的几周里,没有任何问题,我已经 运行 在各种数据集上多次使用该算法。然而,今天出现了一个奇怪的错误:
AttributeError: 'KMeans' object has no attribute 'get_params'.
错误来自 yasaichi 实现中的第 75 行:
labels = range(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__
我想用先生。 yasaichi 在 Python 中为我的硕士论文编写的 x-means 实现(yasaichi 的 x-means:https://gist.github.com/yasaichi/254a060eff56a3b3b858)。在过去的几周里,没有任何问题,我已经 运行 在各种数据集上多次使用该算法。然而,今天出现了一个奇怪的错误:
AttributeError: 'KMeans' object has no attribute 'get_params'.
错误来自 yasaichi 实现中的第 75 行:
labels = range(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__