机器学习Sklearn导入手写数字数据集Mnist失败的解决办法

2022-12-04

机器学习:Sklearn导入手写数字数据集Mnist失败的解决办法

简介

在机器学习领域,手写数字数据集Mnist是一个非常经典的数据集,广泛用于图像分类任务。然而,随着Sklearn库版本的更新,一些旧的代码可能会出现兼容性问题,导致无法成功导入Mnist数据集。本文将介绍如何解决Sklearn导入手写数字数据集Mnist失败的问题。

问题描述

在使用Sklearn库导入Mnist数据集时,可能会遇到以下错误:

from sklearn.datasets import fetch_mldata
mnist = fetch_mldata('MNIST original')

错误提示:

ImportError: cannot import name 'fetch_mldata' from 'sklearn.datasets'

解决办法

1. 使用fetch_openml替代fetch_mldata

由于fetch_mldata已被弃用,可以使用fetch_openml来替代:

from sklearn.datasets import fetch_openml
mnist = fetch_openml("mnist_784")

2. 本地加载Mnist数据集

如果上述方法仍然无法解决问题,可以考虑将Mnist数据集下载到本地,然后进行本地加载。具体步骤如下:

  1. 下载Mnist数据集文件(如mnist-original.mat)。
  2. 将下载的文件放置在项目文件夹中。
  3. 使用以下代码进行本地加载:
    import scipy.io
    mnist = scipy.io.loadmat('mnist-original.mat')
    X = mnist['data']
    y = mnist['label']
    print("X的内容:\n", X)
    print("X的规格:", X.shape)
    print()
    print("y的内容:\n", y)
    print("y的规格:", y.shape)
    

总结

通过以上方法,可以有效解决Sklearn导入手写数字数据集Mnist失败的问题。无论是使用fetch_openml替代fetch_mldata,还是将数据集下载到本地进行加载,都能确保机器学习任务的顺利进行。

下载链接

机器学习Sklearn导入手写数字数据集Mnist失败的解决办法