经典机器学习数据集导入集合(scikit-learn/Keras/TensorFlow)


1.概述

经典机器学习数据集整理。

2.经典数据集

2.1鸢尾花卉数据集(Iris)

安德森鸢尾花卉数据集(Anderson's Iris data set),也称鸢尾花卉数据集(Iris flower data set)或费雪鸢尾花卉数据集(Fisher's Iris data set),是一类多重变量分析的数据集。它最初是埃德加·安德森从加拿大加斯帕半岛上的鸢尾属花朵中提取的形态学变异数据[1],后由罗纳德·费雪作为判别分析的一个例子[2],运用到统计学中。

其数据集包含了150个样本,都属于鸢尾属下的三个亚属,分别是山鸢尾、变色鸢尾和维吉尼亚鸢尾。四个特征被用作样本的定量分析,它们分别是花萼和花瓣的长度和宽度。基于这四个特征的集合,费雪发展了一个线性判别分析以确定其属种。

下面通过scikit-learn导入iris数据集。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
from sklearn import datasets
from sklearn.model_selection import train_test_split

#Load iris dataset / 下载iris数据
iris = datasets.load_iris()
print(iris['DESCR']) #打印对iris数据集的描述
x = iris.data        #特征数据
y = iris.target      #标签数据

#数据集分割为训练集和测试集
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.4)

print ('输入训练数据维数:', x_train.shape)
print ('输入训练数据标签维数:', y_train.shape)
print ('输入测试数据维数:', x_test.shape)
print ('输入测试数据标签维数:', y_test.shape)

2.3Fashion-MNIST数据集

Fashion-MNIST是一个替代MNIST手写数字集的图像数据集。 它是由Zalando(一家德国的时尚科技公司)旗下的研究部门提供。其涵盖了来自10种类别的共7万个不同商品的正面图片。Fashion-MNIST的大小、格式和训练集/测试集划分与原始的MNIST完全一致。60000/10000的训练测试数据划分,28x28的灰度图片。你可以直接用它来测试你的机器学习和深度学习算法性能,且不需要改动任何的代码。

这个数据集的样子大致如下(每个类别占三行):

经典的MNIST数据集包含了大量的手写数字。十几年来,来自机器学习、机器视觉、人工智能、深度学习领域的研究员们把这个数据集作为衡量算法的基准之一。你会在很多的会议,期刊的论文中发现这个数据集的身影。实际上,MNIST数据集已经成为算法作者的必测的数据集之一。有人曾调侃道:"如果一个算法在MNIST不work, 那么它就根本没法用;而如果它在MNIST上work, 它在其他数据上也可能不work!"

Fashion-MNIST的目的是要成为MNIST数据集的一个直接替代品。作为算法作者,你不需要修改任何的代码,就可以直接使用这个数据集。Fashion-MNIST的图片大小,训练、测试样本数及类别数与经典MNIST完全相同。下面总结几种导入该数据集的方法。

2.3.1Python直接导入

1
2
3
4
5
6
7
8
9
10
11
12
import mnist_reader

#导入训练集数据
X_train, y_train = mnist_reader.load_mnist('data/fashion', kind='train')
#导入测试集数据
X_test, y_test = mnist_reader.load_mnist('data/fashion', kind='t10k')

#数据集结构打印
print ('输入训练数据维数:', x_train.shape)
print ('输入训练数据标签维数:', y_train.shape)
print ('输入测试数据维数:', x_test.shape)
print ('输入测试数据标签维数:', y_test.shape)

2.3.2通过Keras导入

1
2
3
4
5
6
7
8
9
10
from keras.datasets import fashion_mnist

#导入数据集,并分为训练集与测试集
(x_train, y_train), (x_test, y_test) = fashion_mnist.load_data()

#数据集结构打印
print ('输入训练数据维数:', x_train.shape)
print ('输入训练数据标签维数:', y_train.shape)
print ('输入测试数据维数:', x_test.shape)
print ('输入测试数据标签维数:', y_test.shape)

2.3.3通过TensorFlow导入

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#TensorFlow版本要求1.8.0及以上
import tensorflow as tf
import matplotlib.pyplot as plt

#创建数据集实例
fashion_mnist = tf.keras.datasets.fashion_mnist
#导入数据集,并分为训练集与测试集
(train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()

#数据集结构打印
print ('输入训练数据维数:', train_images.shape)
print ('输入训练数据标签维数:', train_labels.shape)
print ('输入测试数据维数:', test_images.shape)
print ('输入测试数据标签维数:', test_labels.shape)

#打印数据集中图片实例
plt.figure()
plt.imshow(train_images[0])
plt.colorbar()
plt.gca().grid(False)
plt.show()

参考文献

  1. Anderson E. The irises of the Gaspe Peninsula[J]. Bulletin of the American Iris society, 1935, 59: 2-5.
  2. Fisher R A. The use of multiple measurements in taxonomic problems[J]. Annals of eugenics, 1936, 7(2): 179-188.
  3. https://zh.wikipedia.org/wiki/安德森鸢尾花卉数据集
  4. https://github.com/zalandoresearch/fashion-mnist/
  5. https://github.com/AtsushiSakai/PythonRobotics/
  6. PythonRobotics: a Python code collection of robotics algorithms
  7. http://www.probabilistic-robotics.org/
  8. Sakai A, Kuroda Y. Discriminatively Trained Unscented Kalman Filter for Mobile Robot Localization[J]. Journal of Advanced Research in Mechanical Engineering, 2010, 1(3).
  9. https://keras.io/
  10. https://www.tensorflow.org/

进化学习团队将会根据大家意见和建议持续修改、维护与更新。转载请注明出处(进化学习: https://www.evolutionarylearn.com/paper/machinelearning-dataset-load/)。

赞赏

微信赞赏支付宝赞赏

Have any Question or Comment?

发表评论

电子邮件地址不会被公开。 必填项已用*标注

分类目录

博客统计

  • 14,394 点击次数