MissForest: ModuleNotFoundError: 没有名为'sklearn.neighbors.base'的模块

0 投票
2 回答
83 浏览
提问于 2025-04-14 17:54

我正在尝试导入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

我想我明白你的问题了。
根据 missingpyrequirements.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,你的步骤是:

  1. 把你的 Python 版本降级到 3.8(如果需要的话)
  2. 把你的 scikit-learn 版本降级到 0.20.1
  3. 按顺序导入你的模块

撰写回答