label,0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0x10,0x11,0x12,0x13,1x0,1x1,1x2,1x3,1x4,1x5,1x6,1x7,1x8,1x9,1x10,1x11,1x12,1x13,2x0,2x1,2x2,2x3,2x4,2x5,2x6,2x7,2x8,2x9,2x10,2x11,2x12,2x13,3x0,3x1,3x2,3x...

2 answer below »
Please disregard the APA citation request, as it does not pertain to this assignment. Please read and follow ALL DIRECTIONS carefully. Please do not miss any step. I have attached the instructions for the assignment to the attachments. Also, I have attached the data file used as part of this assignment to the attachments. Good luck and thank you!


label,0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0x10,0x11,0x12,0x13,1x0,1x1,1x2,1x3,1x4,1x5,1x6,1x7,1x8,1x9,1x10,1x11,1x12,1x13,2x0,2x1,2x2,2x3,2x4,2x5,2x6,2x7,2x8,2x9,2x10,2x11,2x12,2x13,3x0,3x1,3x2,3x3,3x4,3x5,3x6,3x7,3x8,3x9,3x10,3x11,3x12,3x13,4x0,4x1,4x2,4x3,4x4,4x5,4x6,4x7,4x8,4x9,4x10,4x11,4x12,4x13,5x0,5x1,5x2,5x3,5x4,5x5,5x6,5x7,5x8,5x9,5x10,5x11,5x12,5x13,6x0,6x1,6x2,6x3,6x4,6x5,6x6,6x7,6x8,6x9,6x10,6x11,6x12,6x13,7x0,7x1,7x2,7x3,7x4,7x5,7x6,7x7,7x8,7x9,7x10,7x11,7x12,7x13,8x0,8x1,8x2,8x3,8x4,8x5,8x6,8x7,8x8,8x9,8x10,8x11,8x12,8x13,9x0,9x1,9x2,9x3,9x4,9x5,9x6,9x7,9x8,9x9,9x10,9x11,9x12,9x13,10x0,10x1,10x2,10x3,10x4,10x5,10x6,10x7,10x8,10x9,10x10,10x11,10x12,10x13,11x0,11x1,11x2,11x3,11x4,11x5,11x6,11x7,11x8,11x9,11x10,11x11,11x12,11x13,12x0,12x1,12x2,12x3,12x4,12x5,12x6,12x7,12x8,12x9,12x10,12x11,12x12,12x13,13x0,13x1,13x2,13x3,13x4,13x5,13x6,13x7,13x8,13x9,13x10,13x11,13x12,13x13 7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,78,67,0,0,0,0,0,0,0,0,0,0,0,0,124,243,151,24,6,11,8,11,7,0,0,0,0,0,0,57,230,252,235,252,243,252,200,0,0,0,0,0,0,0,0,51,68,105,72,200,139,0,0,0,0,0,0,0,0,0,0,0,6,250,45,0,0,0,0,0,0,0,0,0,0,0,127,199,1,0,0,0,0,0,0,0,0,0,0,18,223,85,0,0,0,0,0,0,0,0,0,0,0,96,186,0,0,0,0,0,0,0,0,0,0,0,3,226,83,0,0,0,0,0,0,0,0,0,0,0,78,252,87,0,0,0,0,0,0,0,0,0,0,0,41,88,3,0,0,0,0,0 3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,239,207,159,32,0,0,0,0,0,0,0,0,0,32,191,207,255,207,16,0,0,0,0,0,0,0,0,0,0,0,47,239,95,0,0,0,0,0,0,0,0,0,48,79,111,239,111,0,0,0,0,0,0,0,0,95,255,255,255,255,191,0,0,0,0,0,0,0,0,79,207,191,143,79,239,143,0,0,0,0,0,0,0,0,0,0,0,0,191,191,0,0,0,0,0,0,0,0,0,0,16,111,255,143,0,0,0,0,0,0,159,159,111,143,223,255,127,0,0,0,0,0,0,0,32,175,239,239,191,47,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,126,23,0,0,0,0,0,0,0,16,122,246,246,248,248,38,0,0,0,0,0,0,0,174,231,119,108,252,118,0,0,0,0,0,0,0,17,236,117,82,249,159,4,0,0,0,0,0,0,0,0,163,238,209,172,48,0,0,0,0,0,0,0,0,0,86,252,253,22,0,0,0,0,0,0,0,0,0,6,169,157,198,184,0,0,0,0,0,0,0,0,0,165,207,3,118,205,0,0,0,0,0,0,0,0,28,244,103,55,229,136,0,0,0,0,0,0,0,0,80,251,212,239,161,2,0,0,0,0,0,0,0,0,0,116,103,26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,55,210,232,61,0,0,0,0,0,0,0,0,3,168,252,234,247,204,0,0,0,0,0,0,0,0,125,252,131,42,245,193,0,0,0,0,0,0,0,0,210,219,4,178,252,116,0,0,0,0,0,0,0,0,202,249,226,252,226,36,0,0,0,0,0,0,0,0,60,186,249,253,91,0,0,0,0,0,0,0,0,0,0,0,152,245,20,0,0,0,0,0,0,0,0,0,0,7,205,240,0,0,0,0,0,0,0,0,0,0,0,48,252,200,0,0,0,0,0,0,0,0,0,0,0,105,252,80,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,155,246,253,249,150,12,0,0,0,0,0,0,0,30,246,199,136,176,253,195,0,0,0,0,0,0,0,2,46,1,0,8,228,250,0,0,0,0,0,0,0,0,0,0,34,120,253,146,0,0,0,0,0,0,0,0,0,135,249,253,253,86,0,0,0,0,0,0,0,0,28,246,244,177,248,176,0,0,0,0,0,4,11,0,0,67,25,41,245,125,0,0,0,0,0,165,197,25,0,5,75,223,207,24,0,0,0,0,0,197,217,136,136,196,253,222,35,0,0,0,0,0,0,56,217,253,243,188,109,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,45,137,212,115,0,0,0,0,0,0,0,0,0,74,202,57,24,192,61,0,0,0,0,0,0,0,44,201,53,0,2,194,111,0,0,0,0,0,0,0,180,61,0,15,182,243,25,0,0,0,0,0,0,38,185,0,9,130,207,196,0,0,0,0,0,0,0,76,223,154,217,85,200,41,0,0,0,0,0,0,0,3,96,128,18,83,171,0,0,0,0,0,0,0,0,0,0,0,0,180,78,0,0,0,0,0,0,0,0,0,0,0,34,236,3,0,0,0,0,0,0,0,0,0,0,0,163,110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,125,205,0,0,0,73,173,25,0,0,0,0,0,6,227,248,173,174,201,251,201,2,0,0,0,0,0,107,253,216,159,128,118,253,99,0,0,0,0,0,20,216,234,27,0,0,121,234,16,0,0,0,0,0,120,242,65,0,0,14,243,159,0,0,0,0,0,0,14,38,0,0,0,135,253,79,0,0,0,0,0,0,0,0,0,0,21,232,186,1,0,0,0,0,0,0,0,0,0,12,195,247,43,0,0,0,0,0,0,0,0,0,0,119,253,182,50,0,0,0,0,0,0,0,0,0,0,73,239,254,107,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,35,36,106,71,0,0,0,0,0,0,0,0,0,56,233,223,126,233,0,0,0,0,0,0,0,0,40,222,227,45,0,248,0,0,0,0,0,0,0,0,208,182,20,0,35,227,0,0,0,0,0,0,0,0,106,5,0,0,86,141,0,0,0,0,0,0,0,0,0,0,0,0,177,71,0,0,0,0,0,0,0,0,0,0,0,66,202,0,0,0,0,0,0,0,0,0,0,0,5,212,86,0,0,0,0,0,0,0,0,0,0,0,127,202,0,0,0,0,0,0,0,0,0,0,0,36,248,86,0,0,0,0,0,0,0,0,0,0,0,45,116,0,0,0,0,0,0,0 5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,80,14,67,92,127,43,0,0,0,0,0,26,102,195,252,226,157,132,98,115,3,0,0,0,0,2,93,224,39,5,0,0,0,0,0,0,0,0,0,0,61,195,2,0,0,0,0,0,0,0,0,0,0,0,38,210,127,48,1,0,0,0,0,0,0,0,0,0,0,25,98,188,195,110,11,0,0,0,0,0,0,0,0,0,0,0,41,160,208,11,0,0,0,0,0,0,0,0,0,0,0,35,226,16,0,0,0,0,31,65,0,0,0,2,99,223,72,0,0,0,0,0,0,150,195,154,170,217,181,56,0,0,0,0,0,0,0,2,42,116,110,47,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Answered 5 days AfterNov 02, 2021

