{"cells":[{"metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"cell_type":"code","source":"import os\nimport os.path\nimport random\nimport time\nimport sys\nimport numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\nfrom scipy.special import expit\nfrom scipy.optimize import minimize\nimport matplotlib as mpl\nimport matplotlib.pyplot as plt\nfrom sklearn.datasets import load_digits\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.neural_network import MLPClassifier\nfrom numpy.random import randint\nimport pickle\n\npd.set_option('max_columns',None)\npd.options.display.width = 2000\nnp.set_printoptions(threshold=np.nan)\nnp.set_printoptions(suppress=True)\n\nmpl.rcParams['agg.path.chunksize'] = 10000\n%matplotlib inline\nstime = time.time()\nprint(os.listdir(\"../input\"))\n\nupdate = True\n\ndf_train = pd.read_csv(\"../input/train.csv\")\ndf_test = pd.read_csv(\"../input/test.csv\")\ndf_sub = pd.read_csv(\"../input/sample_submission.csv\")\n\nmat = df_train.values\nx_test = df_test.values\ndel df_train\ndel df_test\nprint(\"Training set\",mat.shape)\nprint(\"Test set\",x_test.shape)\n\nprint(\"Using MLPClassifier...\")\n# x_train,x_test = train_test_split(mat,train_size=0.7)\n# y_train = x_train[:,0]\n# x_train = x_train[:,1:]\n# y_test = x_test[:,0]\n# x_test = x_test[:,1:]\ny_train = mat[:,0]\nx_train = mat[:,1:]\n\nprint(x_train.shape,x_test.shape)\nclf = None\ntry:\n    clf = pickle.load(open(\"clf\", 'rb'))\nexcept:\n    print(\"No pre-trained model found\")\n    \nif(update or clf is None):\n    print(\"Training...\")\n    clf = MLPClassifier(solver='lbfgs',hidden_layer_sizes=(1000), random_state=1,max_iter=300,verbose=True)\n    clf.fit(x_train,y_train)\n    pickle.dump(clf, open(\"clf\", 'wb'))\n\ny1 = clf.predict(x_test)\ny0 = range(1,len(y1)+1)\ndf_sub[\"ImageId\"] = y0\ndf_sub[\"Label\"] = y1\ndf_sub.to_csv(\"submission.csv\",index=False)\n#pickle.dump(\"submission.csv\", open(\"submission.csv\", 'wb'))\n#print(\"success rate\",(np.count_nonzero(y==y_test)/len(y))*100)\n# fig,ax = plt.subplots(10,3)\n# plt.title(\"Using MLPClassifier\")\n# fig.set_figheight(20)\n# fig.set_figwidth(20)\n# fig.tight_layout()\n# count = 0\n# for row in ax:\n#         for subplot in row:\n#             subplot.imshow(np.reshape(x_test[count],(28,28)))\n#             subplot.set_title(\"Real:\"+str(y_test[count])+\",Guess:\"+str(y[count]))\n#             count = count + 1\n\n# plt.show()\n\n#display(df_sub)\nprint(\"Total Runtime = \",(time.time()-stime))\n\n# Any results you write to the current directory are saved as output.","execution_count":null,"outputs":[]},{"metadata":{"_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","collapsed":true,"_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"display_name":"Python 3","language":"python","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":4,"nbformat_minor":1}