Page 87 - 高中 信息技术 选择性必修4 人工智能初步
P. 87
3.5 人工神经网络
来评估这个模型的性能,从而更加容易把设计的模型推广到其他数据集上(泛化)。
每一个MNIST数据单元由两部分组成:一幅手写数字的图像和一个对应的标签。每一
幅图像都是28像素×28像素。如图3-17所示,可以用一个数字数组来表示这张图。再把这
个数组展开,就得到一个长度是 28×28=784的向量。把图像数字化之后,就可以交给神
经网络模型来处理了。
广东教育出版社
图3-17 图像数字化
实 践
使用机器学习中的手写数字数据集MNIST,根据图像数字化后的数组对图像中的数字
进行分类。Scikit-learn为我们提供了一个封装好的双层神经网络算法,这里仅仅演示怎样
使用封装好的多层感知机算法来进行分类,并使用matplotlib绘制分类结果以便直观感受。
(1)首先引入机器学习库Scikit-learn中的多层感知机分类器方法和数据集,然后加
载MNIST数据集。
import matplotlib.pyplot as plt
from sklearn.datasets import load_digits
from sklearn.neural_network import MLPClassifier
from sklearn.model_selection import train_test_split
mnist = load_digits()
X, y = mnist.images / 255., mnist.target
(2)把加载的手写数字图像数字化,转化成分类器容易接受的二维矩阵,然后划分
成两部分数据集,一部分用来训练,另一部分用来测试。
n_samples = len(X)
X = X.reshape((n_samples, -1))
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
79 79
21Y3228.indd 79 2019/10/10 14:24:06