Jupyter Notebook中sklearn导入MPLClassifier失败,求可行解决方案
解决scikit-learn无法导入神经网络分类器问题
首先排查最常见的拼写错误:scikit-learn内置的多层感知机分类器类名为MLPClassifier(是Multi-layer Perceptron的缩写,L在前P在后),你代码中写的MPLClassifier为拼写错误,直接修正类名拼写即可解决绝大多数该类报错。
如果修正拼写后仍提示导入失败,可按以下步骤排查:
排查步骤
- 确认scikit-learn版本符合要求
MLPClassifier是scikit-learn 0.18版本后才新增的内置模块,无需额外安装scikit-neuralnetwork、mingw这类第三方依赖,你此前安装的非必要依赖可直接卸载。
先在代码中执行以下命令查看当前使用的scikit-learn版本:
若版本低于0.18,执行升级命令:import sklearn print(sklearn.__version__)conda update scikit-learn或者pip install --upgrade scikit-learn - 确认Jupyter内核与安装依赖的环境一致
若终端执行conda list能查到scikit-learn,但Jupyter中仍导入失败,通常是因为Jupyter启动的内核不是你安装依赖的conda环境。在Jupyter单元格中执行以下命令查看当前内核关联的scikit-learn安装情况:!pip list | grep scikit-learn
若查询结果无对应包,直接在Jupyter单元格执行升级安装命令即可:!pip install --upgrade scikit-learn
替代方案
如果受环境限制无法升级scikit-learn,可选择以下替代方案实现同等功能:
- 使用scikit-neuralnetwork库的对应类,导入方式为:
from sknn.mlp import Classifier as MLPClassifier - 使用TensorFlow/Keras的全连接层搭建多层感知机模型,功能灵活度更高
内容的提问来源于stack exchange,提问作者Jasmeen
相关产品推荐
相关产品推荐

