How to use datasets.fetch_mldata() in sklearn – Python?

mldata.org does not have an enforced convention for storing data or naming the columns in a data set. The default behavior of this function works well with most of the common cases mentioned below:

  1. Data values stored in the column are ‘Data’, and target values stored in the column are ‘label’.
  2. The first column table stores target, and the second stores’ data.
  3. The data array is stored as features and samples and needed to be transposed to match the sklearn standard.

Fetch a machine learning data set, if the file does not exist, it is downloaded automatically from mldata.org.

sklearn.datasets package directly loads datasets using function: sklearn.datasets.fetch_mldata() 

Syntax: sklearn.datasets.fetch_mldata(dataname, target_name=’label’, data_name=’data’, transpose_data=True, data_home=None)

Parameters:



  • dataname: (<str>) It is the name of the dataset on mldata.org, e.g: “Iris” , “mnist”, “leukemia”, etc.
  • target_name: (optional, default: ‘label’) It accepts the name or index of the column containing the target values and needed to pass the default values of the label.
  • data_name: (optional, default: ‘data’) It accepts the name or index of the column containing the data and needed to pass default values of data.
  • transpose_data: (optional, default: True) The default value passed is true, and if True, it transposes the loaded data.
  • data_home: (optional, default: None) It loads cache folder for the datasets. By default, all sklearn data is stored in ‘~/scikit_learn_data’ subfolders.

Returns: data, (Bunch) Interesting attributes are: ‘data’, data to learn, ‘target’, classification labels, ‘DESCR’, description of the dataset, and ‘COL_NAMES’, the original names of the dataset columns.

Let’s see the examples:

Example 1: Load the ‘iris’ dataset from mldata, which needs to be transposed.

Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# import fetch_mldata function
from sklearn.datasets.mldata import fetch_mldata
  
# load data and tanspose data
iris = fetch_mldata('iris'
                    transpose_data = False)
  
# iris data is very laarge 
# so print the dataset shape
# print(iris)
print(iris.data.shape)

chevron_right


Output:

(4,150)

Example 2: Load the MNIST digit recognition dataset from mldata.

Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# import fetch_mldata function
from sklearn.datasets.mldata import fetch_mldata
  
# load data  
mnist = fetch_mldata('MNIST original')
  
# mnist data is very large
# so  print the shape of data
print(mnist.data.shape)

chevron_right


Output:

 (70000, 784)

Note: This post is according to Scikit-learn (version 0.19).

Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course.




My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.


Article Tags :

Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.