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
   82   83   84   85   86   87   88   89   90   91   92