MissForest: ModuleNotFoundError: 没有名为'sklearn.neighbors.base'的模块
我正在尝试导入MissForest这个库,但在sklearn.neighbors.base里遇到了一个错误。
import sklearn.neighbors._base
import sys
sys.modules['sklearn.neighbors.base '] = sklearn.neighbors._base
from missingpy import MissForest
ModuleNotFoundError: No module named 'sklearn.neighbors.base'
2 个回答
0
要卸载的话,可以用这个命令: py -m pip install -U scikit-learn
如果你想安装的话,可以用这个命令:py -m pip install scikit-learn
。这个版本是在2024年2月16日发布的。
py -m pip show scikit-learn
1
我想我明白你的问题了。
根据 missingpy 的 requirements.txt
文件,你需要的 scikit-learn
版本是 0.20.1。可惜的是,这个版本在 3.8 以后的 Python 版本上不容易安装。如果你正在使用 3.8 或更早的版本,你只需要打开命令行,运行以下命令:
pip uninstall scikit-learn
pip install scikit-learn==0.20.1
一旦你安装了正确的版本,就不需要去改名模块了。你可以直接这样做:
import sklearn.neighbors.base
import missingpy
不过,仅仅为了使用一个库而把你的 Python 环境降级到早期版本并不是一个好主意。你可以考虑其他选项,看看是否能找到比 missingpy
更现代的解决方案。
总的来说,如果你真的需要使用 missingpy
,你的步骤是:
- 把你的 Python 版本降级到 3.8(如果需要的话)
- 把你的
scikit-learn
版本降级到 0.20.1 - 按顺序导入你的模块