Answer To: label,0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0x10,0x11,0x12,0x13,1x0,1x1,1x2,1x3,1x4,1x5,1x6,1x7,1x...

Sandeep Kumar answered on Nov 06 2021
127 Votes
updated_MLP.ipynb
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"import matplotlib \n",
"import pandas as pd\n",
"import numpy as np\n",
"from numpy import random as rnd "
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
">0\n",
"
\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"
label0x00x10x20x30x40x50x60x70x8...13x413x513x613x713x813x913x1013x1113x1213x13
07000000000...004188300000
13000000000...0000000000
28000000000...0000000000
39000000000...0000000000
43000000000...0000000000
..................................................................
59953000000000...0000000000
59969000000000...000003074000
59977000000000...00663400000
59982000000000...0000000000
59995000000000...0000000000
\n",
"

6000 rows × 197 columns

\n",
"
"
],
"text/plain": [
" label 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 ... 13x4 13x5 \\\n",
"0 7 0 0 0 0 0 0 0 0 0 ... 0 0 \n",
"1 3 0 0 0 0 0 0 0 0 0 ... 0 0 \n",
"2 8 0 0 0 0 0 0 0 0 0 ... 0 0 \n",
"3 9 0 0 0 0 0 0 0 0 0 ... 0 0 \n",
"4 3 0 0 0 0 0 0 0 0 0 ... 0 0 \n",
"... ... ... ... ... ... ... ... ... ... ... ... ... ... \n",
"5995 3 0 0 0 0 0 0 0 0 0 ... 0 0 \n",
"5996 9 0 0 0 0 0 0 0 0 0 ... 0 0 \n",
"5997 7 0 0 0 0 0 0 0 0 0 ... 0 0 \n",
"5998 2 0 0 0 0 0 0 0 0 0 ... 0 0 \n",
"5999 5 0 0 0 0 0 0 0 0 0 ... 0 0 \n",
"\n",
" 13x6 13x7 13x8 13x9 13x10 13x11 13x12 13x13 \n",
"0 41 88 3 0 0 0 0 0 \n",
"1 0 0 0 0 0 0 0 0 \n",
"2 0 0 0 0 0 0 0 0 \n",
"3 0 0 0 0 0 0 0 0 \n",
"4 0 0 0 0 0 0 0 0 \n",
"... ... ... ... ... ... ... ... ... \n",
"5995 0 0 0 0 0 0 0 0 \n",
"5996 0 0 0 30 74 0 0 0 \n",
"5997 66 34 0 0 0 0 0 0 \n",
"5998 0 0 0 0 0 0 0 0 \n",
"5999 0 0 0 0 0 0 0 0 \n",
"\n",
"[6000 rows x 197 columns]"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"\n",
"df_data = pd.read_csv('digits.csv')\n",
"df_data"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"X = np.array(df_data)\n",
"X = X[:,1:]\n",
"Y = np.array(df_data.iloc[:,0])"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"df_X = pd.DataFrame(X)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"
0123456789...186187188189190191192193194195
00000000000...004188300000
10000000000...0000000000
20000000000...0000000000
30000000000...0000000000
40000000000...0000000000
\n",
"

5 rows × 196 columns

\n",
"
"
],
"text/plain": [
" 0 1 2 3 4 5 6 7 8 9 ... 186 187 188 189 \\\n",
"0 0 0 0 0 0 0 0 0 0 0 ... 0 0 41 88 \n",
"1 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 \n",
"2 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 \n",
"3 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 \n",
"4 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 \n",
"\n",
" 190 191 192 193 194 195 \n",
"0 3 0 0 0 0 0 \n",
"1 0 0 0 0 0 0 \n",
"2 0 0 0 0 0 0 \n",
"3 0 0 0 0 0 0 \n",
"4 0 0 0 0 0 0 \n",
"\n",
"[5 rows x 196 columns]"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_X.head()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"df_Y = pd.DataFrame(Y)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"
0
07
13
28
39
43
\n",
"
"
],
"text/plain": [
" 0\n",
"0 7\n",
"1 3\n",
"2 8\n",
"3 9\n",
"4 3"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_Y.head()"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n",
" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n",
" 0 0 0 0 0 0 0 0 78 67 0 0 0 0 0 0 0 0\n",
" 0 0 0 0 124 243 151 24 6 11 8 11 7 0 0 0 0 0\n",
" 0 57 230 252 235 252 243 252 200 0 0 0 0 0 0 0 0 51\n",
" 68 105 72 200 139 0 0 0 0 0 0 0 0 0 0 0 6 250\n",
" 45 0 0 0 0 0 0 0 0 0 0 0 127 199 1 0 0 0\n",
" 0 0 0 0 0 0 0 18 223 85 0 0 0 0 0 0 0 0\n",
" 0 0 0 96 186 0 0 0 0 0 0 0 0 0 0 0 3 226\n",
" 83 0 0 0 0 0 0 0 0 0 0 0 78 252 87 0 0 0\n",
" 0 0 0 0 0 0 0 0 41 88 3 0 0 0 0 0]\n"
]
}
],
"source": [
"print(X[0])"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"X = X / 255 # Feature scaling"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Label: 7\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAPsAAAD4CAYAAAAq5pAIAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Z1A+gAAAACXBIWXMAAAsTAAALEwEAmpwYAAAL90lEQVR4nO3dX8ie9X3H8ffHpK5qS6MbqDWy5EAyRLpZRWws3awpxFZMDjxQJuhaiAfbasug6ETLDgaTltHipCU427BKPLB2FVmrmW3XCWswxmBjYtXYTmOjcci60h7EP98d3HdYfDSJu68/zx1/7xeE576u5/o9318e8sn1976/qSokvfsdt9gTkDQOwy41wrBLjTDsUiMMu9SIpWMWS+Klf2lgVZW3W++eXWqEYZcaYdilRhh2qRGdwp5kbZKfJXkmyQ19TUpS/zLrs/FJlgBPAZ8A9gKPAFdV1a4jjPFqvDSwIa7GXwA8U1XPVtUB4G5gXYefJ2lAXcJ+BvD8Ict7p+veJMmGJNuSbOtQS1JHgz9UU1UbgY3gYby0mLrs2V8Azjxkefl0naQ51CXsjwBnJVmZ5HjgSuC+fqYlqW8zH8ZX1WtJ/gJ4AFgC3FlVT/Q2M0m9mvnW20zFPGeXBucbYaTGGXapEYZdaoRhlxph2KVGGHapEYZdaoRhlxph2KVGGHapEYZdaoRhlxph2KVGGHapEYZdaoRhlxph2KVGGHapEYZdaoRhlxph2KVGGHapETOHPcmZSX6YZFeSJ5Jc3+fEJPWrS8vm04HTq2p7kvcDjwLrbdksLa7ePze+qvZV1fbp618Du3mbLq6S5kMvXVyTrADOBba+zfc2ABv6qCNpdp3bPyV5H/BvwN9W1b1H2dbDeGlgg7R/SvIe4NvAXUcLuqTF1eUCXYBNwCtV9bl3OMY9uzSww+3Zu4T9o8C/Az8F3piu/uuq+pcjjDHs0sB6D/ssDLs0PFs2S40z7FIjernPriPbuvUtjx/8v1xwwQUzj92xY0en2tu3b+80/vbbb1+02noz9+xSIwy71AjDLjXCsEuNMOxSIwy71AjDLjXCsEuNMOxSIwy71AjDLjXCsEuNMOxSIwy71Ag/qWYEF198cafxN99888xjV65c2an2ihUrOo1//fXXZx67fv36TrXvv//+TuOPVX5SjdQ4wy41wrBLjTDsUiM6hz3JkiSPJWnzaoh0jOhjz349kw6ukuZY115vy4FPAXf0Mx1JQ+m6Z/8K8AX+r/3TWyTZkGRbkm0da0nqYOawJ7kM2F9Vjx5pu6raWFXnV9X5s9aS1F2XPftFwOVJfgHcDXw8ybd6mZWk3s0c9qq6saqWV9UK4ErgB1V1dW8zk9Qr77NLjeil11tV/Qj4UR8/S9Iw3LNLjTDsUiN8P/u73HHHdfv/fPXq1Z3G33bbbTOP3bNnT6faV1xxRafxxyrfzy41zrBLjTDsUiMMu9QIwy41wrBLjTDsUiMMu9QIwy41wrBLjTDsUiMMu9QIwy41wrBLjejlk2o0v95447Cf8v2OPPzww53GHzhwYOaxXdo9663cs0uNMOxSIwy71AjDLjWia2PHZUnuSfJkkt1JPtLXxCT1q+vV+K8C36+qK5IcD5zYw5wkDWDmsCf5APAx4FqAqjoAzH6fRdKguhzGrwReBr6R5LEkdyQ5aeFGtmyW5kOXsC8FPgx8rarOBX4D3LBwI1s2S/OhS9j3Anuraut0+R4m4Zc0h7q0bH4ReD7JqumqS4BdvcxKUu+6Xo3/S+Cu6ZX4Z4E/6z4lSUPoFPaq2gF4Li4dA3yCTmqEYZca4fvZdUQXXXRRp/HnnXfezGNvueWWTrX1Zu7ZpUYYdqkRhl1qhGGXGmHYpUYYdqkRhl1qhGGXGmHYpUYYdqkRhl1qhGGXGmHYpUYYdqkRhl1qRKpqvGLJeMXUiwceeKDT+FWrVh19o8NYsWJFp9qtqqq83Xr37FIjDLvUCMMuNaJry+bPJ3kiyc4km5O8t6+JSerXzGFPcgbwWeD8qjoHWAJc2dfEJPWr62H8UuCEJEuZ9Gb/ZfcpSRpCl15vLwBfBp4D9gG/qqoHF25ny2ZpPnQ5jD8ZWMekT/sHgZOSXL1wO1s2S/Ohy2H8GuDnVfVyVb0K3Aus7mdakvrWJezPARcmOTFJmLRs3t3PtCT1rcs5+1bgHmA78NPpz9rY07wk9axry+YvAl/saS6SBuQTdFIjDLvUCFs2v8tdeumlncavWbOm0/irr37L3VgtEvfsUiMMu9QIwy41wrBLjTDsUiMMu9QIwy41wrBLjTDsUiMMu9QIwy41wrBLjTDsUiMMu9QIwy41wpbNx4ATTjhh5rG7du3qVLtr2+TTTjtt5rEvvfRSp9qtsmWz1DjDLjXCsEuNOGrYk9yZZH+SnYesOyXJliRPT7+ePOw0JXX1Tvbs3wTWLlh3A/BQVZ0FPDRdljTHjhr2qvox8MqC1euATdPXm4D1/U5LUt9m/SjpU6tq3/T1i8Cph9swyQZgw4x1JPWk8+fGV1Ud6f55VW1k2gPO++zS4pn1avxLSU4HmH7d39+UJA1h1rDfB1wzfX0N8N1+piNpKO/k1ttm4D+AVUn2JvkM8HfAJ5I8DayZLkuaY0c9Z6+qqw7zrUt6noukAfkEndQIwy41wpbNx4Bbb7115rFd36K6efPmTuP37/dGzbxwzy41wrBLjTDsUiMMu9QIwy41wrBLjTDsUiMMu9QIwy41wrBLjTDsUiMMu9QIwy41wrBLjTDsUiN8P/sxYNmyZTOP3bNnT6fa1113XafxY7YE15G5Z5caYdilRhh2qRGztmz+UpInkzye5DtJlg06S0mdzdqyeQtwTlV9CHgKuLHneUnq2Uwtm6vqwap6bbr4E2D5AHOT1KM+ztk/DXyvh58jaUCd7rMnuQl4DbjrCNvYn12aAzOHPcm1wGXAJXWEJyfszy7Nh5nCnmQt8AXgj6vqt/1OSdIQZm3Z/A/A+4EtSXYk+frA85TU0awtm/9xgLlIGpBP0EmNMOxSIzLmWxC9Gi8Nr6ryduvds0uNMOxSIwy71AjDLjXCsEuNMOxSIwy71AjDLjXCsEuNMOxSIwy71AjDLjXCsEuNMOxSIwy71IixWzb/F/CfR/j+7023WQzWtva7ofbvH+4bo354xdEk2VZV51vb2tbun4fxUiMMu9SIeQv7Rmtb29rDmKtzdknDmbc9u6SBGHapEXMR9iRrk/wsyTNJbhix7plJfphkV5Inklw/Vu1D5rAkyWNJ7h+57rIk9yR5MsnuJB8Zsfbnp7/vnUk2J3nvwPXuTLI/yc5D1p2SZEuSp6dfTx6x9pemv/fHk3wnybIhai+06GFPsgS4HbgUOBu4KsnZI5V/DfirqjobuBD48xFrH3Q9sHvkmgBfBb5fVX8A/OFYc0hyBvBZ4PyqOgdYAlw5cNlvAmsXrLsBeKiqzgIemi6PVXsLcE5VfQh4CrhxoNpvsuhhBy4AnqmqZ6vqAHA3sG6MwlW1r6q2T1//msk/+DPGqA2QZDnwKeCOsWpO634A+BjTBp1VdaCq/nvEKSwFTkiyFDgR+OWQxarqx8ArC1avAzZNX28C1o9Vu6oerKrXpos/AZYPUXuheQj7GcDzhyzvZcTAHZRkBXAusHXEsl9h0uf+jRFrAqwEXga+MT2FuCPJSWMUrqoXgC8DzwH7gF9V1YNj1F7g1KraN339InDqIswB4NPA98YoNA9hX3RJ3gd8G/hcVf3PSDUvA/ZX1aNj1FtgKfBh4GtVdS7wG4Y7jH2T6bnxOib/4XwQOCnJ1WPUPpya3H8e/R50kpuYnEreNUa9eQj7C8CZhywvn64bRZL3MAn6XVV171h1gYuAy5P8gsmpy8eTfGuk2nuBvVV18CjmHibhH8Ma4OdV9XJVvQrcC6weqfahXkpyOsD06/4xiye5FrgM+NMa6WGXeQj7I8BZSVYmOZ7JxZr7xiicJEzOW3dX1d+PUfOgqrqxqpZX1Qomf+cfVNUoe7iqehF4Psmq6apLgF1j1GZy+H5hkhOnv/9LWJwLlPcB10xfXwN8d6zCSdYyOX27vKp+O1ZdqmrR/wCfZHJVcg9w04h1P8rk8O1xYMf0zycX4e//J8D9I9f8I2Db9O/+z8DJI9b+G+BJYCfwT8DvDFxvM5PrA68yOar5DPC7TK7CPw38K3DKiLWfYXKd6uC/ua+P8Xv3cVmpEfNwGC9pBIZdaoRhlxph2KVGGHapEYZdaoRhlxrxv8+mlhp0SQWhAAAAAElFTkSuQmCC",
"text/plain": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"\"\"\" Let's visualize one sample \n",
"##################################################################\"\"\"\n",
"\n",
"index = 3432\n",
"\n",
"im = X[index] \n",
"im = np.reshape(im, (14, 14), order = \"A\") \n",
"graymap = plt.get_cmap(\"gray\")\n",
"fig1 = plt.figure()\n",
"fig1 = plt.imshow(im, cmap = graymap, interpolation=\"None\") \n",
"print(\"Label: \", Y[index])\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now let's take a look at some other examples:"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"\"\"\" Let's visualize 100 samples\n",
"##################################################################\"\"\"\n",
"\n",
"indxs = rnd.choice(5000, 100, replace=False) \n",
"\n",
"# Create a new figure with 100 axes objects inside it (subplots)\n",
"fig, axs = plt.subplots(10, 10, sharex=True, sharey=True, figsize=(10,10)) \n",
"axs = axs.flatten() # The returned axs is actually a matrix holding the handles to all the subplot axes objects\n",
"graymap = plt.get_cmap(\"gray\")\n",
"\n",
"for i, indx in enumerate(indxs):\n",
" im_mat = np.reshape(X[indx], (14, 14), order = \"A\")\n",
" axs[i].imshow(im_mat, cmap = graymap, interpolation=\"None\")\n",
" axs[i].xaxis.set_visible(False) # Hide the axes labels for clarity\n",
" axs[i].yaxis.set_visible(False) \n",
" \n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"\"\"\" Split data between training and test sets\n",
"##################################################################\"\"\"\n",
"from sklearn.model_selection import train_test_split\n",
"\n",
"X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.2, random_state=42)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"\"\"\" Import MLP and tools\n",
"##################################################################\"\"\"\n",
"from sklearn.neural_network import MLPClassifier\n",
"from sklearn.metrics import classification_report\n",
"from sklearn.metrics import accuracy_score"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Training our model"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"MLPClassifier(activation='logistic', batch_size=4000, hidden_layer_sizes=(25,),\n",
" learning_rate_init=0.5, max_iter=10000, momentum=0,\n",
" random_state=29, solver='sgd')"
]
},
"execution_count": 63,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mlp_eta_05 = MLPClassifier(solver=\"lbfs\")\n",
"mlp_eta_05.hidden_layer_sizes = (20,)\n",
"mlp_eta_05.activation = \"logistic\"\n",
"mlp_eta_05.learning_rate_init = 0.5\n",
"mlp_eta_05.alpha = 0.0001\n",
"mlp_eta_05.batch_size = 4000\n",
"mlp_eta_05.shuffle = True\n",
"mlp_eta_05.random_state = 29\n",
"mlp_eta_05.momentum = 0\n",
"mlp_eta_05.verbose = False\n",
"mlp_eta_05.max_iter = 1000\n",
"\n",
"mlp_eta_05.fit(X_train, Y_train)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"MLPClassifier(activation='logistic', batch_size=4000, hidden_layer_sizes=(25,),\n",
" learning_rate_init=1, max_iter=10000, momentum=0, random_state=29,\n",
" solver='sgd')"
]
},
"execution_count": 64,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mlp_eta_1 = MLPClassifier(solver=\"lbfgs\")\n",
"mlp_eta_1.hidden_layer_sizes = (100,)\n",
"mlp_eta_1.activation = \"logistic\"\n",
"mlp_eta_1.learning_rate_init = 1\n",
"mlp_eta_1.alpha = 0.0001\n",
"mlp_eta_1.batch_size = 4000\n",
"mlp_eta_1.shuffle = True\n",
"mlp_eta_1.random_state = 29\n",
"mlp_eta_1.momentum = 0\n",
"mlp_eta_1.verbose = False\n",
"mlp_eta_1.max_iter = 1000\n",
"\n",
"mlp_eta_1.fit(X_train, Y_train)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"MLPClassifier(activation='logistic', batch_size=4000, hidden_layer_sizes=(25,),\n",
" learning_rate_init=10, max_iter=10000, momentum=0,\n",
" random_state=29, solver='sgd')"
]
},
"execution_count": 65,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mlp_eta_10 = MLPClassifier(solver=\"lbfgs\")\n",
"mlp_eta_10.hidden_layer_sizes = (20,)\n",
"mlp_eta_10.activation = \"logistic\"\n",
"mlp_eta_10.learning_rate_init = 10\n",
"mlp_eta_10.alpha = 0.0001\n",
"mlp_eta_10.batch_size = 4000\n",
"mlp_eta_10.shuffle = True\n",
"mlp_eta_10.random_state = 29\n",
"mlp_eta_10.momentum = 0\n",
"mlp_eta_10.verbose = False\n",
"mlp_eta_10.max_iter = 1000\n",
"\n",
"mlp_eta_10.fit(X_train, Y_train)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"mlp_Hid100 = MLPClassifier(solver=\"lbfgs\")\n",
"mlp_Hid100.hidden_layer_sizes = (100,)\n",
"mlp_Hid100.activation = \"logistic\"\n",
"mlp_Hid100.learning_rate_init = 0.5\n",
"mlp_Hid100.alpha = 0.0001\n",
"mlp_Hid100.batch_size = 4000\n",
"mlp_Hid100.shuffle = True\n",
"mlp_Hid100.random_state = 29\n",
"mlp_Hid100.momentum = 0\n",
"mlp_Hid100.verbose = False\n",
"mlp_Hid100.max_iter = 1000\n",
"\n",
"mlp_Hid100.fit(X_train, Y_train)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Loss: \t\t 0.1806211077737895\n",
"Iterations: \t 1323\n"
]
}
],
"source": [
"fig_mlp_eta_05 = plt.figure()\n",
"ax1 = fig_mlp_eta_05.add_subplot(111)\n",
"ax1.plot(mlp_eta_05.loss_curve_)\n",
"ax1.set(title=r\"$\\eta = 0.5$\", xlabel=\"Epoch\", ylabel=\"Loss\")\n",
"\n",
"plt.show()\n",
"\n",
"print('Loss: \\t\\t', mlp_eta_05.loss_)\n",
"print('Iterations: \\t', mlp_eta_05.n_iter_)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Loss: \t\t 0.08337759602232327\n",
"Iterations: \t 1723\n"
]
}
],
"source": [
"fig_mlp_eta_1 = plt.figure()\n",
"ax1 = fig_mlp_eta_1.add_subplot(111)\n",
"ax1.plot(mlp_eta_1.loss_curve_)\n",
"ax1.set(title=r\"$\\eta = 1$\", xlabel=\"Epoch\", ylabel=\"Loss\")\n",
"\n",
"plt.show()\n",
"\n",
"print('Loss: \\t\\t', mlp_eta_1.loss_)\n",
"print('Iterations: \\t', mlp_eta_1.n_iter_)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Loss: \t\t 0.32301607026379625\n",
"Iterations: \t 67\n"
]
}
],
"source": [
"fig_mlp_eta_10 = plt.figure()\n",
"ax1 = fig_mlp_eta_10.add_subplot(111)\n",
"ax1.plot(mlp_eta_10.loss_curve_)\n",
"ax1.set(title=r\"$\\eta = 10$\", xlabel=\"Epoch\", ylabel=\"Loss\")\n",
"\n",
"plt.show()\n",
"\n",
"print('Loss: \\t\\t', mlp_eta_10.loss_)\n",
"print('Iterations: \\t', mlp_eta_10.n_iter_)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"Learning Rate = 0.5\n",
"\n",
"Accuracy: 0.9191666666666667 \n",
"\n",
" precision recall f1-score support\n",
"\n",
" 0 0.98 0.96 0.97 108\n",
" 1 0.95 0.98 0.97 161\n",
" 2 0.87 0.90 0.88 96\n",
" 3 0.95 0.88 0.92 119\n",
" 4 0.90 0.93 0.91 123\n",
" 5 0.80 0.85 0.83 106\n",
" 6 0.95 0.94 0.94 109\n",
" 7 0.96 0.94 0.95 140\n",
" 8 0.88 0.88 0.88 117\n",
" 9 0.92 0.90 0.91 121\n",
"\n",
" accuracy 0.92 1200\n",
" macro avg 0.92 0.92 0.92 1200\n",
"weighted avg 0.92 0.92 0.92 1200\n",
"\n"
]
}
],
"source": [
"print('\\nLearning Rate = 0.5\\n')\n",
"print('Accuracy: ', accuracy_score(Y_test, mlp_eta_05.predict(X_test)), '\\n')\n",
"print(classification_report(Y_test, mlp_eta_05.predict(X_test)))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"Learning Rate = 1\n",
"\n",
"Accuracy: 0.93 \n",
"\n",
" precision recall f1-score support\n",
"\n",
" 0 0.96 0.96 0.96 108\n",
" 1 0.96 0.98 0.97 161\n",
" 2 0.87 0.94 0.90 96\n",
" 3 0.92 0.90 0.91 119\n",
" 4 0.91 0.95 0.93 123\n",
" 5 0.88 0.84 0.86 106\n",
" 6 0.96 0.94 0.95 109\n",
" 7 0.96 0.92 0.94 140\n",
" 8 0.90 0.95 0.92 117\n",
" 9 0.95 0.90 0.92 121\n",
"\n",
" accuracy 0.93 1200\n",
" macro avg 0.93 0.93 0.93 1200\n",
"weighted avg 0.93 0.93 0.93 1200\n",
"\n"
]
}
],
"source": [
"print('\\nLearning Rate = 1\\n')\n",
"print('Accuracy: ', accuracy_score(Y_test, mlp_eta_1.predict(X_test)), '\\n')\n",
"print(classification_report(Y_test, mlp_eta_1.predict(X_test)))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"Learning Rate = 10\n",
"\n",
"Accuracy: 0.8716666666666667 \n",
"\n",
" precision recall f1-score support\n",
"\n",
" 0 0.94 0.95 0.95 108\n",
" 1 0.96 0.98 0.97 161\n",
" 2 0.82 0.90 0.86 96\n",
" 3 0.85 0.83 0.84 119\n",
" 4 0.90 0.61 0.73 123\n",
" 5 0.83 0.70 0.76 106\n",
" 6 0.99 0.91 0.95 109\n",
" 7 0.92 0.93 0.93 140\n",
" 8 0.84 0.91 0.88 117\n",
" 9 0.69 0.95 0.80 121\n",
"\n",
" accuracy 0.87 1200\n",
" macro avg 0.88 0.87 0.87 1200\n",
"weighted avg 0.88 0.87 0.87 1200\n",
"\n"
]
}
],
"source": [
"print('\\nLearning Rate = 10\\n')\n",
"print('Accuracy: ', accuracy_score(Y_test, mlp_eta_10.predict(X_test)), '\\n')\n",
"print(classification_report(Y_test, mlp_eta_10.predict(X_test)))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### SGD training (batch size = 1)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 100 hidden units"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"mlp_Hid100 = MLPClassifier(solver=\"sgd\")\n",
"mlp_Hid100.hidden_layer_sizes = (100,)\n",
"mlp_Hid100.activation = \"logistic\"\n",
"mlp_Hid100.learning_rate_init = 0.5\n",
"mlp_Hid100.alpha = 0.0001\n",
"mlp_Hid100.batch_size = 4000\n",
"mlp_Hid100.shuffle = True\n",
"mlp_Hid100.random_state = 29\n",
"mlp_Hid100.momentum = 0\n",
"mlp_Hid100.verbose = False\n",
"mlp_Hid100.max_iter = 1000\n",
"\n",
"mlp_Hid100.fit(X_train, Y_train)"
]
}
],
"metadata": {
"interpreter": {
"hash": "81118431cc388d258ed977b65143603a98f8ad6ed776c173758a3af876bc6de9"
},
"kernelspec": {
"display_name": "Python 3.9.4 64-bit",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.4"
}
},
"nbformat": 4,
"nbformat_minor":...
SOLUTION.PDF

Answer To This Question Is Available To Download

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here