{"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)\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 the files in the input directory\n\nimport os\nprint(os.listdir(\"../input\"))\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","_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","trusted":true},"cell_type":"code","source":"train = pd.read_csv('../input/train.csv')\ntest = pd.read_csv('../input/test.csv')\nprint(train.shape, test.shape)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"a2deed28356383a77ef68dc28338883540846a47"},"cell_type":"code","source":"train.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"87f64ece8364bcf0cc20916e32705ef7b850cff3"},"cell_type":"code","source":"import matplotlib.pyplot as plt\nplt.figure(figsize = (10, 6))\nplt.imshow(np.array(train.iloc[3,1:]).reshape(28, 28))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"a29a8f67a11c929ff31865d88d8ebb1fc10847e6"},"cell_type":"code","source":"from sklearn.model_selection import train_test_split\ntrain1, validate  = train_test_split(train, test_size = 0.3, random_state = 100)\ntrain1_x = train1.iloc[:,1:]\ntrain1_y = train1.iloc[:,0]\nvalidate_x = validate.iloc[:,1:]\nvalidate_y = validate.iloc[:,0]\nprint(train1_x.shape, train1_y.shape)\nprint(validate_x.shape, validate_y.shape)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"04947fe7ddc416736ec8b610847c7c764435252b"},"cell_type":"code","source":"#DecisionTree Classifier","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"2102ab91be4bb9a8092fc5c91f97309a8849ff0c"},"cell_type":"code","source":"from sklearn.tree import DecisionTreeClassifier\nfrom sklearn.model_selection import GridSearchCV\nDecisionTree = DecisionTreeClassifier(random_state = 100)\nhyp_param = GridSearchCV(DecisionTree,{'max_depth':[10,20,30,40,50], \n                                                   'criterion':['gini', 'entropy']}, cv = 5)\nhyp_param.fit(train1_x, train1_y)\nprint(hyp_param.best_params_)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"81125b55c09ff483869c1549468e82ea9d008c78","scrolled":true},"cell_type":"code","source":"from sklearn.tree import DecisionTreeClassifier\nfrom sklearn.metrics import accuracy_score, classification_report\nDecisionTree = DecisionTreeClassifier(max_depth = 20, criterion = 'entropy',random_state = 100)\nDecisionTree.fit(train1_x, train1_y)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"cb93f9bc5a1d9d06b40ba1cf7a6f31f02a995910","_kg_hide-output":false},"cell_type":"code","source":"out_predict = DecisionTree.predict(validate_x)\nprint(accuracy_score(out_predict, validate_y))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"caf543b00aa803a5472649328d93cf658d1ee922"},"cell_type":"code","source":"#RandomForestClassifier","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"b2cd8689241c5e8a15e29ffe483e95ce2839b6aa"},"cell_type":"code","source":"from sklearn.ensemble import RandomForestClassifier, AdaBoostClassifier\nfrom sklearn.metrics import accuracy_score, classification_report\n\nmodel_rf = RandomForestClassifier(random_state = 100, n_estimators = 300)\nmodel_rf.fit(train1_x, train1_y)\nmodel_rf_predict = model_rf.predict(validate_x)\nprint(accuracy_score(model_rf_predict, validate_y))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"b0c8cde8e2e2c5df1e2af0a2d2c0cd20e89890e9"},"cell_type":"code","source":"#AdaBoostClassifier","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"8e8db2bde19dec9c37e3d44269c497dba728c739"},"cell_type":"code","source":"from sklearn.ensemble import AdaBoostClassifier\nmodel_ada = AdaBoostClassifier(random_state = 100, n_estimators = 300)\nmodel_ada.fit(train1_x, train1_y)\nmodel_ada_predict = model_ada.predict(validate_x)\nprint(accuracy_score(model_ada_predict, validate_y))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"df3cf9a4424ba9f5467a7376856ed5f84a3d0fee"},"cell_type":"code","source":"#KNN Classifier","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"b7f96b7788cdafb1427b9bd22b9e3af2f657b7f6"},"cell_type":"code","source":"from sklearn.neighbors import KNeighborsClassifier\nmodel_knn = KNeighborsClassifier(n_neighbors = 5)\nmodel_knn.fit(train1_x, train1_y)\nmodel_knn_predict = model_knn.predict(validate_x)\nprint(accuracy_score(model_knn_predict, validate_y))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"bead32aae6d6429cb58fc7157e175b8149f18339"},"cell_type":"code","source":"#Predicting with the best model","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"e16cc98ada6045693b73214311df0db1623706e9"},"cell_type":"code","source":"output_predict = model_knn.predict(test)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"7ddb48d2948a4b4472891644ff2c951d43471161"},"cell_type":"code","source":"#Writing Output to the CSV file","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"b43d125e55bdf7d2ff2e8440123bc61a007e36a1"},"cell_type":"code","source":"output = pd.DataFrame(columns = ['ImageId', 'Label'])\noutput['ImageId'] = range(1, 28001)\noutput['Label'] = output_predict\noutput.to_csv('Output.csv', index = False)\n","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}