{"cells":[{"metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"cell_type":"code","source":"# This Python 3 environment comes with many helpful analytics libraries installed\n# It is defined by the kaggle/python docker image: https://github.com/kaggle/docker-python\n# For example, here's several helpful packages to load in \n\nimport numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\nfrom sklearn.metrics import confusion_matrix\n\n\n# Input data files are available in the \"../input/\" directory.\n# For example, running this (by clicking run or pressing Shift+Enter) will list all files under the input directory\n\nimport os\nfor dirname, _, filenames in os.walk('/kaggle/input'):\n    for filename in filenames:\n        print(os.path.join(dirname, filename))\n\n# Any results you write to the current directory are saved as output.","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"import matplotlib.pyplot as plt\nimport matplotlib.image as mpimg\nimport seaborn as sns\n%matplotlib inline\ndef plot_confusion_matrix(y_true, y_pred):\n    mtx = confusion_matrix(y_true, y_pred)\n    fig, ax = plt.subplots(figsize=(8,8))\n    sns.heatmap(mtx, annot=True, fmt='d', linewidths=.5,  cbar=False, ax=ax)\n    #  square=True,\n    plt.ylabel('Label')\n    plt.xlabel('Prediction')","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train_data=pd.read_csv(\"/kaggle/input/digit-recognizer/train.csv\")\ntest_data=pd.read_csv(\"/kaggle/input/digit-recognizer/test.csv\")","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train_data.describe()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"y=train_data[\"label\"]\nX=train_data.copy()\ndel X[\"label\"]","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"print(X,y)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.model_selection import train_test_split\nfrom sklearn.metrics import accuracy_score\ntrain_X,val_X,train_y,val_y = train_test_split(X,y)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.preprocessing import normalize\ntrain_X_norm=normalize(train_X)\nval_X_norm=normalize(val_X)\n","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.svm import LinearSVC\n\nmodel=LinearSVC()\nmodel.fit(train_X_norm[:5000],train_y[:5000])\naccuracy_score(val_y,model.predict(val_X_norm))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.linear_model import SGDClassifier\n\nmodel=SGDClassifier(loss=\"log\", max_iter=50)\nmodel.fit(train_X_norm[:5000],train_y[:5000])\naccuracy_score(val_y,model.predict(val_X_norm))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.neural_network import MLPClassifier","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"model=MLPClassifier(solver='lbfgs', alpha=1e-5,hidden_layer_sizes=(200, 100), random_state=1,learning_rate=\"invscaling\",max_iter=500)\nnorm_X=normalize(X)\nmodel.fit(norm_X[:5000],y[:5000])\npreds=model.predict(val_X_norm)\nprint(accuracy_score(val_y,preds))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"model=MLPClassifier(solver='adam', alpha=1e-5,hidden_layer_sizes=(40,20), random_state=1,max_iter=400,learning_rate=\"invscaling\")\nmodel.fit(train_X_norm[:5000],train_y[:5000])\nprint(accuracy_score(val_y,model.predict(val_X_norm)))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"model=MLPClassifier(solver='adam', alpha=1e-5,hidden_layer_sizes=( 400,200,150,100), random_state=1,max_iter=400,learning_rate=\"invscaling\")\nmodel.fit(train_X_norm[:5000],train_y[:5000])\npreds=model.predict(val_X_norm)\nprint(accuracy_score(val_y,preds))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"model=MLPClassifier(solver='adam', alpha=1e-5,hidden_layer_sizes=( 400,200,150,100,50), random_state=1,max_iter=400,learning_rate=\"invscaling\")\nnorm_X=normalize(X)\nmodel.fit(train_X_norm[:5000],train_y[:5000])\npreds=model.predict(val_X_norm)\nprint(accuracy_score(val_y,preds))\n","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"plot_confusion_matrix(val_y,preds)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"model=MLPClassifier(solver='adam', alpha=1e-5,hidden_layer_sizes=( 400,200,150,100,50), random_state=1,max_iter=400,learning_rate=\"invscaling\")\nnorm_X=normalize(X)\nmodel.fit(norm_X,y)\npreds=model.predict(val_X_norm)\nprint(accuracy_score(val_y,preds))\nsol=model.predict(normalize(test_data))\ndf=pd.DataFrame(sol)\ndf.index+=1\ndf.to_csv(\"/kaggle/working/sol_final.csv\",index=True,header=[\"Label\"],index_label=[\"ImageId\"])","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]}],"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":4,"nbformat_minor":1}