导入SMOTE时遇ImportError:无法从sklearn.utils导入parse_version怎么解决?
解决ImportError: cannot import name 'parse_version' from 'sklearn.utils'的问题
这个错误源于imbalanced-learn(即imblearn)与scikit-learn版本不兼容:新版本scikit-learn已将parse_version从sklearn.utils迁移至sklearn.utils.version模块,但旧版imblearn仍在从原路径导入该方法。
以下是具体解决步骤:
查看当前版本
先确认已安装的imblearn和scikit-learn版本:pip show imbalanced-learn scikit-learn升级imbalanced-learn到兼容版本
优先升级imblearn以适配当前scikit-learn版本,执行命令:pip install --upgrade imbalanced-learn注意:pip安装时的包名是
imbalanced-learn,而非imblearn若升级后仍报错,降级scikit-learn
如果受依赖限制无法升级imblearn,可降级scikit-learn到0.24.x版本(该版本中parse_version仍在sklearn.utils目录下):pip install scikit-learn==0.24.2验证修复
重新运行导入语句:from imblearn.over_sampling import SMOTE无报错则问题解决。
内容的提问来源于stack exchange,提问作者Aneesh jayakala
相关产品推荐
相关产品推荐

