diff --git a/practise/KNN+Practise.ipynb b/practise/KNN+Practise.ipynb
index 07a0698..3fd6c9c 100644
--- a/practise/KNN+Practise.ipynb
+++ b/practise/KNN+Practise.ipynb
@@ -19,13 +19,12 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 1,
"metadata": {
"ExecuteTime": {
"end_time": "2017-03-09T17:11:00.462641Z",
"start_time": "2017-03-09T12:11:00.457060-05:00"
- },
- "collapsed": true
+ }
},
"outputs": [],
"source": [
@@ -48,46 +47,188 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 2,
"metadata": {
"ExecuteTime": {
"end_time": "2017-03-09T17:11:00.913456Z",
"start_time": "2017-03-09T12:11:00.883452-05:00"
- },
- "collapsed": true
+ }
},
"outputs": [],
"source": [
"import pandas as pd\n",
"\n",
"# Import the data using the file path\n",
- "filepath = os.sep.join(data_path + ['Orange_Telecom_Churn_Data.csv'])\n",
+ "#filepath = os.sep.join(data_path + ['Orange_Telecom_Churn_Data.csv'])\n",
+ "filepath = 'Orange_Telecom_Churn_Data.csv'\n",
"data = pd.read_csv(filepath)"
]
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 3,
"metadata": {
"ExecuteTime": {
"end_time": "2017-03-09T17:11:01.087485Z",
"start_time": "2017-03-09T12:11:01.075442-05:00"
}
},
- "outputs": [],
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | state | \n",
+ " KS | \n",
+ "
\n",
+ " \n",
+ " | account_length | \n",
+ " 128 | \n",
+ "
\n",
+ " \n",
+ " | area_code | \n",
+ " 415 | \n",
+ "
\n",
+ " \n",
+ " | phone_number | \n",
+ " 382-4657 | \n",
+ "
\n",
+ " \n",
+ " | intl_plan | \n",
+ " no | \n",
+ "
\n",
+ " \n",
+ " | voice_mail_plan | \n",
+ " yes | \n",
+ "
\n",
+ " \n",
+ " | number_vmail_messages | \n",
+ " 25 | \n",
+ "
\n",
+ " \n",
+ " | total_day_minutes | \n",
+ " 265.1 | \n",
+ "
\n",
+ " \n",
+ " | total_day_calls | \n",
+ " 110 | \n",
+ "
\n",
+ " \n",
+ " | total_day_charge | \n",
+ " 45.07 | \n",
+ "
\n",
+ " \n",
+ " | total_eve_minutes | \n",
+ " 197.4 | \n",
+ "
\n",
+ " \n",
+ " | total_eve_calls | \n",
+ " 99 | \n",
+ "
\n",
+ " \n",
+ " | total_eve_charge | \n",
+ " 16.78 | \n",
+ "
\n",
+ " \n",
+ " | total_night_minutes | \n",
+ " 244.7 | \n",
+ "
\n",
+ " \n",
+ " | total_night_calls | \n",
+ " 91 | \n",
+ "
\n",
+ " \n",
+ " | total_night_charge | \n",
+ " 11.01 | \n",
+ "
\n",
+ " \n",
+ " | total_intl_minutes | \n",
+ " 10 | \n",
+ "
\n",
+ " \n",
+ " | total_intl_calls | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " | total_intl_charge | \n",
+ " 2.7 | \n",
+ "
\n",
+ " \n",
+ " | number_customer_service_calls | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | churned | \n",
+ " False | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " 0\n",
+ "state KS\n",
+ "account_length 128\n",
+ "area_code 415\n",
+ "phone_number 382-4657\n",
+ "intl_plan no\n",
+ "voice_mail_plan yes\n",
+ "number_vmail_messages 25\n",
+ "total_day_minutes 265.1\n",
+ "total_day_calls 110\n",
+ "total_day_charge 45.07\n",
+ "total_eve_minutes 197.4\n",
+ "total_eve_calls 99\n",
+ "total_eve_charge 16.78\n",
+ "total_night_minutes 244.7\n",
+ "total_night_calls 91\n",
+ "total_night_charge 11.01\n",
+ "total_intl_minutes 10\n",
+ "total_intl_calls 3\n",
+ "total_intl_charge 2.7\n",
+ "number_customer_service_calls 1\n",
+ "churned False"
+ ]
+ },
+ "execution_count": 3,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
"source": [
"data.head(1).T"
]
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 4,
"metadata": {
"ExecuteTime": {
"end_time": "2017-03-09T17:11:01.564122Z",
"start_time": "2017-03-09T12:11:01.557967-05:00"
- },
- "collapsed": true
+ }
},
"outputs": [],
"source": [
@@ -97,14 +238,31 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 5,
"metadata": {
"ExecuteTime": {
"end_time": "2017-03-09T17:11:02.585712Z",
"start_time": "2017-03-09T12:11:02.579981-05:00"
}
},
- "outputs": [],
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "Index(['account_length', 'intl_plan', 'voice_mail_plan',\n",
+ " 'number_vmail_messages', 'total_day_minutes', 'total_day_calls',\n",
+ " 'total_day_charge', 'total_eve_minutes', 'total_eve_calls',\n",
+ " 'total_eve_charge', 'total_night_minutes', 'total_night_calls',\n",
+ " 'total_night_charge', 'total_intl_minutes', 'total_intl_calls',\n",
+ " 'total_intl_charge', 'number_customer_service_calls', 'churned'],\n",
+ " dtype='object')"
+ ]
+ },
+ "execution_count": 5,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
"source": [
"data.columns"
]
@@ -121,13 +279,12 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 6,
"metadata": {
"ExecuteTime": {
"end_time": "2017-03-09T17:11:04.545751Z",
"start_time": "2017-03-09T12:11:04.509105-05:00"
- },
- "collapsed": true
+ }
},
"outputs": [],
"source": [
@@ -141,13 +298,12 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 7,
"metadata": {
"ExecuteTime": {
"end_time": "2017-03-09T17:11:04.736451Z",
"start_time": "2017-03-09T12:11:04.718049-05:00"
- },
- "collapsed": true
+ }
},
"outputs": [],
"source": [
@@ -175,13 +331,12 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 8,
"metadata": {
"ExecuteTime": {
"end_time": "2017-03-09T17:11:50.280188Z",
"start_time": "2017-03-09T12:11:50.269326-05:00"
- },
- "collapsed": true
+ }
},
"outputs": [],
"source": [
@@ -199,13 +354,12 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 9,
"metadata": {
"ExecuteTime": {
"end_time": "2017-03-09T17:11:50.989446Z",
"start_time": "2017-03-09T12:11:50.498708-05:00"
- },
- "collapsed": true
+ }
},
"outputs": [],
"source": [
@@ -232,32 +386,39 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 10,
"metadata": {
"ExecuteTime": {
"end_time": "2017-03-09T17:11:50.997204Z",
"start_time": "2017-03-09T12:11:50.991392-05:00"
- },
- "collapsed": true
+ }
},
"outputs": [],
"source": [
"# Function to calculate the % of values that were correctly predicted\n",
"\n",
"def accuracy(real, predict):\n",
- " return sum(y_data == y_pred) / float(real.shape[0])"
+ " return sum(real == predict) / float(real.shape[0])"
]
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 11,
"metadata": {
"ExecuteTime": {
"end_time": "2017-03-09T17:11:51.128466Z",
"start_time": "2017-03-09T12:11:51.115874-05:00"
}
},
- "outputs": [],
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "0.9422\n"
+ ]
+ }
+ ],
"source": [
"print(accuracy(y_data, y_pred))"
]
@@ -276,31 +437,57 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 12,
"metadata": {
"ExecuteTime": {
"end_time": "2017-03-09T17:11:52.047123Z",
"start_time": "2017-03-09T12:11:51.538212-05:00"
- },
- "collapsed": true
+ }
},
- "outputs": [],
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "1.0\n"
+ ]
+ }
+ ],
"source": [
- "#Student writes code here"
+ "#Student writes code here\n",
+ "#q5 part 1 weights are the invers of distances\n",
+ "knn2 = KNeighborsClassifier(n_neighbors=3, weights = 'distance')\n",
+ "knn2 = knn2.fit(X_data, y_data)\n",
+ "y_pred2 = knn2.predict(X_data)\n",
+ "print(accuracy(y_data, y_pred2))\n",
+ "#we get accuracy 1 because we checked the accuracy on our train set, ie the set which was used to learn"
]
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 13,
"metadata": {
"ExecuteTime": {
"end_time": "2017-03-09T17:11:52.755941Z",
"start_time": "2017-03-09T12:11:52.049816-05:00"
- },
- "collapsed": true
+ }
},
- "outputs": [],
- "source": []
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "0.9456\n"
+ ]
+ }
+ ],
+ "source": [
+ "# q5 part 2 manhatan distances\n",
+ "knn3 = KNeighborsClassifier(n_neighbors=3, p =1)\n",
+ "knn3 = knn3.fit(X_data, y_data)\n",
+ "y_pred3 = knn3.predict(X_data)\n",
+ "print(accuracy(y_data, y_pred3))"
+ ]
},
{
"cell_type": "markdown",
@@ -314,51 +501,87 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 14,
"metadata": {
"ExecuteTime": {
"end_time": "2017-03-09T17:12:01.329053Z",
"start_time": "2017-03-09T12:11:52.759302-05:00"
- },
- "collapsed": true
+ }
},
"outputs": [],
"source": [
- "#Student writes code here"
+ "#Student writes code here\n",
+ "# q6 starts. \n",
+ "k_values = [i for i in range(1,21)] # k values from 1 to 20\n",
+ "accuracies = [] # declare an array to store accuracies"
]
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 15,
"metadata": {
"ExecuteTime": {
"end_time": "2017-03-09T17:12:01.829160Z",
"start_time": "2017-03-09T12:12:01.331021-05:00"
- },
- "collapsed": true
+ }
},
"outputs": [],
- "source": []
+ "source": [
+ "# iterate through all k values and store the accuracies\n",
+ "for i in k_values :\n",
+ " knnx = KNeighborsClassifier(n_neighbors=i)\n",
+ " knnx = knnx.fit(X_data, y_data)\n",
+ " y_predx = knnx.predict(X_data)\n",
+ " acc = accuracy(y_data, y_predx)\n",
+ " accuracies.append(acc)"
+ ]
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 16,
"metadata": {
"ExecuteTime": {
"end_time": "2017-03-09T17:12:02.238935Z",
"start_time": "2017-03-09T12:12:01.831094-05:00"
- },
- "collapsed": true
+ }
},
- "outputs": [],
- "source": []
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "Text(0.5,1,'accuracies vs k')"
+ ]
+ },
+ "execution_count": 16,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYsAAAEWCAYAAACXGLsWAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAGfJJREFUeJzt3XuUJnV95/H3RwY0q9xnlhiGAEYUR0MQ21FjuGziIcBRWDCroCdcNIueyGaTHNyFZROaMQQvuNl15cSDyipJFMF4IUaDhIuuFwzNbQQRGIgIA4GJ3ETWg+B3/6hqeGi6u3roeZ7qnn6/znkO9VT96qlv1zzUp3+/qq5KVSFJ0mye1XcBkqSFz7CQJHUyLCRJnQwLSVInw0KS1MmwkCR1MiykEUrylSTH9F3HVEmOTfKNvuvQwrWs7wKkpaSqDu67BumZsGchbYQ0/P9GS45fei06SU5KcmuSHyf5XpLDpyz/j0luHFi+Tzt/lySfS7IhyY+SfLidP57krwfW3y1JJVnWvr88yelJvgk8ArwgyXED27gtyTum1HBYkmuTPNTWetDAZ/3eQLu3tZ9zf5KLkuzazk+Sv0hyb/sZ303ysmn2xZuTTEyZ90dJLmynD2n3wY+TrE9y4hz38QeSfCPJtnNpr82fYaHF6FZgX2Bb4DTgr5M8HyDJfwDGgaOBbYBDgR8l2QL4EnA7sBuwM3DeRmzzd4Hjga3bz7gXeH27jeOAvxgIpdXAucC7ge2A/YAfTP3AJIcB/w04AlgB/F/g0+3iA9v1XtT+nG8CfjRNXX8HvDjJHgPz3gJ8qp3+OPCOqtoaeBlw6Ww/ZJJnJfkosBdwYFU9OFt7LR2GhRadqrqgqu6qqp9X1WeAW4DV7eLfA95fVVdWY11V3d4u/yXg3VX1k6r6aVVtzAndT1TVDVX1WFX9rKr+vqpubbfxNeCrNAEG8HbgnKq6uK1xfVV9f5rPfCdwRlXdWFWPAX8O7N32Ln5GE0x7Amnb3D3NvngE+CJwFEAbGnsCF7ZNfgasSrJNVd1fVVfP8jNuSRNWOwBvaD9bAgwLLUJJjm6HeB5I8gDNb8zL28W70PQ8ptoFuL09KD8Td0yp4eAkVyS5r63hkDnUMNWuwP8a+DnuAwLsXFWXAh8GzgLuTXJ2km1m+JxP0YYFTa/iCwMH+je2td2e5GtJXjNLPS8EDgNOq6pH51C/lhDDQotK+1v3R4ETgB2rajvgepqDLDQH9V+ZZtU7gF+ePA8xxU+AfzPw/henafPE7ZmTPBv4W+BMYKe2hi/PoYbpanpHVW038PqFqvoWQFV9qKpeAayiGY569wyfczGwIsneNKExOQRF28M6DPi3wBeA82ep50aaIbWvJHnxHOrXEmJYaLF5Ls2BewNAkuNoehaTPgacmOQV7UniF7YB80/A3cB7kzw3yXOSvLZd51pgvyS/3J7QPbmjhq2AZ7c1PJbkYJpzDJM+DhyX5LfacwA7J9lzms/5CHBykpe2P8u27TkXkrwyyauSbEkTZj8Ffj5dMVX1M+AC4AM0Q0gXt5+xVZK3Jtm2bfPQTJ8x8FmfpjmP8o9J5hJ4WiIMCy0qVfU94IPAt4F7gF8Fvjmw/ALgdJrfrn9M89v0DlX1OPAGmqGWHwJ3Am9u17kY+AywFriK5kT4bDX8GPgDmt/S76cZ+rlwYPk/0Z70Bh4EvkYz5DT1cz4PvA84L8lDND2kyb/D2IamB3U/zQn1H9GEwUw+BbwOuGDKUNvvAj9oP/+dwFtn+9nauj4JrAEuTbJbV3stDfHhR5KkLvYsJEmdDAtJUifDQpLUybCQJHXabO46u3z58tptt936LkOSFpWrrrrqX6tqRVe7zSYsdtttNyYmJrobSpKekOT2ubRzGEqS1MmwkCR1MiwkSZ0MC0lSJ8NCktRpaGGR5Jz2kZDXz7A8ST6UZF2StZNPGWuXHZPklvZ1zLBqfIrx8ZFsRpIWo2H2LD4BHDTL8oOBPdrX8cBfAiTZATgVeBXN081OTbL9EOtsnHba0DchSYvV0MKiqr5O8+SvmRwGnNs+lvIKYLv2Ocq/DVxcVfdV1f009+afLXQkSUPW5zmLnXnqoyrvbOfNNP9pkhyfZCLJxIYNGza+gvFxSJpX84HNyyEpSXqKRX2Cu6rOrqqxqhpbsaLzr9WfbnwcqppX84HNy7CQpKfoMyzW0zzYftLKdt5M8yVJPekzLC4Ejm6vino18GBV3Q1cBByYZPv2xPaB7bzhOvXUoW9Ckharod1IMMmngQOA5UnupLnCaUuAqvoI8GXgEGAd8AjNM4upqvuSvAe4sv2oNVU124nyTcOhJ0ma0dDCoqqO6lhewLtmWHYOcM4w6pIkbbxFfYJbkjQahoUkqZNhIUnqZFhIkjoZFpKkToaFJKmTYSFJ6mRYSJI6GRaSpE6GhSSpk2EhSepkWEiSOhkWkqROhoUkqZNhIUnqZFhIkjoZFpKkToaFJKmTYSFJ6mRYSJI6GRaSpE6GhSSpk2EhSepkWEiSOhkWkqROhoUkqZNhIUnqZFhIkjoZFpKkToaFJKmTYSFJ6jTUsEhyUJKbkqxLctI0y3dNckmStUkuT7JyYNn7k9yQ5MYkH0qSYdYqSZrZ0MIiyRbAWcDBwCrgqCSrpjQ7Ezi3qvYC1gBntOv+OvBaYC/gZcArgf2HVaskaXbD7FmsBtZV1W1V9ShwHnDYlDargEvb6csGlhfwHGAr4NnAlsA9Q6xVkjSLYYbFzsAdA+/vbOcNug44op0+HNg6yY5V9W2a8Li7fV1UVTcOsVZJ0iz6PsF9IrB/kmtohpnWA48neSHwEmAlTcD8ZpJ9p66c5PgkE0kmNmzYMMq6JWlJGWZYrAd2GXi/sp33hKq6q6qOqKqXA6e08x6g6WVcUVUPV9XDwFeA10zdQFWdXVVjVTW2YsWKYf0ckrTkDTMsrgT2SLJ7kq2AI4ELBxskWZ5ksoaTgXPa6R/S9DiWJdmSptfhMJQk9WRoYVFVjwEnABfRHOjPr6obkqxJcmjb7ADgpiQ3AzsBp7fzPwvcCnyX5rzGdVX1d8OqVZI0u1RV3zVsEmNjYzUxMdF3GZK0qCS5qqrGutr1fYJbkrQIGBaSpE6GhSSpk2EhSepkWEiSOhkWkqROhoUkqZNhIUnqZFhIkjoZFpKkToaFJKmTYSFJ6mRYSJI6GRaSpE6GhSSpk2EhSepkWEiSOhkWkqROhoUkqZNhIUnqZFhIkjoZFpKkToaFJKmTYSFJ6mRYSJI6GRaSpE6GhSSpk2EhSepkWEiSOhkWkqROhoUkqZNhIUnqNNSwSHJQkpuSrEty0jTLd01ySZK1SS5PsnJg2S8n+WqSG5N8L8luw6xVkjSzoYVFki2As4CDgVXAUUlWTWl2JnBuVe0FrAHOGFh2LvCBqnoJsBq4d1i1SpJmN8yexWpgXVXdVlWPAucBh01pswq4tJ2+bHJ5GyrLqupigKp6uKoeGWKtkqRZDDMsdgbuGHh/Zztv0HXAEe304cDWSXYEXgQ8kORzSa5J8oG2p/IUSY5PMpFkYsOGDUP4ESRJ0P8J7hOB/ZNcA+wPrAceB5YB+7bLXwm8ADh26spVdXZVjVXV2IoVK0ZWtCQtNcMMi/XALgPvV7bznlBVd1XVEVX1cuCUdt4DNL2Qa9shrMeALwD7DLFWSdIshhkWVwJ7JNk9yVbAkcCFgw2SLE8yWcPJwDkD626XZLK78JvA94ZYqyRpFkMLi7ZHcAJwEXAjcH5V3ZBkTZJD22YHADcluRnYCTi9XfdxmiGoS5J8Fwjw0WHVKkmaXaqq7xo2ibGxsZqYmOi7DElaVJJcVVVjXe36PsEtSVoEDAtJUifDQpLUybCQJHUyLCRJnQwLSVInw0KS1MmwkCR1MiwkSZ0MC0lSJ8NCktRpTmGR5BXTzHv9pi9HkrQQzbVn8dEkL5t8k+Qo4E+GU5IkaaFZNsd2vwN8NslbaJ5gdzRw4NCqkiQtKHMKi6q6LcmRNE+s+yFwYFX9v6FWJklaMGYNi/bBQ4MPvNgB2AL4ThKqaq9hFidJWhi6ehaexJYkzR4WVXX7qAqRJC1c/p2FJKmTYSFJ6mRYSJI6GRaSpE6GhSSpk2EhSepkWEiSOhkWkqROhoUkqZNhsVCMj/ddgSTNyLBYKE47re8KJGlGhoUkqZNh0afxcUiaFzw57ZCUpAVmqGGR5KAkNyVZl+SkaZbvmuSSJGuTXJ5k5ZTl2yS5M8mHh1lnb8bHoap5wZPThoWkBWZoYZFkC+As4GBgFXBUklVTmp0JnNs+RGkNcMaU5e8Bvj6sGiVJczPMnsVqYF1V3VZVjwLnAYdNabMKuLSdvmxweZJXADsBXx1ijQvHqaf2XYEkzWiYYbEzcMfA+zvbeYOuA45opw8Htk6yY5JnAR8ETpxtA0mOTzKRZGLDhg2bqOyeOPQkaQHr+wT3icD+Sa4B9gfWA48Dvw98uarunG3lqjq7qsaqamzFihXDr1aSlqiuZ3DPx3pgl4H3K9t5T6iqu2h7FkmeB7yxqh5I8hpg3yS/DzwP2CrJw1X1tJPkkqThG2ZYXAnskWR3mpA4EnjLYIMky4H7qurnwMnAOQBV9daBNscCYwaFJPVnaMNQVfUYcAJwEXAjcH5V3ZBkTZJD22YHADcluZnmZPbpw6pHkvTMpSav8V/kxsbGamJiou8yJGlRSXJVVY11tev7BLckaREwLCRJnQwLSVInw0KS1MmwkCR1MiwkSZ0MC0lSJ8NCktTJsJAkdTIsJEmdDAtJUifDQpLUybCQJHUyLDYVH4sqaTNmWGwqp53WdwWSNDSGhRr2jCTNwrCYj/FxSJoXPDm9GA+89owkzcIn5W0qCSzmfbnY65f0jPikPHXbnHpGkoZqWd8FbDZOPbXvCjbe+PiTwWDPQtIs7FlsKv42LmkzZlio0XfPyLCVFjRPcGthcBhM6oUnuCVJm4xhof54NZa0aDgMpYXBYSipFw5DSZI2GcNCC4NXY0kLmsNQEjgMpiXLYShJ0iZjWGjp8mosac6GGhZJDkpyU5J1SU6aZvmuSS5JsjbJ5UlWtvP3TvLtJDe0y948zDq1RI2PN0NPk8NPk9OGhfQ0QwuLJFsAZwEHA6uAo5KsmtLsTODcqtoLWAOc0c5/BDi6ql4KHAT8zyTbDatWSdLshtmzWA2sq6rbqupR4DzgsCltVgGXttOXTS6vqpur6pZ2+i7gXmDFEGvVUtf31VjSAjfMsNgZuGPg/Z3tvEHXAUe004cDWyfZcbBBktXAVsCtQ6pTcuhJ6tD3Ce4Tgf2TXAPsD6wHHp9cmOT5wF8Bx1XVz6eunOT4JBNJJjZs2DCqmiVpyRlmWKwHdhl4v7Kd94SququqjqiqlwOntPMeAEiyDfD3wClVdcV0G6iqs6tqrKrGVqxwlEqShmWYYXElsEeS3ZNsBRwJXDjYIMnyJJM1nAyc087fCvg8zcnvzw6xRknSHAwtLKrqMeAE4CLgRuD8qrohyZokh7bNDgBuSnIzsBNwejv/TcB+wLFJrm1few+rVknS7LzdhyQtYd7uQ6Pl1UTz4/7TAmdYbC76Pticdlq/21/s3H9a4AyLzYUHG81H379saMEzLPTMeSO++VlI+89fNtTBE9yL2fj49P+Tn3rq6A84Pg9ifvref31vX73xBPdS4F1TNR8LqWejBW9Z3wVoM+GN+Oanj/03Pv5kMNizUAd7FpuLvg/Wff822vf252ux16/NnmGxuVjqBxtP0M5P379saMEzLCT5y4Y6GRZavDxBK42Ml85q8+AJWukZ8dJZSYuHvcEFz7DQ5qHvE7Qe7ObHCxQWPIehpE3BYbD5cf/1xmEoSQubFygsKoaF9Ex5sJufhXS7mr7/zfre/hw4DCVtCn0PowzeumMx6nv/LeHtOwwlLSWL/QRx3xcoqJNhIW0KHuzmp6+hpz6HEfve/kZyGEparBbS80wWO4ehOoehDAtpc9D3wW6x63v/LYKwcBhK0vwt9p5M38OIfW9/DgwLaXPQ98Gm7xPs8w2rvsOu7+3PgcNQkuZvCQ/jLHYOQ0karkV2NY/mx7CQ9Mz0/RfYCymslkBAOgwlaf76HgZa6tufB4ehJI1O3yfYl7oR9GwMC0nz1/cwTB9htZCGwUZwNZrDUJI0X30PQ81j+w5DSdLmbMQ9m6GGRZKDktyUZF2Sk6ZZvmuSS5KsTXJ5kpUDy45Jckv7OmaYdUrSvPQ1DDbCq9GGFhZJtgDOAg4GVgFHJVk1pdmZwLlVtRewBjijXXcH4FTgVcBq4NQk2w+rVkmal77P2YzAMHsWq4F1VXVbVT0KnAccNqXNKuDSdvqygeW/DVxcVfdV1f3AxcBBQ6xVkhavEfRshhkWOwN3DLy/s5036DrgiHb6cGDrJDvOcV2SHJ9kIsnEhg0bNlnhkrSoLIFLZ08E9k9yDbA/sB54fK4rV9XZVTVWVWMrVqwYVo2StOQtG+Jnrwd2GXi/sp33hKq6i7ZnkeR5wBur6oEk64EDpqx7+RBrlSTNYpg9iyuBPZLsnmQr4EjgwsEGSZYnmazhZOCcdvoi4MAk27cntg9s50mSejC0sKiqx4ATaA7yNwLnV9UNSdYkObRtdgBwU5KbgZ2A09t17wPeQxM4VwJr2nmSpB74F9yStIQtuWdwJ9kA3N53HbNYDvxr30XMwvrmx/rmx/rmZz717VpVnVcIbTZhsdAlmZhLevfF+ubH+ubH+uZnFPX1femsJGkRMCwkSZ0Mi9E5u+8COljf/Fjf/Fjf/Ay9Ps9ZSJI62bOQJHUyLCRJnQyLTSTJLkkuS/K9JDck+c/TtDkgyYNJrm1ff9pDnT9I8t12+0/7K8Y0PtQ+sGptkn1GWNuLB/bNtUkeSvKHU9qMdB8mOSfJvUmuH5i3Q5KL2wdzXTzTs1ZG8QCvGer7QJLvt/9+n0+y3QzrzvpdGGJ940nWD/wbHjLDurM+PG2I9X1moLYfJLl2hnVHsf+mPa708h2sKl+b4AU8H9innd4auBlYNaXNAcCXeq7zB8DyWZYfAnwFCPBq4Ds91bkF8C80fzDU2z4E9gP2Aa4fmPd+4KR2+iTgfdOstwNwW/vf7dvp7UdU34HAsnb6fdPVN5fvwhDrGwdOnMO//63AC4CtaB5nsGoU9U1Z/kHgT3vcf9MeV/r4Dtqz2ESq6u6qurqd/jHN/bCe9gyOReAwmqcXVlVdAWyX5Pk91PFbwK1V1etf5VfV14Gp9yU7DPhkO/1J4N9Ps+pIHuA1XX1V9dVq7s0GcAXNXZt7McP+m4u5PDxt3marL0mANwGf3tTbnatZjisj/w4aFkOQZDfg5cB3pln8miTXJflKkpeOtLBGAV9NclWS46dZPqcHT43Akcz8P2nf+3Cnqrq7nf4XmptgTrVQ9uPbaHqK0+n6LgzTCe0w2TkzDKEshP23L3BPVd0yw/KR7r8px5WRfwcNi00szXM5/hb4w6p6aMriq2mGVX4N+N/AF0ZdH/AbVbUPzbPR35Vkvx5qmFWaW9ofClwwzeKFsA+fUE1/f0Fef57kFOAx4G9maNLXd+EvgV8B9gbuphnqWYiOYvZexcj232zHlVF9Bw2LTSjJljT/oH9TVZ+buryqHqqqh9vpLwNbJlk+yhqran3733uBz9N09wd1PrRqBA4Grq6qe6YuWAj7ELhncmiu/e+907TpdT8mORZ4PfDW9mDyNHP4LgxFVd1TVY9X1c+Bj86w3b733zKaB7N9ZqY2o9p/MxxXRv4dNCw2kXZ88+PAjVX1P2Zo84ttO5Ksptn/Pxphjc9NsvXkNM2J0OunNLsQOLq9KurVwIMD3d1RmfE3ur73YetCYPLKkmOAL07TprcHeCU5CPgvwKFV9cgMbebyXRhWfYPnwA6fYbudD08bstcB36+qO6dbOKr9N8txZfTfwWGeyV9KL+A3aLqCa4Fr29chwDuBd7ZtTgBuoLmy4wrg10dc4wvabV/X1nFKO3+wxgBn0VyJ8l1gbMQ1Ppfm4L/twLze9iFNaN0N/IxmzPftwI7AJcAtwD8CO7Rtx4CPDaz7NmBd+zpuhPWtoxmrnvwefqRt+0vAl2f7Loyovr9qv1traQ56z59aX/v+EJqrf24dZX3t/E9MfucG2vax/2Y6roz8O+jtPiRJnRyGkiR1MiwkSZ0MC0lSJ8NCktTJsJAkdTIspAUqyceSrOq7Dgl8Up40EkmW1ZM395MWHXsWWvKSfKG9GdwNkzeEa5+lcHV7w8JL2nnPS/J/2mcYrE3yxnb+wwOf9TtJPtFOfyLJR5J8B3h/ktVJvp3kmiTfSvLitt0WSc5Mcn37uf+pnX95krF2+sB23auTXNDeK4gk722fdbA2yZmj22taapb1XYC0ALytqu5L8gvAlUm+SHPPov2q6p+T7NC2+xOa25/8KsBMD5yZYiXNX5k/nmQbYN+qeizJ64A/B94IHA/sBuzdLtth8APae1/9d+B1VfWTJP8V+OMkZ9HcLmPPqqrM8JAjaVMwLCT4gySHt9O70By8v15V/wxQVZPPO3gdzT2KaOffP4fPvqCqHm+ntwU+mWQPmls4bDnwuR+ZHKYa2N6kV9M88Oab7W2xtgK+DTwI/BT4eJIvAV+a248rbTyHobSkJTmA5mD9mmpue34Nzf13Nsbgib/nTFn2k4Hp9wCXVdXLgDdM03bGMmkeYrN3+1pVVW9vw2U18FmaO8z+w0bWLc2ZYaGlblvg/qp6JMmeNL/FPwfYL8nu0DzvuG17MfCuyRUHhqHuSfKSJM+iGRaabVuTt4g+dmD+xcA72ttiM3UYiuaGia9N8sJ2+XOTvKg9b7FtNbdq/yPg1zbi55Y2imGhpe4fgGVJbgTeS3Ng3kAzFPW5JNfx5DMN/gzYvj0RfR3w79r5J9EMAX2L5g6mM3k/cEaSa3jqEPDHgB8Ca9vPfcvgSlW1gSZcPp1kLc0Q1J40z2T+UjvvG8Afb/yPL82Nl85KkjrZs5AkdTIsJEmdDAtJUifDQpLUybCQJHUyLCRJnQwLSVKn/w9zxfK51sNEWQAAAABJRU5ErkJggg==\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "#plot the graph\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "plt.plot(k_values, accuracies,'r+')\n",
+ "plt.xlabel('accuracies')\n",
+ "plt.ylabel('k')\n",
+ "plt.title('accuracies vs k')\n",
+ "# for k = 1, accuracy = 1 because the model has overfit"
+ ]
},
{
"cell_type": "code",
"execution_count": null,
- "metadata": {
- "collapsed": true
- },
+ "metadata": {},
"outputs": [],
"source": []
}
@@ -380,7 +603,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.5.3"
+ "version": "3.6.3"
},
"name": "Linear_Regression_and_K_Nearest_Neighbors_Exercises-ANSWERS",
"notebookId": 2125319687183902