You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

导入RandomOverSampler遇ImportError:无法导入sklearn.utils的_get_column_indices

解决ImportError: cannot import name '_get_column_indices' from 'sklearn.utils'

核心原因

imbalanced-learn(即imblearn)与scikit-learn版本不匹配。_get_column_indices是scikit-learn的内部私有函数,部分新版本scikit-learn已移除该函数,而旧版本imblearn仍依赖它,从而触发导入错误。

解决方案

1. 对齐兼容版本

根据imblearn官方兼容要求,匹配scikit-learn和imblearn的版本:

  • 若使用scikit-learn >=1.2.x,需安装imbalanced-learn >=0.10.0
  • 若使用scikit-learn 1.1.x,对应imbalanced-learn 0.9.x
  • 若使用scikit-learn <=1.0.x,对应imbalanced-learn <=0.8.x

执行对应安装/升级命令:

# 升级到最新兼容版本
pip install --upgrade imbalanced-learn scikit-learn

# 或指定具体兼容版本(示例:适配sklearn 1.2+)
pip install imbalanced-learn==0.10.1 scikit-learn==1.2.2

2. 检查虚拟环境(若使用)

确认当前激活的虚拟环境是安装库的环境,避免全局与虚拟环境的库冲突。执行以下命令查看当前环境的库版本:

pip list | grep -E "scikit-learn|imbalanced-learn"

3. 彻底清理冲突库

若之前重装无效,先完全卸载相关库再重新安装:

pip uninstall -y scikit-learn imbalanced-learn
pip install --no-cache-dir imbalanced-learn scikit-learn

4. 验证安装

安装完成后,在Python环境中测试导入:

from imblearn.over_sampling import RandomOverSampler
from sklearn.preprocessing import StandardScaler
print("导入成功")

额外提示

不要随意混合安装不同版本的机器学习库,尤其是scikit-learn及其衍生库(如imblearn),版本不一致极易引发这类内部函数依赖错误。

内容的提问来源于stack exchange,提问作者Matt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 13:42:37