如何在sklearn中使用datasets.fetch_mldata()?
machine-learning
numpy
python
5
0

我正在尝试为简短的机器学习算法运行以下代码:

import re
import argparse
import csv
from collections import Counter
from sklearn import datasets
import sklearn
from sklearn.datasets import fetch_mldata

dataDict = datasets.fetch_mldata('MNIST Original')

在这段代码中,我试图通过sklearn读取mldata.org上存在的数据集“ MNIST Original”。这导致以下错误(有更多行代码,但在这一特定行中出现错误):

Traceback (most recent call last):
  File "C:\Program Files (x86)\JetBrains\PyCharm 2.7.3\helpers\pydev\pydevd.py", line 1481, in <module>
    debugger.run(setup['file'], None, None)
  File "C:\Program Files (x86)\JetBrains\PyCharm 2.7.3\helpers\pydev\pydevd.py", line 1124, in run
    pydev_imports.execfile(file, globals, locals) #execute the script
  File "C:/Users/sony/PycharmProjects/Machine_Learning_Homework1/zeroR.py", line 131, in <module>
    dataDict = datasets.fetch_mldata('MNIST Original')
  File "C:\Anaconda\lib\site-packages\sklearn\datasets\mldata.py", line 157, in fetch_mldata
    matlab_dict = io.loadmat(matlab_file, struct_as_record=True)
  File "C:\Anaconda\lib\site-packages\scipy\io\matlab\mio.py", line 176, in loadmat
    matfile_dict = MR.get_variables(variable_names)
  File "C:\Anaconda\lib\site-packages\scipy\io\matlab\mio5.py", line 294, in get_variables
    res = self.read_var_array(hdr, process)
  File "C:\Anaconda\lib\site-packages\scipy\io\matlab\mio5.py", line 257, in read_var_array
    return self._matrix_reader.array_from_header(header, process)
  File "mio5_utils.pyx", line 624, in scipy.io.matlab.mio5_utils.VarReader5.array_from_header (scipy\io\matlab\mio5_utils.c:5717)
  File "mio5_utils.pyx", line 653, in scipy.io.matlab.mio5_utils.VarReader5.array_from_header (scipy\io\matlab\mio5_utils.c:5147)
  File "mio5_utils.pyx", line 721, in scipy.io.matlab.mio5_utils.VarReader5.read_real_complex (scipy\io\matlab\mio5_utils.c:6134)
  File "mio5_utils.pyx", line 424, in scipy.io.matlab.mio5_utils.VarReader5.read_numeric (scipy\io\matlab\mio5_utils.c:3704)
  File "mio5_utils.pyx", line 360, in scipy.io.matlab.mio5_utils.VarReader5.read_element (scipy\io\matlab\mio5_utils.c:3429)
  File "streams.pyx", line 181, in scipy.io.matlab.streams.FileStream.read_string (scipy\io\matlab\streams.c:2711)
IOError: could not read bytes

我曾尝试过在互联网上进行研究,但几乎没有任何帮助。与解决此错误有关的任何专家帮助将不胜感激。

TIA。

参考资料:
Stack Overflow
收藏
评论
共 3 个回答
高赞 时间 活跃

从0.20版开始,sklearn 弃用 fetch_mldata函数,而是添加了fetch_openml

使用以下代码下载MNIST数据集

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

格式有所更改。例如, mnist['target']是字符串类别标签的数组(不像以前那样浮动)。

收藏
评论

看起来缓存的数据已损坏。尝试删除它们并重新下载(需要一些时间)。如果没有另外指定,则“ MINST原件”的数据应位于

~/scikit_learn_data/mldata/mnist-original.mat
收藏
评论

我从此链接下载了数据集

https://github.com/amplab/datascience-sp14/blob/master/lab7/mldata/mnist-original.mat

然后我输入这些行

from sklearn.datasets import fetch_mldata
mnist = fetch_mldata('MNIST original', transpose_data=True, data_home='files')

***路径是(您的工作目录)/files/mldata/mnist-original.mat

我希望你能得到它,对我来说效果很好

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号