{"cells":[{"metadata":{"_uuid":"1bf38a51ac8289de00e409f33aaa777ce51deda6","_cell_guid":"05f66ec1-e99e-45de-881f-3f13c1b18296"},"cell_type":"markdown","source":"# Steps:\n1. Important Imports\n2. Load Data\n3. Prepare Data\n        3.1 Analyze data\n        3.2 Simplify data\n        3.3 Split data\n4. Model Selection\n        4.1 Support Vector Machines\n        4.2 K-nearest neighbors\n5. Predict the Actual Test Data"},{"metadata":{"_uuid":"47714cea89c1efb8c889bafe9f146617236e32cb","_cell_guid":"0661690b-3068-4f00-bcc9-ea621a16ba38"},"cell_type":"markdown","source":"# 1. Important Imports"},{"metadata":{"collapsed":true,"_uuid":"0b45738fbb03729725df1f2dd19abd7ceb160c1e","_cell_guid":"26fa2eae-ccc7-46f8-b31b-addac098283c","trusted":false},"cell_type":"code","source":"import pandas as pd\nimport numpy as np\nfrom sklearn.model_selection import train_test_split\n\n# visualization\nimport seaborn as sns\nimport matplotlib.pyplot as plt, matplotlib.image as mpimg\n%matplotlib inline","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"a2a4dedc8ca141a0fd1c2e6aaad6485afa506046","_cell_guid":"b833c8ea-bd8c-4a28-8dc5-8fbb5343a6d5"},"cell_type":"markdown","source":"# 2. Load data"},{"metadata":{"collapsed":true,"_uuid":"a0bcbc8e271d3dd2e6a4b3e2ed8a2aa4be59fa6f","_cell_guid":"a2660dd7-cfd7-4d01-92e1-082fc1ca0df0","trusted":false},"cell_type":"code","source":"train = pd.read_csv('../input/train.csv')\nimgs = train.drop(['label'], axis=1)\nlabels = train['label']\ntest = pd.read_csv('../input/test.csv')","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"ba22983d0c2dc8f8989a8ffb47cbe71182dd6a5c","_cell_guid":"57696447-6af7-4e48-8374-75fbf8093605"},"cell_type":"markdown","source":"# 3. Prepare Data"},{"metadata":{"_uuid":"c949450c7fc5ed280cf9b13928a0a66398650940","_cell_guid":"f35555b0-c4e4-4df4-9a96-e4ee84dd75c1"},"cell_type":"markdown","source":"## 3.1 Analyze data"},{"metadata":{"collapsed":true,"_uuid":"4bb8dcf80c8a6a52ec0c056df0ebf3dea9a04b6e","_cell_guid":"e782c23f-9473-4016-afee-ddb8df6e4d75","trusted":false},"cell_type":"code","source":"i=50\nimg= imgs.iloc[i].as_matrix()\nimg= img.reshape((28,28))\nplt.imshow(img, cmap='gray')\nplt.title(labels.iloc[i])","execution_count":null,"outputs":[]},{"metadata":{"collapsed":true,"_uuid":"25309f55147cb89a19a0b78bc3c1dce69525a550","_cell_guid":"0909c7d3-0158-4d07-9302-71310431050a","trusted":false},"cell_type":"code","source":"plt.hist(imgs.iloc[i])","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"ffed3d099b73897dd32b11f09d65b99387f7cdfb","_cell_guid":"b793b130-6f82-4d98-be6d-4f2989acbeb2"},"cell_type":"markdown","source":"## 3.2 Simplify data\nMaking them true black and white."},{"metadata":{"collapsed":true,"_uuid":"383e11dba3564af5cb19004e899412830247e5aa","_cell_guid":"af102185-f469-4ddf-b2bf-83b660063d7a","trusted":false},"cell_type":"code","source":"imgs[imgs>0] = 1\ntest[test>0] = 1","execution_count":null,"outputs":[]},{"metadata":{"collapsed":true,"_uuid":"28d5c99a5d1ec8ff0cf72673d6dce5ca2a9fc51c","_cell_guid":"042de3b3-a28c-46d5-b63d-e09a312e038c","trusted":false},"cell_type":"code","source":"i=1\nimg= imgs.iloc[i].as_matrix()\nimg= img.reshape((28,28))\nplt.imshow(img, cmap='gray')\nplt.title(labels.iloc[i])","execution_count":null,"outputs":[]},{"metadata":{"collapsed":true,"_uuid":"be1ab0df6ffe4a28d2e6b75ddebf25e0b8e00e78","_cell_guid":"69482826-febf-42a6-b2a9-c6e5ff8097ea","trusted":false},"cell_type":"code","source":"plt.hist(imgs.iloc[i])","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"74e4bcaa18e370ffed57e9950672724264a86161","_cell_guid":"3cceb073-fb64-46c2-89d8-64ae129ec14f"},"cell_type":"markdown","source":"## 3.3 Split Data"},{"metadata":{"collapsed":true,"_uuid":"57e02d0d6539c3a9e99c798969f89502f9e7c230","_cell_guid":"397a3e45-cdc3-491c-9549-ef3d9e5b24bd","trusted":false},"cell_type":"code","source":"train_x, test_x, train_y, test_y= train_test_split(imgs, labels, test_size=0.20)","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"628657f127b6aa7943527999d0dfc1c328ab5897","_cell_guid":"1faa9c8a-9d45-4c8d-9ba8-c77af68bf01b"},"cell_type":"markdown","source":"# 4. Model Selection"},{"metadata":{"collapsed":true,"_uuid":"0b2ee41c276b1d39171b459935332d3e5f03385a","_cell_guid":"df8705e3-c76a-4dbd-b733-88fa577cd326","trusted":false},"cell_type":"code","source":"from sklearn.neighbors import KNeighborsClassifier\nfrom sklearn.svm import SVC, LinearSVC\n\nfrom sklearn.metrics import accuracy_score","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"b29a3b6317d32f5148065270ab77aea93087c9e7","_cell_guid":"1c1fac58-85ab-4b49-9b95-418230448385"},"cell_type":"markdown","source":"## 4.1 Support Vector Machines"},{"metadata":{"collapsed":true,"_uuid":"74724f85bcc704b81251ff3a6c176a10aa90e253","_cell_guid":"fd7c2671-2d1f-4e1b-ae3a-e82c0099ad7e","trusted":false},"cell_type":"code","source":"model_1 = SVC()\nmodel_1.fit(train_x, train_y)\npreds_1 = model_1.predict(test_x)\nprint(accuracy_score(preds_1,test_y))","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"93b958f348576d4163d0a0caf231639d3f640b56","_cell_guid":"98991628-a0f2-4a5b-8cee-854259453e6b"},"cell_type":"markdown","source":"## 4.2 K-nearest neighbors"},{"metadata":{"collapsed":true,"_uuid":"cb3f1fe805e082a4403951e0702a917a1042060a","_cell_guid":"9d5d2a5c-b1fa-48cc-8738-56b433c42e2c","trusted":false},"cell_type":"code","source":"model_2 = KNeighborsClassifier(n_neighbors=3)\nmodel_2.fit(train_x, train_y)\npreds_2 = model_2.predict(test_x)\nprint(accuracy_score(preds_2,test_y))","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"11bfc1f84cd2e3145380f45b91921746398299b2","_cell_guid":"64adfc1d-4308-4d7e-a500-d6b2f4c8e5ce"},"cell_type":"markdown","source":"# 5. Predict the Actual Test Data"},{"metadata":{"collapsed":true,"_uuid":"92c779f79fe03e8f1c0fb7587a0636de033a8a07","_cell_guid":"e0627e01-19f0-4373-8c4b-9fc9177fbdd6","trusted":false},"cell_type":"code","source":"model_1 = SVC()\nmodel_1.fit(imgs, labels)\npreds_1 = model_1.predict(test)\noutput_1 = pd.DataFrame({\"ImageId\": list(range(1,len(preds_1)+1)),\n                        \"Label\": preds_1})\noutput_1.to_csv( 'Digit_Recognizer_preds_1.csv',index=False , header=True )\n\n\nmodel_2.fit(imgs, labels)\npreds_2 = model_2.predict(test)\noutput_2 = pd.DataFrame({\"ImageId\": list(range(1,len(preds_2)+1)),\n                         \"Label\": preds_2})\noutput_2.to_csv( 'Digit_Recognizer_preds_2.csv', index=False, header=True )","execution_count":null,"outputs":[]},{"metadata":{"collapsed":true,"_uuid":"c732b76715096424be3755e28e3e82f67223f569","_cell_guid":"3a6cea4a-e502-4cea-acfb-1722cc6daa8e","trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]}],"metadata":{"language_info":{"name":"python","version":"3.6.4","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"}},"nbformat":4,"nbformat_minor":1}