sklearn 中本身自带了一些数据集,这里我们以手写数字为例进行学习:
1、了解下手写字体数据集的数据结构
import matplotlib.pyplot as plt
import numpy as np
from sklearn import datasets,svm,metrics
digits = datasets.load_digits()
#digits: bunch类型
print(type(digits))
#digits 包含的数据结构,字典类型数据key,value
print('digits.keys() = ',digits.keys())
如图所示:digits 是手写数字的数据集,它的类型是bunch,即继承与字典的一种链式松散饿存储结构。
其中digits所包含的数据分为data、target、target_names、images、DESCR
2、Images 介绍
#imgaes 是一个三维矩阵1797 张 8 * 8的图片
print('digits.images.shape = ',digits.images.shape)
print('digits.images = ',digits.images)
plt.gray()
plt.matshow(digits.images[0])
plt.show()
下图中显示了images 是一个1797 * 8 * 8 的三维矩阵,即有1797 张 8 * 8 的数字图片组成
3、data是具体数据 , 将images按行展开成一行,共有1797行
#data中包含1797个样本,每个样本包括8*8像素的图像,其实就是将8*8 的images按行展开
成一行
print('digits.data.shape = ',digits.data.shape)
print('digits.data = ',digits.data)
#target 是一个1797维度的Vector,指明每张图片的标签,也就是每张图片代表的数字
print('digits.target.shape = ',digits.target.shape)
print('digits.target = ',digits.target)
5、target_names数据集中所有标签值
#数据集中所有标签值,[0,1,2,3,4,5,6,7,8,9]
print('digits.target_names.shape = ',digits.target_names.shape)
print('digits.target_names = ',digits.target_names)
6、DESCR是一些作者的描述信息