{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"# 准备工作","metadata":{}},{"cell_type":"markdown","source":"## 数据集介绍","metadata":{}},{"cell_type":"markdown","source":"数据文件 train.csv 和 test.csv 包含从零到九的手绘数字的灰度图像。\n\n每张图像高 28 像素，宽 28 像素，总共 784 像素。每个像素都有一个与之关联的像素值，表示该像素的亮度或暗度，数字越大表示越暗。该像素值是介于 0 和 255 之间的整数，包括 0 和 255。\n\n训练数据集 (train.csv) 有 785 列。第一列称为“标签”，是用户绘制的数字。其余列包含相关图像的像素值。\n\n训练集中的每个像素列都有一个类似 pixelx 的名称，其中 x 是 0 到 783 之间的整数，包括 0 到 783。要在图像上定位该像素，假设我们已将 x 分解为 x = i * 28 + j，其中 i 和 j 是 0 到 27 之间的整数，包括 0 和 27。然后 pixelx 位于 28 x 28 矩阵的第 i 行和第 j 列（索引为零）。\n\n例如，pixel31 表示左数第四列、上数第二行的像素，如下面的 ascii 图表所示。\n\n从视觉上看，如果我们省略“像素”前缀，像素组成图像如下：","metadata":{}},{"cell_type":"markdown","source":"![%E5%9B%BE%E7%89%87.png](attachment:%E5%9B%BE%E7%89%87.png)","metadata":{},"attachments":{"%E5%9B%BE%E7%89%87.png":{"image/png":"iVBORw0KGgoAAAANSUhEUgAAAWIAAAC7CAYAAABfGpQpAAAgAElEQVR4Xu2de/RXRdX/x4yIzBQ0NIsywFuI99TUB9AuholmamGmgRdS7KLkavkHuJbSHy0kUXOJKAh4AZTKSyqaoNbjPcULWWReCPMRDaH0KTJLn99rnt/+PPOd75wzM+ecz/dCe9ZiWd/POXPZl/fs2Xuf2Zv893//9ztGm1JAKaAUUAp0GwU2USDuNtrrwEoBpYBSwFJAgVgFQSmgFFAKdDMFFIi7mQE6vFJAKaAUUCBWGVAKKAWUAt1MAQXibmaADq8UUAooBRSIVQaUAkoBpUA3U0CBuJsZoMMrBZQCSoEgEL/zzjvmb3/7m+nTp495z3vek0Slf/7zn+bNN98073vf+8wmm2yS9M4//vEP89Zbb2W9k9Sx81DuvKqsPXdOVZ6XefXt29e8+93vTuoid+1dwQ8mnjtO7tp7Kg+TmNYND1Wh19///nfzr3/9q626W4UUPVXmY2vpAMQoyF133WVuu+0286c//cm+u8suu5gvf/nLZtiwYUGAfeGFF8yPf/xj88gjj9jn3//+95vPfe5zZsyYMfZ/+w2mP/300+aGG24wv/3tb+3PH/zgB80XvvAF89nPfjYZ+GMLy51XlbXLHHiXNS1fvtx85StfCa47Nt+i3/9fnrf52c9+Zn7+858b/jdt3333Ncccc4z5+Mc/HnwtZ+3wY8WKFZaHLj/+4z/+o5CHVdZShe+5a3/99det7Lq0islvlbVsLO/kyjxGE3r+05/+1KxevdqSYbvttjOHHnqo+cxnPlOqu4yFfN13331m1apVZr/99rMy3FRrp8z/53/+p7nkkkuiU/32t79t0JsqrQXE7HDXXnut+cUvfmFGjRplPvnJT1qreNmyZWblypXmtNNOMwceeGCHMX7zm9+YSy+91HzgAx8wn//8581WW21lfve731ll+MQnPmG+8Y1v2N+koYz333+/mTVrltl5553Npz/9abuj/upXvzL33nuvHfeEE06oDca586qydtby4osv2vXAKDauPfbYw3znO99pDIj/8pe/mMsvv9zSn41qp512Mq+99pq54447DKDDWPzNbTlrZw333HOPmTt3ruXXwQcfbE9BbCi//OUvzW677daJh1WErArfc9fuPo8hgOHw5z//2fKmSH6rrGVjeSdX5gHhm2++2f4DRD/1qU8ZrE/k/8EHH7T6X6S7gOScOXMsNmCcbb/99hZfDjvssEbI2W6ZB5/uvPPOwrkie2vWrDHf+973zPDhwyutqQXEWEXTpk0zX//61y1AinsBML7qqqvM+vXrzbe+9S2z5ZZb2oFgJMRdu3at/fuAAQNaE3jyySfN9OnTzfjx480hhxzS+juK8aMf/cj079/fnHTSSRaEaSgqgD9//vxai6k6r9y1s7tfd9115vbbb7eCtddee5nnnnvOWvZNAvHdd99tQfLss882u+++e4uO69ats3Tceuutzcknn2ze+973VuIJG8kPf/hDs+uuu5qvfe1rrX44ct566612Y2ZsFK9Oq8L3nLUjP8yXU9Y3v/lNe2IQ+RVawSeMic0226zOUjaad3NlXp7Hij388MPNpptu2pI55ARLGSAaOnRoBxr98Y9/NJdddpn561//ao4++miz//771za03AFycahpmWeDuuaaa6yBNHHixMryZYGYnQ1iPvvssxZIABS3iWk+ZcoUayXRnn/+efODH/zAHHHEEZYxbnvjjTcsUGy++ebmlFNOMf369bM/s7MA9jCMHdFt//Vf/2UuvPBCC2pjx44173rXuyoJfe68qqwdIMbq/8hHPmItr7fffttcfPHFdr5NATGCizVM8wEE4OF4yOnlu9/9rvnYxz5WiSe8z4nG5asQ/Q9/+IMF6REjRtQ+QubyPXft8GPevHnmlVdesfR3T2HwZtGiRdbKnzRpkj1K/7u3XJlH3hYvXmzdCq68CR2feuopM3XqVOMfzQGphQsXmoceeshukJy6mm65+t60zDM+RicblGt05q7TAnFM8NntGGzChAnWjxsDVY7Ns2fPbh2fsYBpWC233HKLOeecc8zgwYM7zBXTHj/Mhz70oQ7gnbugMqUPzavK2v054ctsGohxddAnFgbWqhugw2JdsmSJPUG4IJq7dqwVjlUf/ehH7aYZ2hixLo899tjkAGyIX7l8r7L2IjlRIO5MmVyZh4ZszATj2fTFsJKecTlMnjzZgu3IkSNbA4pxtffee9s4k1jRuTpd9nx3yjx0YYN65plnOngLqqzPArEACZbwuHHjWkcHLA38kQzGEYBAlDjYxUr+/ve/38FPiT+IYzvuCZjmWiEEhNgd3b+x2/7617+2oAKz6/pZc+dVZe1dAcQixBzl3KAG88Ua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"}}},{"cell_type":"markdown","source":"测试数据集 (test.csv) 与训练集相同，只是它不包含“标签”列。\n\n您的提交文件应采用以下格式：对于测试集中的 28000 张图像中的每一张，输出一行包含 ImageId 和您预测的数字。例如，如果您预测第一张图像是 3，第二张图像是 7，第三张图像是 8，那么您的提交文件将如下所示：","metadata":{}},{"cell_type":"markdown","source":"![image.png](attachment:542f98a5-5fe1-424b-8918-bfd64a2d1cfc.png)","metadata":{},"attachments":{"542f98a5-5fe1-424b-8918-bfd64a2d1cfc.png":{"image/png":"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"}}},{"cell_type":"markdown","source":"本次比赛的评价指标是分类准确率，或者说测试图像被正确分类的比例。例如，0.97 的分类准确度表示您已正确分类除 3% 的图像之外的所有图像。","metadata":{}},{"cell_type":"markdown","source":"## 导入包","metadata":{"_cell_guid":"db363533-0f95-48b9-9545-849b694d364b","_uuid":"39a160ad-24fa-495a-9fc8-c5b5de34417b"}},{"cell_type":"code","source":"import numpy as np\nimport pandas as pd\nimport seaborn as sns\nimport matplotlib.pyplot as plt\n%matplotlib inline","metadata":{"_cell_guid":"607187be-df2f-468c-918a-658b8496c0bb","_uuid":"49b99a95-9088-48e1-9896-fcfbfe5708c1","jupyter":{"outputs_hidden":false},"collapsed":false,"execution":{"iopub.status.busy":"2022-08-01T05:30:46.731170Z","iopub.execute_input":"2022-08-01T05:30:46.731687Z","iopub.status.idle":"2022-08-01T05:30:47.376811Z","shell.execute_reply.started":"2022-08-01T05:30:46.731575Z","shell.execute_reply":"2022-08-01T05:30:47.375647Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## 读取数据集","metadata":{}},{"cell_type":"code","source":"train = pd.read_csv('../input/digit-recognizer/train.csv')","metadata":{"_cell_guid":"16d88abf-a6bd-43bd-af8c-6be22f67fdd6","_uuid":"f7a1a6cf-bad3-4577-a99d-f53bb3025258","jupyter":{"outputs_hidden":false},"collapsed":false,"execution":{"iopub.status.busy":"2022-08-01T05:30:47.380150Z","iopub.execute_input":"2022-08-01T05:30:47.381194Z","iopub.status.idle":"2022-08-01T05:30:51.559826Z","shell.execute_reply.started":"2022-08-01T05:30:47.381151Z","shell.execute_reply":"2022-08-01T05:30:51.558413Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"test = pd.read_csv('../input/digit-recognizer/test.csv')","metadata":{"_cell_guid":"9e9d0b66-4064-484e-b702-131f55191075","_uuid":"855dc04b-6e85-4e5a-ad3b-efa55cafcc2b","jupyter":{"outputs_hidden":false},"collapsed":false,"execution":{"iopub.status.busy":"2022-08-01T05:30:51.561753Z","iopub.execute_input":"2022-08-01T05:30:51.562177Z","iopub.status.idle":"2022-08-01T05:30:53.974911Z","shell.execute_reply.started":"2022-08-01T05:30:51.562135Z","shell.execute_reply":"2022-08-01T05:30:53.973497Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## 查看数据特征","metadata":{}},{"cell_type":"code","source":"train.head()","metadata":{"_cell_guid":"3f9fd73c-d27e-4894-9415-8e25ca4b5c4f","_uuid":"c380efe0-8dea-4b64-ae28-9ccc0975d062","jupyter":{"outputs_hidden":false},"collapsed":false,"execution":{"iopub.status.busy":"2022-08-01T05:30:53.980149Z","iopub.execute_input":"2022-08-01T05:30:53.980484Z","iopub.status.idle":"2022-08-01T05:30:54.014556Z","shell.execute_reply.started":"2022-08-01T05:30:53.980453Z","shell.execute_reply":"2022-08-01T05:30:54.013172Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train.info()","metadata":{"_cell_guid":"89058174-dbba-4453-a3f8-035d866abe15","_uuid":"89618ecd-5f42-4bef-90fa-020fcc9c2638","jupyter":{"outputs_hidden":false},"collapsed":false,"execution":{"iopub.status.busy":"2022-08-01T05:30:54.016815Z","iopub.execute_input":"2022-08-01T05:30:54.017652Z","iopub.status.idle":"2022-08-01T05:30:54.096499Z","shell.execute_reply.started":"2022-08-01T05:30:54.017608Z","shell.execute_reply":"2022-08-01T05:30:54.095268Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train.isnull().sum()","metadata":{"_cell_guid":"ad70cc93-b2c3-4e8c-8d4f-aa65f0c4b3e0","_uuid":"f1e264e6-7bbf-41c9-95fb-73ae83833ccd","jupyter":{"outputs_hidden":false},"collapsed":false,"execution":{"iopub.status.busy":"2022-08-01T05:30:54.098462Z","iopub.execute_input":"2022-08-01T05:30:54.099475Z","iopub.status.idle":"2022-08-01T05:30:54.158914Z","shell.execute_reply.started":"2022-08-01T05:30:54.099432Z","shell.execute_reply":"2022-08-01T05:30:54.157268Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sum(train.isnull().sum())","metadata":{"_cell_guid":"092ad2c3-a4bc-4f17-904f-0e5e17878a15","_uuid":"9dcc3140-afbb-4628-9924-16e4a73ecf98","jupyter":{"outputs_hidden":false},"collapsed":false,"execution":{"iopub.status.busy":"2022-08-01T05:30:54.161362Z","iopub.execute_input":"2022-08-01T05:30:54.161839Z","iopub.status.idle":"2022-08-01T05:30:54.214644Z","shell.execute_reply.started":"2022-08-01T05:30:54.161792Z","shell.execute_reply":"2022-08-01T05:30:54.213116Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# 预处理训练集|测试集","metadata":{}},{"cell_type":"code","source":"#y_train 是数字标签\ny_train = train['label'].copy()","metadata":{"_cell_guid":"0537764b-34c1-42c6-a095-049a30c165c3","_uuid":"5661fffc-1852-4842-b3f5-fca173c9ce87","jupyter":{"outputs_hidden":false},"collapsed":false,"execution":{"iopub.status.busy":"2022-08-01T05:30:54.216932Z","iopub.execute_input":"2022-08-01T05:30:54.217386Z","iopub.status.idle":"2022-08-01T05:30:54.223574Z","shell.execute_reply.started":"2022-08-01T05:30:54.217343Z","shell.execute_reply":"2022-08-01T05:30:54.222263Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#X_train 是各像素亮度值\nX_train = train.drop('label',axis=1)","metadata":{"_cell_guid":"4fb6593e-6a63-4d47-a4a1-a4ec190c32ff","_uuid":"c4fb3bfb-db47-463a-853b-983eb72a6e58","jupyter":{"outputs_hidden":false},"collapsed":false,"execution":{"iopub.status.busy":"2022-08-01T05:30:54.225522Z","iopub.execute_input":"2022-08-01T05:30:54.226439Z","iopub.status.idle":"2022-08-01T05:30:54.341128Z","shell.execute_reply.started":"2022-08-01T05:30:54.226385Z","shell.execute_reply":"2022-08-01T05:30:54.339732Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"y_train.value_counts()","metadata":{"_cell_guid":"5ffb65bb-cdc7-478f-a2a2-dba2dfefc015","_uuid":"c24ae581-89b2-4992-a184-c1a1f3b2f48e","jupyter":{"outputs_hidden":false},"collapsed":false,"execution":{"iopub.status.busy":"2022-08-01T05:30:54.349157Z","iopub.execute_input":"2022-08-01T05:30:54.349949Z","iopub.status.idle":"2022-08-01T05:30:54.362504Z","shell.execute_reply.started":"2022-08-01T05:30:54.349914Z","shell.execute_reply":"2022-08-01T05:30:54.361152Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"y_train = pd.get_dummies(y_train,prefix='Num')","metadata":{"_cell_guid":"f4cf714c-28ec-44a2-b97c-ab25e637203a","_uuid":"19009635-66c5-470a-ba56-93403ada4a03","jupyter":{"outputs_hidden":false},"collapsed":false,"execution":{"iopub.status.busy":"2022-08-01T05:30:54.365239Z","iopub.execute_input":"2022-08-01T05:30:54.365871Z","iopub.status.idle":"2022-08-01T05:30:54.378515Z","shell.execute_reply.started":"2022-08-01T05:30:54.365762Z","shell.execute_reply":"2022-08-01T05:30:54.376876Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"y_train.head()","metadata":{"_cell_guid":"db1cfaa0-c84a-41d3-8fcd-f6f7a1f03580","_uuid":"19821f28-4706-4f16-8d62-54809dc4ee09","jupyter":{"outputs_hidden":false},"collapsed":false,"execution":{"iopub.status.busy":"2022-08-01T05:30:54.380739Z","iopub.execute_input":"2022-08-01T05:30:54.381295Z","iopub.status.idle":"2022-08-01T05:30:54.398727Z","shell.execute_reply.started":"2022-08-01T05:30:54.381252Z","shell.execute_reply":"2022-08-01T05:30:54.397296Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#28×28一共784个像素，其中的数值表示亮度[0,255]\nX_train.describe()","metadata":{"_cell_guid":"ff399335-f35f-4add-be4a-9baacb9009af","_uuid":"faba2524-b013-4577-995b-6939fdfa6b66","jupyter":{"outputs_hidden":false},"collapsed":false,"execution":{"iopub.status.busy":"2022-08-01T05:30:54.400517Z","iopub.execute_input":"2022-08-01T05:30:54.401289Z","iopub.status.idle":"2022-08-01T05:30:57.786522Z","shell.execute_reply.started":"2022-08-01T05:30:54.401245Z","shell.execute_reply":"2022-08-01T05:30:57.785049Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#from sklearn.preprocessing import Normalizer","metadata":{"_cell_guid":"b5100e89-d0c0-474e-ba58-786cb0139ac7","_uuid":"3352ab2a-55dc-425b-a9f5-8f6474e4b209","jupyter":{"outputs_hidden":false},"collapsed":false,"execution":{"iopub.status.busy":"2022-08-01T05:30:57.792211Z","iopub.execute_input":"2022-08-01T05:30:57.795467Z","iopub.status.idle":"2022-08-01T05:30:57.803596Z","shell.execute_reply.started":"2022-08-01T05:30:57.795421Z","shell.execute_reply":"2022-08-01T05:30:57.802301Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"X_train = X_train/255","metadata":{"_cell_guid":"aa9190d0-7ce1-4d3e-9ba6-05f5a25d7780","_uuid":"46465602-7741-4ed7-b393-54fb0c8bad14","jupyter":{"outputs_hidden":false},"collapsed":false,"execution":{"iopub.status.busy":"2022-08-01T05:30:57.805960Z","iopub.execute_input":"2022-08-01T05:30:57.807055Z","iopub.status.idle":"2022-08-01T05:30:57.974217Z","shell.execute_reply.started":"2022-08-01T05:30:57.807010Z","shell.execute_reply":"2022-08-01T05:30:57.972578Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"X_train.head()","metadata":{"_cell_guid":"d4db89dc-9ee2-4c72-9437-95de968c587f","_uuid":"7974cc06-e828-4297-8c32-2a9fc6d5a781","jupyter":{"outputs_hidden":false},"collapsed":false,"execution":{"iopub.status.busy":"2022-08-01T05:30:57.977281Z","iopub.execute_input":"2022-08-01T05:30:57.983500Z","iopub.status.idle":"2022-08-01T05:30:58.072824Z","shell.execute_reply.started":"2022-08-01T05:30:57.983450Z","shell.execute_reply":"2022-08-01T05:30:58.071091Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"X_train.describe()","metadata":{"_cell_guid":"43091772-ca04-4964-8a8f-d5db36c7e793","_uuid":"19608c23-c7c8-4585-b0db-e7675c823c25","jupyter":{"outputs_hidden":false},"collapsed":false,"execution":{"iopub.status.busy":"2022-08-01T05:30:58.075045Z","iopub.execute_input":"2022-08-01T05:30:58.076020Z","iopub.status.idle":"2022-08-01T05:31:03.181333Z","shell.execute_reply.started":"2022-08-01T05:30:58.075910Z","shell.execute_reply":"2022-08-01T05:31:03.179951Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"X_train = X_train.values.reshape(-1,28,28,1)","metadata":{"_cell_guid":"a1bfc58a-ef1e-414f-b62b-102048cc6a94","_uuid":"2d56125c-6f26-4438-9cae-495cd1bf7294","jupyter":{"outputs_hidden":false},"collapsed":false,"execution":{"iopub.status.busy":"2022-08-01T05:31:03.189458Z","iopub.execute_input":"2022-08-01T05:31:03.190662Z","iopub.status.idle":"2022-08-01T05:31:03.200545Z","shell.execute_reply.started":"2022-08-01T05:31:03.190615Z","shell.execute_reply":"2022-08-01T05:31:03.199295Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"X_train","metadata":{"_cell_guid":"766cfee7-acc0-4582-9e1e-0cb76b4c739c","_uuid":"7f680671-f722-422f-aec5-8c68ba32d7ac","jupyter":{"outputs_hidden":false},"collapsed":false,"execution":{"iopub.status.busy":"2022-08-01T05:31:03.202177Z","iopub.execute_input":"2022-08-01T05:31:03.203528Z","iopub.status.idle":"2022-08-01T05:31:03.239734Z","shell.execute_reply.started":"2022-08-01T05:31:03.203483Z","shell.execute_reply":"2022-08-01T05:31:03.237722Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"test.info()","metadata":{"_cell_guid":"0c4a2c1c-8c73-45dd-bb01-3b90e7bc4318","_uuid":"2f11c159-3d23-4aad-96fe-8dcb8994203d","jupyter":{"outputs_hidden":false},"collapsed":false,"execution":{"iopub.status.busy":"2022-08-01T05:31:03.245626Z","iopub.execute_input":"2022-08-01T05:31:03.248200Z","iopub.status.idle":"2022-08-01T05:31:03.349435Z","shell.execute_reply.started":"2022-08-01T05:31:03.248141Z","shell.execute_reply":"2022-08-01T05:31:03.347305Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"test.isnull().sum()","metadata":{"_cell_guid":"06e76ad0-4fc1-4e03-bbf9-a73b819d475b","_uuid":"8b96b86b-85a1-4539-9e6b-b5313916145c","jupyter":{"outputs_hidden":false},"collapsed":false,"execution":{"iopub.status.busy":"2022-08-01T05:31:03.351532Z","iopub.execute_input":"2022-08-01T05:31:03.351959Z","iopub.status.idle":"2022-08-01T05:31:03.406616Z","shell.execute_reply.started":"2022-08-01T05:31:03.351905Z","shell.execute_reply":"2022-08-01T05:31:03.405334Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sum(test.isnull().sum())","metadata":{"_cell_guid":"69dca6b4-52dd-4bb0-810c-7248300f7cb0","_uuid":"d9ae8e50-8160-4274-b31c-30e4a3fae85f","jupyter":{"outputs_hidden":false},"collapsed":false,"execution":{"iopub.status.busy":"2022-08-01T05:31:03.411625Z","iopub.execute_input":"2022-08-01T05:31:03.412815Z","iopub.status.idle":"2022-08-01T05:31:03.462836Z","shell.execute_reply.started":"2022-08-01T05:31:03.412770Z","shell.execute_reply":"2022-08-01T05:31:03.461536Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"test = test/255","metadata":{"_cell_guid":"940e8e15-22dc-4c98-add0-7e8ef842abc6","_uuid":"a9fa984c-a034-4770-afb9-cb5119ca226a","jupyter":{"outputs_hidden":false},"collapsed":false,"execution":{"iopub.status.busy":"2022-08-01T05:31:03.467992Z","iopub.execute_input":"2022-08-01T05:31:03.469263Z","iopub.status.idle":"2022-08-01T05:31:03.624614Z","shell.execute_reply.started":"2022-08-01T05:31:03.469206Z","shell.execute_reply":"2022-08-01T05:31:03.623188Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"test.head()","metadata":{"_cell_guid":"c9bcc4bd-199a-4d1c-b06c-c1ebd8222f76","_uuid":"3b6112eb-db1b-4dfd-8861-057b34b89ca8","jupyter":{"outputs_hidden":false},"collapsed":false,"execution":{"iopub.status.busy":"2022-08-01T05:31:03.626376Z","iopub.execute_input":"2022-08-01T05:31:03.627169Z","iopub.status.idle":"2022-08-01T05:31:03.680714Z","shell.execute_reply.started":"2022-08-01T05:31:03.627077Z","shell.execute_reply":"2022-08-01T05:31:03.679396Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"test.describe()","metadata":{"_cell_guid":"5f536453-2386-4428-8541-8ae7fd1ad7e8","_uuid":"6127134c-fd23-42ff-9bc6-2650ed127641","jupyter":{"outputs_hidden":false},"collapsed":false,"execution":{"iopub.status.busy":"2022-08-01T05:31:03.682651Z","iopub.execute_input":"2022-08-01T05:31:03.683602Z","iopub.status.idle":"2022-08-01T05:31:07.941990Z","shell.execute_reply.started":"2022-08-01T05:31:03.683560Z","shell.execute_reply":"2022-08-01T05:31:07.940666Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"test = test.values.reshape(-1,28,28,1)","metadata":{"_cell_guid":"e201a24d-4f58-49ed-93ce-f17d585fe4d2","_uuid":"5078e875-6f55-473e-95a4-b113d5512a6f","jupyter":{"outputs_hidden":false},"collapsed":false,"execution":{"iopub.status.busy":"2022-08-01T05:31:07.947147Z","iopub.execute_input":"2022-08-01T05:31:07.950590Z","iopub.status.idle":"2022-08-01T05:31:07.959439Z","shell.execute_reply.started":"2022-08-01T05:31:07.950545Z","shell.execute_reply":"2022-08-01T05:31:07.958034Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"test","metadata":{"_cell_guid":"21f85b87-e519-422d-b9ed-e7317dc42430","_uuid":"caefcdd7-1133-4979-84b2-0a71cecb3914","jupyter":{"outputs_hidden":false},"collapsed":false,"execution":{"iopub.status.busy":"2022-08-01T05:31:07.961360Z","iopub.execute_input":"2022-08-01T05:31:07.962364Z","iopub.status.idle":"2022-08-01T05:31:07.988357Z","shell.execute_reply.started":"2022-08-01T05:31:07.962241Z","shell.execute_reply":"2022-08-01T05:31:07.986997Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{"_cell_guid":"a7c031f6-55cc-487b-8047-0075c450c0b4","_uuid":"1433fe41-98a1-4a5d-96f9-c9f969144e61","jupyter":{"outputs_hidden":false},"collapsed":false},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# CNN Model","metadata":{"_cell_guid":"3b4822aa-c365-4457-b8a1-6767d5628548","_uuid":"b97d3195-ac8c-428f-9a94-9123e7ac77ba"}},{"cell_type":"code","source":"import tensorflow as tf","metadata":{"_cell_guid":"493221c5-df92-4f02-bf05-1961d4858fc1","_uuid":"ae5687e1-9f6f-477a-bd9c-727a7af55ab3","jupyter":{"outputs_hidden":false},"collapsed":false,"execution":{"iopub.status.busy":"2022-08-01T05:31:08.004188Z","iopub.execute_input":"2022-08-01T05:31:08.007357Z","iopub.status.idle":"2022-08-01T05:31:14.090124Z","shell.execute_reply.started":"2022-08-01T05:31:08.007310Z","shell.execute_reply":"2022-08-01T05:31:14.088806Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"tf.__version__","metadata":{"_cell_guid":"1ad07bd5-ec8a-4ed9-a82b-1f61450fa4c4","_uuid":"f97ce0cc-eaee-4ca8-a671-9fc09d7402ee","jupyter":{"outputs_hidden":false},"collapsed":false,"execution":{"iopub.status.busy":"2022-08-01T05:31:14.091975Z","iopub.execute_input":"2022-08-01T05:31:14.093766Z","iopub.status.idle":"2022-08-01T05:31:14.101747Z","shell.execute_reply.started":"2022-08-01T05:31:14.093706Z","shell.execute_reply":"2022-08-01T05:31:14.100330Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"cnn = tf.keras.models.Sequential()","metadata":{"_cell_guid":"14e4f66c-8d76-45c6-a986-9329d7b8fe62","_uuid":"e02b8c5c-d6b1-42b3-98b8-337bf6219f81","jupyter":{"outputs_hidden":false},"collapsed":false,"execution":{"iopub.status.busy":"2022-08-01T05:31:14.103398Z","iopub.execute_input":"2022-08-01T05:31:14.104424Z","iopub.status.idle":"2022-08-01T05:31:18.489644Z","shell.execute_reply.started":"2022-08-01T05:31:14.104382Z","shell.execute_reply":"2022-08-01T05:31:18.488212Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#Convolution\ncnn.add(tf.keras.layers.Conv2D(filters=256,kernel_size=(5,5),activation='relu',input_shape=(28,28,1)))","metadata":{"_cell_guid":"4546cdc8-a279-4b72-ab50-018a08847f79","_uuid":"cae36822-cd78-4502-8a1a-dddd962ca9d2","jupyter":{"outputs_hidden":false},"collapsed":false,"execution":{"iopub.status.busy":"2022-08-01T05:31:18.491628Z","iopub.execute_input":"2022-08-01T05:31:18.492282Z","iopub.status.idle":"2022-08-01T05:31:18.550028Z","shell.execute_reply.started":"2022-08-01T05:31:18.492220Z","shell.execute_reply":"2022-08-01T05:31:18.548880Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#Max Pooling\ncnn.add(tf.keras.layers.MaxPool2D(pool_size=(3,3),strides=3))","metadata":{"_cell_guid":"68807bb3-60b1-4604-9937-92b6f51a60b9","_uuid":"1684b552-32f2-4756-8223-cb2ac939837b","jupyter":{"outputs_hidden":false},"collapsed":false,"execution":{"iopub.status.busy":"2022-08-01T05:31:18.553527Z","iopub.execute_input":"2022-08-01T05:31:18.554666Z","iopub.status.idle":"2022-08-01T05:31:18.567048Z","shell.execute_reply.started":"2022-08-01T05:31:18.554605Z","shell.execute_reply":"2022-08-01T05:31:18.565639Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"cnn.add(tf.keras.layers.BatchNormalization())","metadata":{"_cell_guid":"858ca26c-8d58-4190-8b9d-847c0e7fc839","_uuid":"8789e96f-4521-464b-abda-aa45cee8799c","jupyter":{"outputs_hidden":false},"collapsed":false,"execution":{"iopub.status.busy":"2022-08-01T05:31:18.568619Z","iopub.execute_input":"2022-08-01T05:31:18.569145Z","iopub.status.idle":"2022-08-01T05:31:18.593343Z","shell.execute_reply.started":"2022-08-01T05:31:18.569102Z","shell.execute_reply":"2022-08-01T05:31:18.592222Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"cnn.add(tf.keras.layers.Conv2D(filters=128,kernel_size=(4,4),activation='relu'))","metadata":{"_cell_guid":"a8659382-d88e-4531-9caf-a28ee50a7270","_uuid":"a4bf42ca-7b66-47a1-8724-0b643f5fa973","jupyter":{"outputs_hidden":false},"collapsed":false,"execution":{"iopub.status.busy":"2022-08-01T05:31:18.597054Z","iopub.execute_input":"2022-08-01T05:31:18.598881Z","iopub.status.idle":"2022-08-01T05:31:18.616769Z","shell.execute_reply.started":"2022-08-01T05:31:18.598838Z","shell.execute_reply":"2022-08-01T05:31:18.615433Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"cnn.add(tf.keras.layers.MaxPool2D(pool_size=(2,2),strides=2))","metadata":{"_cell_guid":"68368585-46d0-41c3-af05-96bdbb5456f9","_uuid":"3f989a87-c33a-4732-bf3a-10e2484c97c4","jupyter":{"outputs_hidden":false},"collapsed":false,"execution":{"iopub.status.busy":"2022-08-01T05:31:18.619465Z","iopub.execute_input":"2022-08-01T05:31:18.620674Z","iopub.status.idle":"2022-08-01T05:31:18.630823Z","shell.execute_reply.started":"2022-08-01T05:31:18.620630Z","shell.execute_reply":"2022-08-01T05:31:18.629651Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#Flattening\ncnn.add(tf.keras.layers.Flatten())","metadata":{"_cell_guid":"d7643eae-9476-4165-bbd5-05594b122564","_uuid":"a3b4964b-9b24-4725-a013-9bbc7b05b1df","jupyter":{"outputs_hidden":false},"collapsed":false,"execution":{"iopub.status.busy":"2022-08-01T05:31:18.632491Z","iopub.execute_input":"2022-08-01T05:31:18.633227Z","iopub.status.idle":"2022-08-01T05:31:18.647236Z","shell.execute_reply.started":"2022-08-01T05:31:18.633180Z","shell.execute_reply":"2022-08-01T05:31:18.645918Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#Full connection \ncnn.add(tf.keras.layers.Dense(units=256,activation='relu'))","metadata":{"_cell_guid":"543375f1-397e-4362-ab6d-71a516c25839","_uuid":"8d6fa77c-eda8-4286-a9d3-a4c984ca6d28","jupyter":{"outputs_hidden":false},"collapsed":false,"execution":{"iopub.status.busy":"2022-08-01T05:31:18.648838Z","iopub.execute_input":"2022-08-01T05:31:18.649401Z","iopub.status.idle":"2022-08-01T05:31:18.668875Z","shell.execute_reply.started":"2022-08-01T05:31:18.649358Z","shell.execute_reply":"2022-08-01T05:31:18.667426Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#Output Layer\ncnn.add(tf.keras.layers.Dense(units=10,activation='softmax'))","metadata":{"_cell_guid":"5283b762-5e36-4e05-88df-ed11b956613b","_uuid":"df3c5956-fdd2-4f2b-bcaf-0f127a9e8e0d","jupyter":{"outputs_hidden":false},"collapsed":false,"execution":{"iopub.status.busy":"2022-08-01T05:31:18.670444Z","iopub.execute_input":"2022-08-01T05:31:18.671866Z","iopub.status.idle":"2022-08-01T05:31:18.690228Z","shell.execute_reply.started":"2022-08-01T05:31:18.671825Z","shell.execute_reply":"2022-08-01T05:31:18.689060Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#Compile cnn\ncnn.compile(optimizer='adam',loss='categorical_crossentropy')","metadata":{"_cell_guid":"19565f51-22a8-4d12-b1ed-68c874907dbe","_uuid":"2d3ba214-7345-4f34-b3a1-f6083e0e2e3e","jupyter":{"outputs_hidden":false},"collapsed":false,"execution":{"iopub.status.busy":"2022-08-01T05:31:18.692152Z","iopub.execute_input":"2022-08-01T05:31:18.692587Z","iopub.status.idle":"2022-08-01T05:31:18.710041Z","shell.execute_reply.started":"2022-08-01T05:31:18.692546Z","shell.execute_reply":"2022-08-01T05:31:18.708639Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Epoch（时期）：\n# 当一个完整的数据集通过了神经网络一次并且返回了一次，这个过程称为一次>epoch。（也就是说，所有训练样本在神经网络中都 进行了一次正向传播 和一次反向传播 ）\n# 再通俗一点，一个Epoch就是将所有训练样本训练一次的过程。\n# 然而，当一个Epoch的样本（也就是所有的训练样本）数量可能太过庞大（对于计算机而言），就需要把它分成多个小块，也就是就是分成多个Batch 来进行训练。**\n\n# Batch（批 / 一批样本）：\n# 将整个训练样本分成若干个Batch。\n\n# Batch_Size（批大小）：\n# 每批样本的大小。\n\n# Iteration（一次迭代）：\n# 训练一个Batch就是一次Iteration（这个概念跟程序语言中的迭代器相似）。\n\ncnn.fit(X_train,y_train,batch_size=32,epochs=50)","metadata":{"_cell_guid":"f9a0a40c-e6f4-47f1-ae58-b8d3ad4cf07c","_uuid":"c64a9af0-1210-4a2f-ba03-c40ac350812d","jupyter":{"outputs_hidden":false},"collapsed":false,"execution":{"iopub.status.busy":"2022-08-01T05:31:18.711833Z","iopub.execute_input":"2022-08-01T05:31:18.712337Z","iopub.status.idle":"2022-08-01T05:36:57.735881Z","shell.execute_reply.started":"2022-08-01T05:31:18.712297Z","shell.execute_reply":"2022-08-01T05:36:57.732353Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"pred = cnn.predict(test)","metadata":{"_cell_guid":"e336688a-8474-4d27-9834-c4f6709dcd60","_uuid":"f129f2f4-ac56-4102-b441-4d8e7c2aa525","jupyter":{"outputs_hidden":false},"collapsed":false,"execution":{"iopub.status.busy":"2022-08-01T05:36:57.738124Z","iopub.execute_input":"2022-08-01T05:36:57.739735Z","iopub.status.idle":"2022-08-01T05:36:59.678223Z","shell.execute_reply.started":"2022-08-01T05:36:57.739685Z","shell.execute_reply":"2022-08-01T05:36:59.676945Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"pred = np.argmax(pred,axis=1)","metadata":{"_cell_guid":"1b831e7a-3f2c-4303-bf9b-f65e00729bd0","_uuid":"b5b7a74b-ff3d-447d-b6d5-10c5faa5a088","jupyter":{"outputs_hidden":false},"collapsed":false,"execution":{"iopub.status.busy":"2022-08-01T05:36:59.680007Z","iopub.execute_input":"2022-08-01T05:36:59.680476Z","iopub.status.idle":"2022-08-01T05:36:59.689348Z","shell.execute_reply.started":"2022-08-01T05:36:59.680430Z","shell.execute_reply":"2022-08-01T05:36:59.687763Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"pred","metadata":{"_cell_guid":"7a83e5d5-d6a1-428b-8a38-90fbc1c62998","_uuid":"607dc177-52dd-4bf7-ae09-9d40aa41517b","jupyter":{"outputs_hidden":false},"collapsed":false,"execution":{"iopub.status.busy":"2022-08-01T05:36:59.691677Z","iopub.execute_input":"2022-08-01T05:36:59.692741Z","iopub.status.idle":"2022-08-01T05:36:59.703286Z","shell.execute_reply.started":"2022-08-01T05:36:59.692694Z","shell.execute_reply":"2022-08-01T05:36:59.701737Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"pred = pd.DataFrame(pred,columns=['Label'])","metadata":{"_cell_guid":"5cd4519e-9e63-4621-b1f9-bd1880e813b9","_uuid":"258b6d65-3899-41c8-8a11-6193af51d170","jupyter":{"outputs_hidden":false},"collapsed":false,"execution":{"iopub.status.busy":"2022-08-01T05:36:59.705183Z","iopub.execute_input":"2022-08-01T05:36:59.705922Z","iopub.status.idle":"2022-08-01T05:36:59.714254Z","shell.execute_reply.started":"2022-08-01T05:36:59.705876Z","shell.execute_reply":"2022-08-01T05:36:59.712853Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"test_id = list(range(1,len(test)+1,1))","metadata":{"_cell_guid":"eb0f1429-7381-4c2e-9057-042b7f571b82","_uuid":"92518897-0063-4b43-a98f-c39bdf19390e","jupyter":{"outputs_hidden":false},"collapsed":false,"execution":{"iopub.status.busy":"2022-08-01T05:36:59.716090Z","iopub.execute_input":"2022-08-01T05:36:59.716799Z","iopub.status.idle":"2022-08-01T05:36:59.728213Z","shell.execute_reply.started":"2022-08-01T05:36:59.716751Z","shell.execute_reply":"2022-08-01T05:36:59.726872Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"test_id = pd.DataFrame(test_id,columns=['ImageId'])","metadata":{"_cell_guid":"7ea1c737-c987-476f-9d0a-01fd05fe7719","_uuid":"5b6af245-ef9f-4402-a7fe-d71e8a01d6a5","jupyter":{"outputs_hidden":false},"collapsed":false,"execution":{"iopub.status.busy":"2022-08-01T05:36:59.730094Z","iopub.execute_input":"2022-08-01T05:36:59.730712Z","iopub.status.idle":"2022-08-01T05:36:59.753482Z","shell.execute_reply.started":"2022-08-01T05:36:59.730598Z","shell.execute_reply":"2022-08-01T05:36:59.752217Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"submission = pd.concat([test_id,pred],axis=1)","metadata":{"_cell_guid":"95766bfd-d012-4c34-b84b-cac4487aca61","_uuid":"d726fb5d-6c9c-498e-b4d0-fc30dd8705e5","jupyter":{"outputs_hidden":false},"collapsed":false,"execution":{"iopub.status.busy":"2022-08-01T05:36:59.755423Z","iopub.execute_input":"2022-08-01T05:36:59.756000Z","iopub.status.idle":"2022-08-01T05:36:59.767366Z","shell.execute_reply.started":"2022-08-01T05:36:59.755910Z","shell.execute_reply":"2022-08-01T05:36:59.765998Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"submission.describe()","metadata":{"_cell_guid":"1db5ee05-f688-4a15-a464-36686d8c39d7","_uuid":"c347cc4f-1a33-48fa-bc4b-225c39dac219","jupyter":{"outputs_hidden":false},"collapsed":false,"execution":{"iopub.status.busy":"2022-08-01T05:36:59.769572Z","iopub.execute_input":"2022-08-01T05:36:59.770293Z","iopub.status.idle":"2022-08-01T05:36:59.798053Z","shell.execute_reply.started":"2022-08-01T05:36:59.770218Z","shell.execute_reply":"2022-08-01T05:36:59.796735Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"submission.to_csv('./submission.csv',index=False)","metadata":{"_cell_guid":"05498243-5a1e-4cd9-a8ec-e62c2ee23c92","_uuid":"830b3756-dd2f-4cff-ba05-c256ce714298","jupyter":{"outputs_hidden":false},"collapsed":false,"execution":{"iopub.status.busy":"2022-08-01T05:36:59.800115Z","iopub.execute_input":"2022-08-01T05:36:59.800588Z","iopub.status.idle":"2022-08-01T05:36:59.855004Z","shell.execute_reply.started":"2022-08-01T05:36:59.800542Z","shell.execute_reply":"2022-08-01T05:36:59.853764Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{"_cell_guid":"49f509e5-bb53-4a55-a322-0a646439e286","_uuid":"857b5ce9-7608-4695-8a30-b8be6cbed23e","jupyter":{"outputs_hidden":false},"collapsed":false},"execution_count":null,"outputs":[]}]}