原因
想要查看详细原因,请看here和here。简单的说,fetch_mldata()不再能够使用是因为其所依赖的资源不再适用。
解决方法
推荐方法
参考here
代码中不再适用fetch_mldata()
,将之替换为fetch_openml()
。
from sklearn.datasets import fetch_openml
dataset = fetch_openml("mnist_784")
需要注意的是这个替换并不是一个无缝替换。例如mnist数据集需要改为mnist_784,具体数据集是在https://www.openml.org/网站上,可以自行去查看。该网站有许多方法的完整pipeline,有兴趣建议学习。
另一个方法
参考here
这个做法是降低scikit-learn的版本来导入fetch_mldata包,按照博主所说scikit-learn0.19.2以下是支持fetch_mldata包的。因此我们将现在的高版本scikit-learn卸载,然后装为低版本。
bash输入
pip uninstall scikit-learn
pip install scikit-learn==0.19.2 -i https://pypi.tuna.tsinghua.edu.cn/simple/
本人不推荐此做法。