问题
从 sklearn.utils.linear_assignment_ 导入包 linear_assignment
from sklearn.utils.linear_assignment_ import linear_assignment
1
报错
No module named ‘sklearn.utils.linear_assignment_’
1
解决
1.使用scipy.optimize.linear_sum_assignment 替代
通过百度、谷歌都没有弄明白,基本上都是说sklearn没有安装好,要重新安装scipy、numpy+mkl等包,仍然无法解决问题。
在github查了一下,在github的scikit-learn项目issue中,找到:
linear_assignment 函数从0.21开始被弃用了,并且将在0.23版本中移除。官方提升将用scipy.optimize.linear_sum_assignment 进行替代,可以通过
from scipy.optimize import linear_sum_assignment
1
从 scipy.optimize 导入 linear_sum_assignment 函数。
你也可以使用以下语句,这样可以不用修改代码中的原有 linear_assignment 函数
from scipy.optimize import linear_sum_assignment as linear_assignment
1
2.降低scikit-learn版本
使用<=0.19.X的版本,eg.
pip3 uninstall scikit-learn
1
pip3 install -i https://pypi.douban.com/simple scikit-learn==0.19.2
1
你可以在github中了解详细信息:
https://github.com/scikit-learn/scikit-learn/issues/13464
https://github.com/scikit-learn/scikit-learn/pull/13465
https://github.com/scikit-learn/scikit-learn/pull/13480