{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [], "source": [ "# HIDDEN\n", "import matplotlib\n", "#matplotlib.use('Agg')\n", "from datascience import *\n", "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "from mpl_toolkits.mplot3d import Axes3D\n", "import numpy as np\n", "import math\n", "import scipy.stats as stats\n", "plt.style.use('fivethirtyeight')" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [], "source": [ "def standard_units(x):\n", " return (x - np.mean(x))/np.std(x)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [], "source": [ "\"\"\" REDONE STUFF\"\"\"\n", "\n", "def distance(pt1, pt2):\n", " return np.sqrt(np.sum((pt1 - pt2)**2))\n", "\n", "def distance_from_individual(attribute_table, i, p):\n", " \"\"\"Need to explain .row,\n", " and that we can make it an array here as it's all numerical\"\"\"\n", " return distance(np.array(attribute_table.row(i)), p)\n", "\n", "def table_with_dists2(training, p):\n", " \"\"\"Redone to resemble other such code in the course.\"\"\"\n", " dists = make_array()\n", " attributes = training.drop('Class')\n", " for i in np.arange(training.num_rows):\n", " dists = np.append(dists, distance_from_individual(attributes, i , p))\n", " return training.with_column('Distance', dists)\n", "\n", "def closest(training, p, k):\n", " with_dists = table_with_dists2(training, p)\n", " sorted_by_dist = with_dists.sort('Distance')\n", " topk = sorted_by_dist.take(np.arange(k))\n", " return topk\n", "\n", "def majority(topkclasses):\n", " ones = topkclasses.where('Class', are.equal_to(1)).num_rows\n", " zeros = topkclasses.where('Class', are.equal_to(0)).num_rows\n", " if ones > zeros:\n", " return 1\n", " else:\n", " return 0\n", "\n", "def classify(training, p, k):\n", " closestk = closest(training, p, k)\n", " topkclasses = closestk.select('Class')\n", " return majority(topkclasses)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "data": { "text/html": [ "
Age | Blood Pressure | Specific Gravity | Albumin | Sugar | Red Blood Cells | Pus Cell | Pus Cell clumps | Bacteria | Glucose | Blood Urea | Serum Creatinine | Sodium | Potassium | Hemoglobin | Packed Cell Volume | White Blood Cell Count | Red Blood Cell Count | Hypertension | Diabetes Mellitus | Coronary Artery Disease | Appetite | Pedal Edema | Anemia | Class | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
48 | 70 | 1.005 | 4 | 0 | normal | abnormal | present | notpresent | 117 | 56 | 3.8 | 111 | 2.5 | 11.2 | 32 | 6700 | 3.9 | yes | no | no | poor | yes | yes | 1 | \n", "
53 | 90 | 1.02 | 2 | 0 | abnormal | abnormal | present | notpresent | 70 | 107 | 7.2 | 114 | 3.7 | 9.5 | 29 | 12100 | 3.7 | yes | yes | no | poor | no | yes | 1 | \n", "
63 | 70 | 1.01 | 3 | 0 | abnormal | abnormal | present | notpresent | 380 | 60 | 2.7 | 131 | 4.2 | 10.8 | 32 | 4500 | 3.8 | yes | yes | no | poor | yes | no | 1 | \n", "
68 | 80 | 1.01 | 3 | 2 | normal | abnormal | present | present | 157 | 90 | 4.1 | 130 | 6.4 | 5.6 | 16 | 11000 | 2.6 | yes | yes | yes | poor | yes | no | 1 | \n", "
61 | 80 | 1.015 | 2 | 0 | abnormal | abnormal | notpresent | notpresent | 173 | 148 | 3.9 | 135 | 5.2 | 7.7 | 24 | 9200 | 3.2 | yes | yes | yes | poor | yes | yes | 1 | \n", "
48 | 80 | 1.025 | 4 | 0 | normal | abnormal | notpresent | notpresent | 95 | 163 | 7.7 | 136 | 3.8 | 9.8 | 32 | 6900 | 3.4 | yes | no | no | good | no | yes | 1 | \n", "
69 | 70 | 1.01 | 3 | 4 | normal | abnormal | notpresent | notpresent | 264 | 87 | 2.7 | 130 | 4 | 12.5 | 37 | 9600 | 4.1 | yes | yes | yes | good | yes | no | 1 | \n", "
73 | 70 | 1.005 | 0 | 0 | normal | normal | notpresent | notpresent | 70 | 32 | 0.9 | 125 | 4 | 10 | 29 | 18900 | 3.5 | yes | yes | no | good | yes | no | 1 | \n", "
73 | 80 | 1.02 | 2 | 0 | abnormal | abnormal | notpresent | notpresent | 253 | 142 | 4.6 | 138 | 5.8 | 10.5 | 33 | 7200 | 4.3 | yes | yes | yes | good | no | no | 1 | \n", "
46 | 60 | 1.01 | 1 | 0 | normal | normal | notpresent | notpresent | 163 | 92 | 3.3 | 141 | 4 | 9.8 | 28 | 14600 | 3.2 | yes | yes | no | good | no | no | 1 | \n", "
... (148 rows omitted)
\n", " \n", "... (148 rows omitted)
\n", " \n", "... (148 rows omitted)
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ckd_new.scatter('Hemoglobin', 'Glucose', colors='Color')" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "### Closest Point ###" ] }, { "cell_type": "code", "execution_count": 56, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [], "source": [ "def show_closest(point):\n", " \"\"\"point = [x,y] \n", " gives the coordinates of a new point\n", " shown in red\"\"\"\n", " \n", " HemoGl = ckd_new.drop('White Blood Cell Count', 'Color')\n", " t = closest(HemoGl, point, 1)\n", " x_closest = t.row(0)[1]\n", " y_closest = t.row(0)[2]\n", " ckd_new.scatter('Hemoglobin', 'Glucose', colors='Color')\n", " plt.scatter(point[0], point[1], color='red', s=30)\n", " plt.plot([point[0], x_closest], [point[1], y_closest], color='k', lw=2);" ] }, { "cell_type": "code", "execution_count": 77, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "