本文是对书《机器学习实战:基于Scikit-Learn和Tensorflow》第三章的知识学习以及代码复现,欢迎大家一起学习一起进步。
获取数据集
提前将MNIST数据集下载好,并放在’\scikit_learn_data’目录之下from sklearn.datasets import fetch_mldata
mnist = fetch_mldata('MNIST original', data_home=r'C:\Users\12637\scikit_learn_data')
mnist
001.pngX, y = mnist["data"], mnist["target"]
X.shape
002.png
一共有70000张图片,每张图片有784个特征。因为图片是28×28像素,每个特征代表了一个像素点的强度,从0(白色)到255(黑色)。随手抓取一个实例的特征向量,将其重新形成一个28X28数组,然后用Matplotlib的imshow()函数将其显示出来%matplotlib inline
import matplotlib
import matplotlib.pyplot as plt
some_digit = X[36000]
some_digit_image = some_digit.reshape(28, 28)
plt.imshow(some_digit_image, cmap=matplotlib.cm.binary, interpolation="nearest")
plt.axis("off")
plt.show()
003.png# MNIST数据集中的部分数字图像
X_train, X_test, y_train, y_test = X[:60000], X[60000:], y[:60000], y[60000:]
# 给训练集数据洗牌
import numpy as np
shuffle_index = np.random.permutation(60000)
X_train, y_train = X_train[shuffle_index], y_train[shuffle_index]
训练一个二元分类器# 训练一个二元分类器
y_train