{"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":"code","source":"import pandas as pd\nimport time as time\n\ntrain=pd.read_csv('../input/Kannada-MNIST/train.csv')\ntrain.head()\n\ntest=pd.read_csv('../input/Kannada-MNIST/test.csv')\n\n\nidtest = test[\"id\"]\nxtest=test.drop(['id'],axis=1)\nxtest.head()","metadata":{"execution":{"iopub.status.busy":"2021-08-09T00:13:49.021803Z","iopub.execute_input":"2021-08-09T00:13:49.022487Z","iopub.status.idle":"2021-08-09T00:13:53.609576Z","shell.execute_reply.started":"2021-08-09T00:13:49.022434Z","shell.execute_reply":"2021-08-09T00:13:53.608723Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"label=train['label']\nxtrain=train.drop(['label'],axis=1)\nfrom sklearn.model_selection import train_test_split\nx_train,x_val,y_train,y_val=train_test_split(xtrain,label,test_size=0.2,random_state=1)#converting the dataset into proper LGB format \n","metadata":{"execution":{"iopub.status.busy":"2021-08-09T00:13:53.611149Z","iopub.execute_input":"2021-08-09T00:13:53.611572Z","iopub.status.idle":"2021-08-09T00:13:54.306900Z","shell.execute_reply.started":"2021-08-09T00:13:53.611542Z","shell.execute_reply":"2021-08-09T00:13:54.305949Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# EDA using PCA","metadata":{}},{"cell_type":"code","source":"trainval = pd.concat([x_train,x_val],axis=0)\ntraintest = pd.concat([xtrain,xtest],axis=0)\nfrom sklearn.decomposition import PCA\nstart=time.time()\npca = PCA(n_components= 240)\npca.fit(trainval)\npca.fit(traintest)\ndatanew1 = pca.fit_transform(trainval)\ndatanew2 = pca.fit_transform(traintest)\nend=time.time()\nprint(end-start)\nprint(sum(pca.explained_variance_ratio_))\ndatanew1.shape\ndatanew2.shape\n","metadata":{"execution":{"iopub.status.busy":"2021-08-09T00:13:54.308109Z","iopub.execute_input":"2021-08-09T00:13:54.308550Z","iopub.status.idle":"2021-08-09T00:14:39.425111Z","shell.execute_reply.started":"2021-08-09T00:13:54.308517Z","shell.execute_reply":"2021-08-09T00:14:39.424007Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import numpy as np\ndata_train = datanew1[:len(x_train),:]\ndata_val = datanew1[len(x_train):,:]\ndata_test = datanew2[len(xtrain):,:]\nprint(data_train.shape,data_val.shape,data_test.shape)","metadata":{"execution":{"iopub.status.busy":"2021-08-09T00:14:39.426555Z","iopub.execute_input":"2021-08-09T00:14:39.426873Z","iopub.status.idle":"2021-08-09T00:14:39.434988Z","shell.execute_reply.started":"2021-08-09T00:14:39.426839Z","shell.execute_reply":"2021-08-09T00:14:39.433920Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Neural network model 1: 2 Hidden layers 10 neurons","metadata":{}},{"cell_type":"code","source":"from sklearn.neural_network import MLPClassifier\nnn210 = MLPClassifier(solver='sgd', alpha=1e-5,\n                    hidden_layer_sizes=(2, 10), random_state=1)\nstart=time.time()\nnn210.fit(data_train, y_train)\nend=time.time()\n\nfrom sklearn.metrics import accuracy_score\n\nACCtrain=accuracy_score(y_train,nn210.predict(data_train))*100\nACCtest=accuracy_score(y_val,nn210.predict(data_val))*100\nprint('the fit time is',end-start,\n      'the train accuracy is :',ACCtrain,\n      'the test accuracy is :',ACCtest)\n\nsubmit = pd.DataFrame({\"id\":idtest, \"label\": nn210.predict(data_test)})\nsubmit.to_csv(\"submission.csv\", index = False)","metadata":{"execution":{"iopub.status.busy":"2021-08-09T00:14:39.437121Z","iopub.execute_input":"2021-08-09T00:14:39.437580Z","iopub.status.idle":"2021-08-09T00:15:01.407962Z","shell.execute_reply.started":"2021-08-09T00:14:39.437545Z","shell.execute_reply":"2021-08-09T00:15:01.406780Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Neural network model 1: 2 Hidden layers 20 neurons","metadata":{}},{"cell_type":"code","source":"from sklearn.neural_network import MLPClassifier\nnn220 = MLPClassifier(solver='sgd', alpha=1e-5,\n                    hidden_layer_sizes=(2, 20), random_state=1)\nstart=time.time()\nnn220.fit(data_train, y_train)\nend=time.time()\n\nfrom sklearn.metrics import accuracy_score\n\nACCtrain=accuracy_score(y_train,nn220.predict(data_train))*100\nACCtest=accuracy_score(y_val,nn220.predict(data_val))*100\nprint('the fit time is',end-start,\n      'the train accuracy is :',ACCtrain,\n      'the test accuracy is :',ACCtest)\n\nsubmit = pd.DataFrame({\"id\":idtest, \"label\": nn220.predict(data_test)})\nsubmit.to_csv(\"submission.csv\", index = False)","metadata":{"execution":{"iopub.status.busy":"2021-08-09T00:20:39.239490Z","iopub.execute_input":"2021-08-09T00:20:39.239938Z","iopub.status.idle":"2021-08-09T00:20:57.114048Z","shell.execute_reply.started":"2021-08-09T00:20:39.239890Z","shell.execute_reply":"2021-08-09T00:20:57.112953Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Neural network model 1: 5 Hidden layers 10 neurons","metadata":{}},{"cell_type":"code","source":"from sklearn.neural_network import MLPClassifier\nnn510 = MLPClassifier(solver='sgd', alpha=1e-5,\n                    hidden_layer_sizes=(5, 10), random_state=1)\nstart=time.time()\nnn510.fit(data_train, y_train)\nend=time.time()\n\nfrom sklearn.metrics import accuracy_score\n\nACCtrain=accuracy_score(y_train,nn510.predict(data_train))*100\nACCtest=accuracy_score(y_val,nn510.predict(data_val))*100\nprint('the fit time is',end-start,\n      'the train accuracy is :',ACCtrain,\n      'the test accuracy is :',ACCtest)\n\nsubmit = pd.DataFrame({\"id\":idtest, \"label\": nn510.predict(data_test)})\nsubmit.to_csv(\"submission.csv\", index = False)","metadata":{"execution":{"iopub.status.busy":"2021-08-09T00:26:38.169571Z","iopub.execute_input":"2021-08-09T00:26:38.169956Z","iopub.status.idle":"2021-08-09T00:27:19.375531Z","shell.execute_reply.started":"2021-08-09T00:26:38.169923Z","shell.execute_reply":"2021-08-09T00:27:19.374379Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Neural network model 1: 5 Hidden layers 20 neurons","metadata":{}},{"cell_type":"code","source":"from sklearn.neural_network import MLPClassifier\nnn520 = MLPClassifier(solver='adam', alpha=1e-5,\n                    hidden_layer_sizes=(5, 20), random_state=1)\nstart=time.time()\nnn520.fit(data_train, y_train)\nend=time.time()\n\nfrom sklearn.metrics import accuracy_score\n\nACCtrain=accuracy_score(y_train,nn520.predict(data_train))*100\nACCtest=accuracy_score(y_val,nn520.predict(data_val))*100\nprint('the fit time is',end-start,\n      'the train accuracy is :',ACCtrain,\n      'the test accuracy is :',ACCtest)\n\nsubmit = pd.DataFrame({\"id\":idtest, \"label\": nn520.predict(data_test)})\nsubmit.to_csv(\"submission.csv\", index = False)","metadata":{"execution":{"iopub.status.busy":"2021-08-09T00:38:19.297700Z","iopub.execute_input":"2021-08-09T00:38:19.298065Z","iopub.status.idle":"2021-08-09T00:38:48.097316Z","shell.execute_reply.started":"2021-08-09T00:38:19.298035Z","shell.execute_reply":"2021-08-09T00:38:48.093512Z"},"trusted":true},"execution_count":null,"outputs":[]}]}