我试图为我运行的K均值模型绘制一个轮廓图,但是,我得到了一个错误:ImportError: cannot import name 'safe_indexing' from 'sklearn.utils。
我最初是在这个张贴在这里中得到描述的张贴在这里问题,但是一旦我修复了它,我就得到了这个问题。我的代码如下:
from yellowbrick.cluster import SilhouetteVisualizer
fig, ax = plt.subplots(2, 2, figsize=(15,8))
for i in range(1,6):
kmeans = KMeans(n_clusters=i, init='k-means++', n_init=10, max_iter=100, random_state=0)
q, mod = divmod(i, 2)
visualizer = SilhouetteVisualizer(km, colors='yellowbrick', ax=ax[q-1][mod])
visualizer.fit(ct1)发布于 2021-01-09 03:58:57
在python3.7中,在黄砖v1.2和scikit中-学习v0.23.2,我没有得到错误,但是当我跳到scikit时-学习v0.24.0,我得到了相同的ImportError。
我检查了API文档,就像您引用的链接一样,在sklearn v0.22.0中,他们将utils.safe_indexing推荐为私有(utils._safe_indexing)。但是,在安装了黄砖v1.2和v0.22.0<=sklearn<=v0.23.2时,我没有得到导入错误。我认为他们最终在0.24.0版本中删除了公共utils.safe_indexing,所以如果您只是在0.24.0之前安装了scikit的一个版本,那么导入应该可以工作。
编辑:这里是黄砖的github 问题,如果您想要跟踪他们在解决这个问题上的进度或者更新这个问题
发布于 2022-08-12 17:04:03
在我的例子中,我卸载了项目env中的黄砖包(通过conda install .安装),然后使用pip install重新安装,并且它工作了。
发布于 2021-06-04 02:13:50
我也遇到过这种情况,并谈到了我的解决办法。
我使用python3.8,黄砖v1.2和scikit--学习0.24.0,然后我换到了scikit--正如adbailey所说,我学习了v0.23.2,但似乎没有什么变化。
所以,我试着在“Colab”上运行它。现在起作用了。Colab的零件要求如下:
...
pandas==1.1.5
scikit-learn==0.22.2
scipy==1.4.1
...
yellowbrick==0.9.1
...换句话说,引用此配置是没有问题的。
pip install yellowbrick==0.9.1 scikit-learn==0.22.2
https://stackoverflow.com/questions/65602076
复制相似问题