{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.6.6","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"import numpy as np # linear algebra\nimport pandas as pd \nimport matplotlib.pyplot as plt\nimport seaborn as sns\nimport os\nfor dirname, _, filenames in os.walk('/kaggle/input'):\n    for filename in filenames:\n        print(os.path.join(dirname, filename))\n","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","execution":{"iopub.status.busy":"2022-11-04T16:33:53.10882Z","iopub.execute_input":"2022-11-04T16:33:53.109298Z","iopub.status.idle":"2022-11-04T16:33:55.505512Z","shell.execute_reply.started":"2022-11-04T16:33:53.109228Z","shell.execute_reply":"2022-11-04T16:33:55.504617Z"},"trusted":true},"execution_count":1,"outputs":[{"name":"stdout","text":"/kaggle/input/digit-recognizer/sample_submission.csv\n/kaggle/input/digit-recognizer/train.csv\n/kaggle/input/digit-recognizer/test.csv\n","output_type":"stream"}]},{"cell_type":"code","source":"train_df = pd.read_csv(r\"../input/digit-recognizer/train.csv\")\ntest_df = pd.read_csv(r\"../input/digit-recognizer/test.csv\")\nprint(\"train_df shape:\", train_df.shape)\nprint(\"test_df shape:\", test_df.shape)","metadata":{"_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","execution":{"iopub.status.busy":"2022-11-04T16:33:55.507312Z","iopub.execute_input":"2022-11-04T16:33:55.507803Z","iopub.status.idle":"2022-11-04T16:34:00.427891Z","shell.execute_reply.started":"2022-11-04T16:33:55.507753Z","shell.execute_reply":"2022-11-04T16:34:00.427103Z"},"trusted":true},"execution_count":2,"outputs":[{"name":"stdout","text":"train_df shape: (42000, 785)\ntest_df shape: (28000, 784)\n","output_type":"stream"}]},{"cell_type":"code","source":"train_df.head()","metadata":{"execution":{"iopub.status.busy":"2022-11-04T16:34:00.429533Z","iopub.execute_input":"2022-11-04T16:34:00.429829Z","iopub.status.idle":"2022-11-04T16:34:00.463971Z","shell.execute_reply.started":"2022-11-04T16:34:00.429778Z","shell.execute_reply":"2022-11-04T16:34:00.463363Z"},"trusted":true},"execution_count":3,"outputs":[{"execution_count":3,"output_type":"execute_result","data":{"text/plain":"   label  pixel0  pixel1  pixel2  pixel3  pixel4  pixel5  pixel6  pixel7  \\\n0      1       0       0       0       0       0       0       0       0   \n1      0       0       0       0       0       0       0       0       0   \n2      1       0       0       0       0       0       0       0       0   \n3      4       0       0       0       0       0       0       0       0   \n4      0       0       0       0       0       0       0       0       0   \n\n   pixel8  ...  pixel774  pixel775  pixel776  pixel777  pixel778  pixel779  \\\n0       0  ...         0         0         0         0         0         0   \n1       0  ...         0         0         0         0         0         0   \n2       0  ...         0         0         0         0         0         0   \n3       0  ...         0         0         0         0         0         0   \n4       0  ...         0         0         0         0         0         0   \n\n   pixel780  pixel781  pixel782  pixel783  \n0         0         0         0         0  \n1         0         0         0         0  \n2         0         0         0         0  \n3         0         0         0         0  \n4         0         0         0         0  \n\n[5 rows x 785 columns]","text/html":"<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>label</th>\n      <th>pixel0</th>\n      <th>pixel1</th>\n      <th>pixel2</th>\n      <th>pixel3</th>\n      <th>pixel4</th>\n      <th>pixel5</th>\n      <th>pixel6</th>\n      <th>pixel7</th>\n      <th>pixel8</th>\n      <th>...</th>\n      <th>pixel774</th>\n      <th>pixel775</th>\n      <th>pixel776</th>\n      <th>pixel777</th>\n      <th>pixel778</th>\n      <th>pixel779</th>\n      <th>pixel780</th>\n      <th>pixel781</th>\n      <th>pixel782</th>\n      <th>pixel783</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>1</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>...</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>...</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>1</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>...</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>4</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>...</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>...</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n    </tr>\n  </tbody>\n</table>\n<p>5 rows × 785 columns</p>\n</div>"},"metadata":{}}]},{"cell_type":"code","source":"test_df.head()","metadata":{"execution":{"iopub.status.busy":"2022-11-04T16:34:00.466252Z","iopub.execute_input":"2022-11-04T16:34:00.46674Z","iopub.status.idle":"2022-11-04T16:34:00.486269Z","shell.execute_reply.started":"2022-11-04T16:34:00.46669Z","shell.execute_reply":"2022-11-04T16:34:00.485285Z"},"trusted":true},"execution_count":4,"outputs":[{"execution_count":4,"output_type":"execute_result","data":{"text/plain":"   pixel0  pixel1  pixel2  pixel3  pixel4  pixel5  pixel6  pixel7  pixel8  \\\n0       0       0       0       0       0       0       0       0       0   \n1       0       0       0       0       0       0       0       0       0   \n2       0       0       0       0       0       0       0       0       0   \n3       0       0       0       0       0       0       0       0       0   \n4       0       0       0       0       0       0       0       0       0   \n\n   pixel9  ...  pixel774  pixel775  pixel776  pixel777  pixel778  pixel779  \\\n0       0  ...         0         0         0         0         0         0   \n1       0  ...         0         0         0         0         0         0   \n2       0  ...         0         0         0         0         0         0   \n3       0  ...         0         0         0         0         0         0   \n4       0  ...         0         0         0         0         0         0   \n\n   pixel780  pixel781  pixel782  pixel783  \n0         0         0         0         0  \n1         0         0         0         0  \n2         0         0         0         0  \n3         0         0         0         0  \n4         0         0         0         0  \n\n[5 rows x 784 columns]","text/html":"<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>pixel0</th>\n      <th>pixel1</th>\n      <th>pixel2</th>\n      <th>pixel3</th>\n      <th>pixel4</th>\n      <th>pixel5</th>\n      <th>pixel6</th>\n      <th>pixel7</th>\n      <th>pixel8</th>\n      <th>pixel9</th>\n      <th>...</th>\n      <th>pixel774</th>\n      <th>pixel775</th>\n      <th>pixel776</th>\n      <th>pixel777</th>\n      <th>pixel778</th>\n      <th>pixel779</th>\n      <th>pixel780</th>\n      <th>pixel781</th>\n      <th>pixel782</th>\n      <th>pixel783</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>...</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>...</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>...</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>...</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>...</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n    </tr>\n  </tbody>\n</table>\n<p>5 rows × 784 columns</p>\n</div>"},"metadata":{}}]},{"cell_type":"code","source":"train_df.describe()","metadata":{"execution":{"iopub.status.busy":"2022-11-04T16:34:00.489304Z","iopub.execute_input":"2022-11-04T16:34:00.489721Z","iopub.status.idle":"2022-11-04T16:34:02.788459Z","shell.execute_reply.started":"2022-11-04T16:34:00.489567Z","shell.execute_reply":"2022-11-04T16:34:02.787788Z"},"trusted":true},"execution_count":5,"outputs":[{"execution_count":5,"output_type":"execute_result","data":{"text/plain":"              label   pixel0   pixel1   pixel2   pixel3   pixel4   pixel5  \\\ncount  42000.000000  42000.0  42000.0  42000.0  42000.0  42000.0  42000.0   \nmean       4.456643      0.0      0.0      0.0      0.0      0.0      0.0   \nstd        2.887730      0.0      0.0      0.0      0.0      0.0      0.0   \nmin        0.000000      0.0      0.0      0.0      0.0      0.0      0.0   \n25%        2.000000      0.0      0.0      0.0      0.0      0.0      0.0   \n50%        4.000000      0.0      0.0      0.0      0.0      0.0      0.0   \n75%        7.000000      0.0      0.0      0.0      0.0      0.0      0.0   \nmax        9.000000      0.0      0.0      0.0      0.0      0.0      0.0   \n\n        pixel6   pixel7   pixel8  ...      pixel774      pixel775  \\\ncount  42000.0  42000.0  42000.0  ...  42000.000000  42000.000000   \nmean       0.0      0.0      0.0  ...      0.219286      0.117095   \nstd        0.0      0.0      0.0  ...      6.312890      4.633819   \nmin        0.0      0.0      0.0  ...      0.000000      0.000000   \n25%        0.0      0.0      0.0  ...      0.000000      0.000000   \n50%        0.0      0.0      0.0  ...      0.000000      0.000000   \n75%        0.0      0.0      0.0  ...      0.000000      0.000000   \nmax        0.0      0.0      0.0  ...    254.000000    254.000000   \n\n           pixel776     pixel777      pixel778      pixel779  pixel780  \\\ncount  42000.000000  42000.00000  42000.000000  42000.000000   42000.0   \nmean       0.059024      0.02019      0.017238      0.002857       0.0   \nstd        3.274488      1.75987      1.894498      0.414264       0.0   \nmin        0.000000      0.00000      0.000000      0.000000       0.0   \n25%        0.000000      0.00000      0.000000      0.000000       0.0   \n50%        0.000000      0.00000      0.000000      0.000000       0.0   \n75%        0.000000      0.00000      0.000000      0.000000       0.0   \nmax      253.000000    253.00000    254.000000     62.000000       0.0   \n\n       pixel781  pixel782  pixel783  \ncount   42000.0   42000.0   42000.0  \nmean        0.0       0.0       0.0  \nstd         0.0       0.0       0.0  \nmin         0.0       0.0       0.0  \n25%         0.0       0.0       0.0  \n50%         0.0       0.0       0.0  \n75%         0.0       0.0       0.0  \nmax         0.0       0.0       0.0  \n\n[8 rows x 785 columns]","text/html":"<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>label</th>\n      <th>pixel0</th>\n      <th>pixel1</th>\n      <th>pixel2</th>\n      <th>pixel3</th>\n      <th>pixel4</th>\n      <th>pixel5</th>\n      <th>pixel6</th>\n      <th>pixel7</th>\n      <th>pixel8</th>\n      <th>...</th>\n      <th>pixel774</th>\n      <th>pixel775</th>\n      <th>pixel776</th>\n      <th>pixel777</th>\n      <th>pixel778</th>\n      <th>pixel779</th>\n      <th>pixel780</th>\n      <th>pixel781</th>\n      <th>pixel782</th>\n      <th>pixel783</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>count</th>\n      <td>42000.000000</td>\n      <td>42000.0</td>\n      <td>42000.0</td>\n      <td>42000.0</td>\n      <td>42000.0</td>\n      <td>42000.0</td>\n      <td>42000.0</td>\n      <td>42000.0</td>\n      <td>42000.0</td>\n      <td>42000.0</td>\n      <td>...</td>\n      <td>42000.000000</td>\n      <td>42000.000000</td>\n      <td>42000.000000</td>\n      <td>42000.00000</td>\n      <td>42000.000000</td>\n      <td>42000.000000</td>\n      <td>42000.0</td>\n      <td>42000.0</td>\n      <td>42000.0</td>\n      <td>42000.0</td>\n    </tr>\n    <tr>\n      <th>mean</th>\n      <td>4.456643</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>...</td>\n      <td>0.219286</td>\n      <td>0.117095</td>\n      <td>0.059024</td>\n      <td>0.02019</td>\n      <td>0.017238</td>\n      <td>0.002857</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n    </tr>\n    <tr>\n      <th>std</th>\n      <td>2.887730</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>...</td>\n      <td>6.312890</td>\n      <td>4.633819</td>\n      <td>3.274488</td>\n      <td>1.75987</td>\n      <td>1.894498</td>\n      <td>0.414264</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n    </tr>\n    <tr>\n      <th>min</th>\n      <td>0.000000</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>...</td>\n      <td>0.000000</td>\n      <td>0.000000</td>\n      <td>0.000000</td>\n      <td>0.00000</td>\n      <td>0.000000</td>\n      <td>0.000000</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n    </tr>\n    <tr>\n      <th>25%</th>\n      <td>2.000000</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>...</td>\n      <td>0.000000</td>\n      <td>0.000000</td>\n      <td>0.000000</td>\n      <td>0.00000</td>\n      <td>0.000000</td>\n      <td>0.000000</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n    </tr>\n    <tr>\n      <th>50%</th>\n      <td>4.000000</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>...</td>\n      <td>0.000000</td>\n      <td>0.000000</td>\n      <td>0.000000</td>\n      <td>0.00000</td>\n      <td>0.000000</td>\n      <td>0.000000</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n    </tr>\n    <tr>\n      <th>75%</th>\n      <td>7.000000</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>...</td>\n      <td>0.000000</td>\n      <td>0.000000</td>\n      <td>0.000000</td>\n      <td>0.00000</td>\n      <td>0.000000</td>\n      <td>0.000000</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n    </tr>\n    <tr>\n      <th>max</th>\n      <td>9.000000</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>...</td>\n      <td>254.000000</td>\n      <td>254.000000</td>\n      <td>253.000000</td>\n      <td>253.00000</td>\n      <td>254.000000</td>\n      <td>62.000000</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n    </tr>\n  </tbody>\n</table>\n<p>8 rows × 785 columns</p>\n</div>"},"metadata":{}}]},{"cell_type":"code","source":"sns.countplot(train_df.iloc[:,0])","metadata":{"execution":{"iopub.status.busy":"2022-11-04T16:34:02.791193Z","iopub.execute_input":"2022-11-04T16:34:02.791485Z","iopub.status.idle":"2022-11-04T16:34:03.108527Z","shell.execute_reply.started":"2022-11-04T16:34:02.791439Z","shell.execute_reply":"2022-11-04T16:34:03.10735Z"},"trusted":true},"execution_count":6,"outputs":[{"execution_count":6,"output_type":"execute_result","data":{"text/plain":"<matplotlib.axes._subplots.AxesSubplot at 0x7fea3567d588>"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"<Figure size 432x288 with 1 Axes>","image/png":"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\n"},"metadata":{"needs_background":"light"}}]},{"cell_type":"code","source":"plt.figure(figsize=(16,6))\nfor i in range(40):\n    plt.subplot(4,10,i+1)\n    plt.axis(\"off\")\n    plt.title(\"label \" + str(train_df.iloc[i,0]))\n    plt.imshow(train_df.iloc[i,1:].values.reshape(28,28), cmap=\"gray\")\nplt.tight_layout()\n","metadata":{"execution":{"iopub.status.busy":"2022-11-04T16:34:03.111937Z","iopub.execute_input":"2022-11-04T16:34:03.117291Z","iopub.status.idle":"2022-11-04T16:34:06.32708Z","shell.execute_reply.started":"2022-11-04T16:34:03.117215Z","shell.execute_reply":"2022-11-04T16:34:06.326256Z"},"trusted":true},"execution_count":7,"outputs":[{"output_type":"display_data","data":{"text/plain":"<Figure size 1152x432 with 40 Axes>","image/png":"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kiQpZ3bASJIkSZIk5cwOGEmSJEmSpJzZASNJkiRJkpSzSYtuQE927733ArDGGmuU79txxx0BuOyyywppUzObfvrpAejXr1/5vr322qtim2WXXRaAs88+G4Bx48aV1911110AJEmSazvVdX369AHg5JNPBuCnn34C4LDDDgPgxx9/LKZhUhMKIQDwf//3fwAMGTKkvG7WWWcFYJdddmnzsRdffHF5+eijjwbgnXfeAdLjVsVr/Zm60korAbDMMssAMGLEiPK28Xv0xRdf7M4mSpJUs8kmm6y8HH8HbrjhhhXbTD311OXl+J0Xz4Uef/xxAK6++moALr/88vK2X3/9dcXf7mIGjCRJkiRJUs5Cd2YLhBAaIjXh/vvvB2CFFVYA0itNADvttBNQ2Xs2MUmShPq1rnj1imP//v0BWG+99QC44oorAJh00oknZr3++usAzDHHHOX7Lr30UgBOOukkAEaNGlWPZpYZx+pNOeWUAHz55ZcV90811VQAfPPNN93VlKaKYzUxfOONNwB45ZVXyvcNHjwYgO+++64u7YrxXnPNNQG49dZb67LfqJliCPU7FqeYYgogzdQ855xz6rFbDjroIABOP/10oH6ZMMaxa7JXAS+55BIAtt56awBuv/12AD777DMAttxyy/K28bjeYostABg+fHhd22Ucm4NxbA7GsXYLLrggAPvssw8Ak08+OQCzzDJLeZsNNtig4jFPPfUUADfccAMAd955Z3ndf/7zny63wTimGbtHHXVU+b7ddtutfo3K7Pv444+v636j9uJoBowkSZIkSVLOzIDJGDp0KABHHHEEkF5t+uc//1neJo6b/+qrrzq9X3sxU9NOO215OWYRte5FrtWHH34IwCabbALAq6++CsDnn39e036NY/XMgMlHNTH82c9+BqRZZACzzTYbAGPHjq1Lu2affXYAbrzxRgAGDRpUl/1GzRRDqO1YzI57fvTRRwH4xS9+UXuj2hCvBp511ll12Z9x7Jo///nP5eVDDz0UgHPPPReorPMDcN9995WXV1ttNSD9/F100UUBeOutt+rSLuPYHIxjx2aaaSYg/RxcccUVy+tWXXXVim1/+OEHIM1MGzlyZHldPCeNbrrpJgDGjx9f8dhqGceuidn4ACeccAIAO+ywA1BZk7KlLeXlif1+zp7XXnvttUA6iqIzjGP6nbfNNtuU74v1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vtNOOwHpFZ1PPvkE6FzmygwzzABUZk7Ez9SYMbHGGmsA+WepqXa/+tWvysvxPCjGWPmJWWcA1113HQALL7xwl/cT6xFkMyei4cOHA2nGm3qeeG560kknATDTTDO1u22syzVs2DCg8v/L0KFD82qi1JBuuOEGAH75y18CHWe3tOf2228vL8dMxWwNmaytttqqvFxNBkx7zICRJEmSJEnKWVPVgJlzzjnLyzH7YfXVV2/dBqBzPWZtbRtniIhXl0aPHj3R/TiOr3aDBw8G0irxiy66KNC5OD788MMAbLLJJuX7Pv/88y63wTjW7te//jWQjnGebLLJANhrr73K2+SdAdNMcewohvfffz/QdqZLZ3WUEfPggw+2u+7oo4+u+jk7o5liCNUdi8sttxyQfr5lXXXVVQCcffbZADz++OMT3d/PfvYzIK0TAnDcccdVbPPGG28A6fffmDFjutrsCsax/gYMGABUHp8xI3jJJZcE4Ntvv63rcxrH1K233lpeXn/99evSntbee+89AOaYY4667tc41i5mDb7wwgtA2+eoMX7xc/rpp58G0lnnsp+ryy67LAD//e9/O90G49g5/fr1A9KseYAVVlgBgHXWWadi25jBNO+885bvu+WWWwBYbbXVgDSD4qOPPqpL+4xjKjur0fXXXw+ksyB19DswjoCIv91jXbtsBszKK68MpDMcxZmSllpqKaDyPDj7uM6yBowkSZIkSVJB7ICRJEmSJEnKWVMU4Y1FAw8++ODyfa2HHnVGTFHae++9gbS4YXZo06yzzgqkUwXGApeqnzgsBeDSSy8F0mJzU089dbuPi4WZvvnmGwC22WYbAFZccUUAdt555/K22cKV6j4xttkYKx9xCEItQ5A6emxH61p/LsZprvMemtTb3XzzzUA6zWlXvPPOOwBccskl5fvikMFYLDum5k455ZS1NFM52njjjYF0+ltIz1fqPfRIUkn8jLzjjjvaXB+HHQFsscUWQDo0dNCgQRXbTj/99OXlOEHBWWedVb/G9lJxeNFhhx0GpO9tnHClM7LDXTbaaKOKdfE3xoknnlhTOzWh7JCwOPQoxu1///sfAPvuu295m+zkORMTh+tHcUjgP/7xj+oa20lmwEiSJEmSJOWsoTNgYi/ymWeeCdQ+xWLMgLn33nsBeOmll4DKDJjoq6++qum5lIrZELHYWMxkgcorAQBff/01ACeccAJQWfDu5ZdfBtL/B7FwbyxAOMUUU9S97arNiBEjgLQor+onZpu0/hutssoq5eXWBXXjulqyZ9p7LtVXLBYPsOmmm9a8v/g9CGmmYMxE7MqVQhVjmWWWmeC+p556qoCW9E6xMCfkV4RXPcOMM85YXo7nov/3f/9Xsc0zzzwDwD777FO+74knnuiG1qm1mPkSM+o/+OADAF588cXyNs8++yyQnhONHTu23f3F3xYxgyL7/0H1EUe4ZKeCjllIP/30E5AeY13JeukJPJuSJEmSJEnKWUNmwMRp3i644AIA+vfvD3RuSuKOLLTQQgAcdNBBAMw888ztbjtw4MCankup2Bt93XXXTbAuZrzcdNNNQHpFNvZSt+Wzzz4DYP/99wfSqcXiPtRzxPiOGzeu4JY0v3rXX+nKNNcdTVmt6sSpSkePHl2+L04lfeSRRwJw7LHHdnm/Sy+9dHk5Tgnf+oqTeq7slUJ1v2uuuaa8PHToUGDC6aJjti7AsGHDgPRK+0UXXZR3E1Wj+Dm75557lu+bffbZK7YZOXIkkE5R/OWXX3ZT69See+65B0hr1MWpveNvhq6KUyPHY/fUU0+ttYlqJY6CaD0aIiv7mdtIzICRJEmSJEnKWcNkwMSxdgBXX301kGa+xHHpHV2d+/jjj4G0FzpbvTpejdhjjz2AtNp4W/t97rnnAGc/qod49SDOkBJlrw7FWi8x5h2JFc3j1d+Y0RQrn8fZkdT94vEbs8vUeGIGTVc++x544IGKx6p+XnvtNSCdqQjSDMFqrujFzJelllqqfF/r2Y5iJtPnn3/e5f0rX3EmlVlmmQWAhx56qLwuXo1X/rLZnLEm04UXXgiktc5iTSVIM9niNuq5+vbtC8D5558PVM7MEl177bUA/OY3v+m+hqlT/v73v9d1f/G3y4cffghU1k+TJsYMGEmSJEmSpJzZASNJkiRJkpSzhhmClC3A069fP2DCwoBtFeGNadorrrgikKZ7Zs0zzzwA7Lfffm3u9+233y5vu9deewHpkCZVL6bnxtjGoUdrrLFGeZv4Pk86aem/apxKOhZBi4VAs/vp06dPxfPE/y8qzrfffgukRcqcdroxZIcOdWXoUUzNdehR/p5++uny8korrdTmNtkhvK2Ly8cpwmPB3dbDjtraNh6/xx13XJvtUPeLBSG///57IB0KAfDDDz8U0qbeLg5Zj+c0HQ3d68qU1dlh2spfPP+Mw9nj0KPsb45PP/0UgJNPPrnL+8+WRGi93++++67L+1N+Fl988QmWs1OMq76WWWYZAEIIE6yL98Wh18svv/wE24wfPx7oeIhnHHbdenKXOKQsr+9PM2AkSZIkSZJyFmqdurlLTxZCXZ5sl112AeCMM84A0qt7bb2WzTbbDIBbb721Ytt4JQ/gT3/6EwBLLrlkxWNvvvlmAPbee+/yfdUUWUqSZMKuuwZWrzjGYnVTTTUVkE4JFwt3Zs0555wArLnmmrENQNsxj72VcT877LADAB999FFN7TWO1YsFsx9++GEAfvGLXwBw2223AbDxxht3V1OaKo55xzA7xXQ222xi2rpaUU/NFEPIL46xIPnPf/7z8n2tpynu6LO0tdbbPvbYY+V17WXfdMQ41s+bb75Z8e955523257bOHbNwIEDy8tHHHEEkB6X8XyoLSNGjABg6623Bupf9NM4ti2ed951110V97/77rvl5XiOWo04PfLqq69el/0ax/qLk7JksySmnnpqABZccEEAfvzxx7o+p3GE5ZZbDkh/O7TaH9DxuUst29xxxx0AfP311+X74oQwN95440TbHrUXRzNgJEmSJEmSctaQGTDRwgsvDMALL7wAtN3DFafjHDp0KJCOEdtuu+0m2DZmYMSpys4888y6tNNezLY9//zzACyyyCLVtAFoO+bxqmw1V2Q7Yhy7Zr755isvX3/99UCa+RLFsdTxClB3aKY4dueVoVqmoY41YdrKbqtGM8UQ8otjrF82++yzt7tNvLIXpyq+/fbb2902jsdu67P1rLPOAmDfffftdPuMY/2YAVM/eccxnvsALLrooh1u+80335SXp512WiCt81NvxrFtTz75JJB+/sV6L2uttVZ5m1jvpytiDa34+ySe1+64447lbS677LIu79c41t9OO+0EwLBhw8r3xTqWt9xySy7PaRzT7Pns+x5HtuSdAdN6PcCjjz4KdO33pRkwkiRJkiRJBWnoDJgo1oLZc889O9MGoLIeyLHHHgukMzvE2iT1Yi9m26abbjogrU+w5ZZbApVXh2KV8RtuuAGAmWaaCYDrrrsOqOyxfOmll4B0xoFPPvmkHs0sM45dE2cMg/QYbe3uu+8GYN11182zKRWaKY5FXhmq5rujXrVhmimGkF8c45W57Awr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1ttoo40A+PWvfw3AX/7yFwDOO++8mrVJ0jQrr7wyAGPGjAHgqaeeSo8NGTIEgGeffbb6DVOHbLbZZun2vffeC8ABBxwAwNVXX12TNqlrMgJGkiRJkiSpYN02AmaZZZZJtw8++GAA1lxzTQDWXXddAEqlUqPHJUkCwLBhwwA466yzimym1OVst912AKy++urpvptvvhmAl156qaKvNWLECAAWW2wxAPr37w/Ad999V9HXkaTO5OSTTwZgnXXWAaBHjx6AETBdwdChQ9PtM888s+zYa6+9BsC7774LwE477ZQemzBhQhVap0qK7xG9e/dO962wwgqAETBd0cCBA9Ptpr4jquvr1asXAA899BAAL7zwQnpswIABFXsdI2AkSZIkSZIK1m0iYNZee20Adt99dwD22Wef9Njss89edm6MakZ0y2677ZYe69mzJwBLL710cY3t5maeeeZ0e6+99gLg7LPPBmCRRRYBsoiKX/7yl+m5X331VbWaqBaMGzcOgDvuuCPdN8cccwBw5JFHdvj555prrnR71llnBeDLL7/s8POqbWaZZdrHx5JLLglk0UcAV111FZDNIFx++eUA3HfffQB8//331WqmVDcirwRkM+pTpkwBsshDdT5xTxP3M/n7z4az6Msvv3zZz7hnBbjiiisAP+9qbddddwWy+9CmRES96lesiPjoo49q3BJV0mWXXQZk3zfff//9Ql7HCBhJkiRJkqSC1W0EzDzzzAPA8OHDgSxSImZtv/322/TcmKk///zzAXjrrbcA+PDDD8ueC+Cggw4CXLtZpPya59/97ndlxyZOnAjADjvsAJSPPB966KFVaJ1m5Jhjjmm079///neHnzdyykRUBWTRMFtvvTVg7pcizTvvvEDWv5E7K//+2NDmm29e9nPUqFEAbLPNNuk5X3zxReUb243ErDrAWmutBWTXQ3j99dfT7WuvvRbIrqP4vFPnF3le8ttx/RQ1S6eOW2mllYDG9zOtEfelAPvuuy+Q5f2ZNGlSBVqntmop8iWsscYaZX9/+eWX0+1//etfFW+TihV5QfKRhhG9duedd9akTSo333zzpdunnXYakOXYas3n4yqrrALA+uuvD2SRhvmcXZVkBIwkSZIkSVLBHICRJEmSJEkqWN0uQTriiCOALGQzRBhgPglac+GAkWgr/xxRGvCBBx6oXGMFQL9+/YAs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SSeqPkQVJHUO+ZndvPvuuw/IcjmpdiZMmABkUX8RBXjcccel5yy//PIAzD///GXnRnXBfLSMOr+IPFt11VWBrMpVPqpw/fXXB2Do0KGAs7pFiPxL55xzTrqvR48eQHYfqvqSzwETkRN33XUXADfffHNN2qTWGzhwIFAevRT5Ds8666yatEmVFbkkw9133w10joqORsBIkiRJkiQVrNNHwESVm1hL21oRBRF5YiIaImqKf/PNN5VqojqJtdZaC4CFF14YyGafXB/deURVlZhdiBn6UaNGpecMHjy4+g1Tk3r16pVuR/W5MGbMGAD22WcfoO3v0aq82267DciqlUW1lMivlRefrRGBGJ+N6loiSjhy+kRekMiVl2fevOLE9fTWW2+l+3baaScAttlmGyCbfVXXFpEvEfWU995771W7OWqjuK8ZNmwYkEUvQRZFGtHe6trWWGONsr9HBd3OwAgYSZIkSZKkgjkAI0mSJEmSVLBOvwQpQqp33HHHdN/GG28MwIMPPghkCZRiCQpkJY4jFDuSzj300EPFNlg1N8ss0/5bNywLqNqJstORGDKWHkW4dlznAJMmTapy69ScKD0N2dK+EMkGXXrU+cQSvxdffBEoT0S31FJLAfDAAw8AcPbZZ1e5daqkeL+Me6QoVRzlxQE++eQToHMkHqxX3333HVC+5DmWvt94440A3HDDDQA8/PDD6TnRXyHuY+PeNf++e8QRR1S62WqHH/3oR0DTS5DU+a233npAlnD3+++/T49dfPHFQPlSQnV9U6ZMATrX9wsjYCRJkiRJkgrW6SNgrrzySgAGDRqU7ouyi48++igAzz//PABHHnlko8e/8cYbAPTv3x+AiRMnFtZWdQ5Tp04Fshkp1V5EJW299dZl+yOB6+jRo6veJrXPZ599BsDYsWNr3BLNSCT9NPln/Rs5ciSQRcKcfvrp6bEnn3wSgNdff736Detmjj/++HQ7olkiaev+++8PwL777puec8011wCw2WablR3baKONAFhiiSXScyOiLRIuR8JQVVdED0ZkGcB8881Xq+aojeI6isiXl156KT12xhln1KRNKlZ8BnamyCYjYCRJkiRJkgqW5MtvFf5iSdLuF1tnnXXS7SFDhgDZjMGCCy7Y6Pybb74ZyGYcYta2FkqlUl0lI+lIPxYp8vxMnjwZKM8JVAn2Y8fde++9QDYjuP766wPw5ptvVq0N9dSPRffhLrvskm7He+q4ceMAWHHFFYt86RbVUx9C531PLZr9WB/sx6ZFNMtVV101w3O//fZbIIvaPvnkk4HyHFsR9R3nVpr9WB/sx/pgP3ZcfC+MsY6VVlqp2k1oth+NgJEkSZIkSSpYl4mA6cocxayOyHMQFXeMgGlZZ+3HotVTPxbdh/lKYgcffDCQ5R+I6JjHHnusyCY0qZ76ELwW64X9WB/sx/pgP9YH+7E+2I/ljICRJEmSJEkqmAMwkiRJkiRJBXMJUhUYRlYf7Mf6UE/9aB/WB/uxPtiP9cF+rA/2Y32wH+uD/VjOCBhJkiRJkqSCOQAjSZIkSZJUMAdgJEmSJEmSClbVHDCSJEmSJEndkREwkiRJkiRJBXMARpIkSZIkqWAOwEiSJEmSJBXMARhJkiRJkqSCOQAjSZIkSZJUMAdgJEmSJEmSCuYAjCRJkiRJUsEcgJEkSZIkSSqYAzCSJEmSJEkFcwBGkiRJkiSpYA7ASJIkSZIkFcwBGEmSJEmSpII5ACNJkiRJklQwB2AkSZIkSZIK5gCMJEmSJElSwRyAkSRJkiRJKpgDMJIkSZIkSQVzAEaSJEmSJKlgDsBIkiRJkiQVzAEYSZIkSZKkgjkAI0mSJEmSVDAHYCRJkiRJkgrmAIwkSZIkSVLB/j9EfQVhjP++SQAAAABJRU5ErkJggg==\n"},"metadata":{"needs_background":"light"}}]},{"cell_type":"code","source":"X_train = train_df.iloc[:,1:]\ny_train = train_df.iloc[:,0]\nfrom sklearn.preprocessing import StandardScaler\nfrom sklearn.model_selection import train_test_split\nX_train, X_test, y_train, y_test = train_test_split(train_df.iloc[:,1:], train_df.iloc[:,0], test_size=0.2)\nX_train_org = X_train\nX_test_org = X_test\nstandardScaler = StandardScaler()\nstandardScaler.fit(X_train)\nX_train = standardScaler.transform(X_train)\nX_test = standardScaler.transform(X_test)\n\nprint(X_train.shape)\nprint(X_test.shape)\nprint(y_train.shape)\nprint(y_test.shape)\n","metadata":{"execution":{"iopub.status.busy":"2022-11-04T16:34:06.328473Z","iopub.execute_input":"2022-11-04T16:34:06.328755Z","iopub.status.idle":"2022-11-04T16:34:07.530796Z","shell.execute_reply.started":"2022-11-04T16:34:06.328708Z","shell.execute_reply":"2022-11-04T16:34:07.530082Z"},"trusted":true},"execution_count":8,"outputs":[{"name":"stdout","text":"(33600, 784)\n(8400, 784)\n(33600,)\n(8400,)\n","output_type":"stream"}]},{"cell_type":"code","source":"from sklearn.ensemble import RandomForestClassifier\nrandomForestClassifier = RandomForestClassifier()\nrandomForestClassifier.fit(X_train, y_train)\nrandomForestClassifier.score(X_test, y_test)","metadata":{"execution":{"iopub.status.busy":"2022-11-04T16:34:07.532258Z","iopub.execute_input":"2022-11-04T16:34:07.533039Z","iopub.status.idle":"2022-11-04T16:34:09.986219Z","shell.execute_reply.started":"2022-11-04T16:34:07.532981Z","shell.execute_reply":"2022-11-04T16:34:09.985369Z"},"trusted":true},"execution_count":9,"outputs":[{"name":"stderr","text":"/opt/conda/lib/python3.6/site-packages/sklearn/ensemble/forest.py:245: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n  \"10 in version 0.20 to 100 in 0.22.\", FutureWarning)\n","output_type":"stream"},{"execution_count":9,"output_type":"execute_result","data":{"text/plain":"0.9365476190476191"},"metadata":{}}]},{"cell_type":"code","source":"from sklearn.tree import DecisionTreeClassifier\ndecisionTreeClassifier = DecisionTreeClassifier()\ndecisionTreeClassifier.fit(X_train, y_train)\nprint(decisionTreeClassifier.score(X_test, y_test))","metadata":{"execution":{"iopub.status.busy":"2022-11-04T16:34:09.987681Z","iopub.execute_input":"2022-11-04T16:34:09.987952Z","iopub.status.idle":"2022-11-04T16:34:19.822705Z","shell.execute_reply.started":"2022-11-04T16:34:09.987907Z","shell.execute_reply":"2022-11-04T16:34:19.821843Z"},"trusted":true},"execution_count":10,"outputs":[{"name":"stdout","text":"0.8538095238095238\n","output_type":"stream"}]},{"cell_type":"code","source":"X_train_org = np.asarray(X_train_org).reshape(-1,28,28)\nX_test_org = np.asarray(X_test_org).reshape(-1,28,28)\nprint(X_train_org.shape)\nprint(X_test_org.shape)","metadata":{"execution":{"iopub.status.busy":"2022-11-04T16:34:19.824001Z","iopub.execute_input":"2022-11-04T16:34:19.824481Z","iopub.status.idle":"2022-11-04T16:34:19.831369Z","shell.execute_reply.started":"2022-11-04T16:34:19.82443Z","shell.execute_reply":"2022-11-04T16:34:19.830586Z"},"trusted":true},"execution_count":11,"outputs":[{"name":"stdout","text":"(33600, 28, 28)\n(8400, 28, 28)\n","output_type":"stream"}]}]}