项目背景
MNIST 数据集是经典的手写数字识别数据集,每个样本28*28
。如图所示 data set download
![93fc64fe49b99dbf4fae9d4cad3462a3.png](https://i-blog.csdnimg.cn/blog_migrate/d57258f94c64406eb9563145ec1cb81a.jpeg)
- 精简版MNIST:一共1797个样本,每个样本
8*8
,sklearn自带 - 完整版MNIST:一共6万个样本(5万个训练,1万个测试),每个样本
28*28
数据探查
# -*- coding: utf-8 -*-
from sklearn.datasets import load_digits # 精简版MNIST
from sklearn import preprocessing
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.tree import DecisionTreeClassifier, export_graphviz
digits = load_digits()
print(type(digits)) # Bunch类是字典的子类,所以继承了字典的方法
print('字典的 key:',digits.keys())
字典的 key: dict_keys(['data', 'target', 'target_names', 'images', 'DESCR'])
print('数据集大小:{}\n图片数组:{}\n图片标签:{}\n标签类别:{}'.format(
digits.data.shape,digits.target.shape,digits.images.shape,digits.target_names))
数据集大小:(1797, 64)
图片数组:(1797,)
图片标签:(1797, 8, 8)
标签类别:[0 1 2 3 4 5 6 7 8 9]
digits.images[0]
array([[ 0., 0., 5., 13., 9., 1., 0., 0.],
[ 0., 0., 13., 15., 10., 15., 5., 0.],
[ 0., 3., 15., 2., 0., 11., 8., 0.],
[ 0., 4., 12., 0., 0., 8., 8., 0.],
[ 0., 5., 8., 0., 0., 9., 8., 0.],
[ 0., 4., 11., 0., 1., 12., 7., 0.],
[ 0., 2., 14., 5., 10., 12., 0., 0.],
[ 0., 0., 6., 13., 10., 0., 0., 0.]])
# 为图像数据拉平后数据,每条记录一个图片
digits.data[0]
array([ 0., 0., 5., 13., 9., 1., 0., 0., 0., 0., 13., 15., 10.,
15., 5., 0., 0., 3., 15., 2., 0., 11., 8., 0., 0., 4.,
12., 0., 0., 8., 8., 0., 0., 5., 8., 0., 0., 9., 8.,
0., 0., 4., 11., 0., 1., 12., 7., 0., 0., 2., 14., 5.,
10., 12., 0., 0., 0., 0., 6., 13., 10., 0., 0., 0.])
# 图片查看
import matplotlib.pyplot as plt
n = 1001
p