{"metadata": {"kernelspec": {"display_name": "Python 3", "language": "python", "name": "python3"}, "language_info": {"codemirror_mode": {"name": "ipython", "version": 3}, "version": "3.6.3", "nbconvert_exporter": "python", "mimetype": "text/x-python", "file_extension": ".py", "name": "python", "pygments_lexer": "ipython3"}}, "cells": [{"cell_type": "code", "metadata": {"_uuid": "39d8338edd32e93c2be59c36d3340679f3f4fdfc", "_cell_guid": "9d1c7dab-5ce9-42e7-8fba-e46b3557338f", "collapsed": true}, "outputs": [], "execution_count": null, "source": ["# K-NN Classifier\n", "\n", "from sklearn.neighbors import KNeighborsClassifier\n", "import pandas as pd\n", "import numpy as np\n", "\n", "# Read train and test data into Python\n", "\n", "train = pd.read_csv('train.csv')\n", "test = pd.read_csv('test.csv')\n", "\n", "# Classification Labels\n", "\n", "Label = train.pop(\"label\")\n", "\n", "# Split train data into in train and in test\n", "\n", "in_train = train[:38000]\n", "in_test = train[38000:42000]\n", "\n", "in_train_label = Label[:38000]\n", "in_test_label = Label[38000:42000]\n", "\n", "# K-NN with 1 neighbour\n", "\n", "knn_1 = KNeighborsClassifier(n_neighbors = 5)\n", "knn_1.fit(in_train, in_train_label)\n", "\n", "# Classifying the test set\n", "\n", "Predictions = knn_1.predict(in_test)\n", "\n", "# Accuracy\n", "\n", "np.mean(Predictions == in_test_label)\n", "\n", "# Run K-NN on the whole train and test set\n", "knn_2 = KNeighborsClassifier()\n", "knn_2.fit(train, Label)\n", "\n", "# Classify the test set\n", "\n", "Predictions_all = knn_2.predict(test)\n", "\n", "Predictions_df = pd.DataFrame(Predictions_all)\n", "Index = pd.Series(range(1,28001))\n", "ImageId = pd.DataFrame(Index)\n", "Results = pd.concat([ImageId, Predictions_df], axis = 1)\n", "Results.columns = [\"ImageId\", \"Label\"]\n", "Results.to_csv(\"KNN_Prediction.csv\", index = False)"]}], "nbformat_minor": 1, "nbformat": 4}