{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "tags": [ "remove_input" ] }, "outputs": [], "source": [ "import matplotlib\n", "#matplotlib.use('Agg')\n", "path_data = '../../../../data/'\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": { "tags": [ "remove_input" ] }, "outputs": [], "source": [ "\n", "def distance(point1, point2):\n", " \"\"\"Returns the distance between point1 and point2\n", " where each argument is an array \n", " consisting of the coordinates of the point\"\"\"\n", " return np.sqrt(np.sum((point1 - point2)**2))\n", "\n", "def all_distances(training, new_point):\n", " \"\"\"Returns an array of distances\n", " between each point in the training set\n", " and the new point (which is a row of attributes)\"\"\"\n", " attributes = training.drop('Class')\n", " def distance_from_point(row):\n", " return distance(np.array(new_point), np.array(row))\n", " return attributes.apply(distance_from_point)\n", "\n", "def table_with_distances(training, new_point):\n", " \"\"\"Augments the training table \n", " with a column of distances from new_point\"\"\"\n", " return training.with_column('Distance', all_distances(training, new_point))\n", "\n", "def closest(training, new_point, k):\n", " \"\"\"Returns a table of the k rows of the augmented table\n", " corresponding to the k smallest distances\"\"\"\n", " with_dists = table_with_distances(training, new_point)\n", " sorted_by_distance = with_dists.sort('Distance')\n", " topk = sorted_by_distance.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, new_point, k):\n", " closestk = closest(training, new_point, k)\n", " topkclasses = closestk.select('Class')\n", " return majority(topkclasses)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "tags": [ "remove_input" ] }, "outputs": [], "source": [ "\n", "wine = Table.read_table(path_data + 'wine.csv')\n", "\n", "# For converting Class to binary\n", "\n", "def is_one(x):\n", " if x == 1:\n", " return 1\n", " else:\n", " return 0\n", " \n", "wine = wine.with_column('Class', wine.apply(is_one, 0))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### The Accuracy of the Classifier ###\n", "To see how well our classifier does, we might put 50% of the data into the training set and the other 50% into the test set. Basically, we are setting aside some data for later use, so we can use it to measure the accuracy of our classifier. We've been calling that the *test set*. Sometimes people will call the data that you set aside for testing a *hold-out set*, and they'll call this strategy for estimating accuracy the *hold-out method*.\n", "\n", "Note that this approach requires great discipline. Before you start applying machine learning methods, you have to take some of your data and set it aside for testing. You must avoid using the test set for developing your classifier: you shouldn't use it to help train your classifier or tweak its settings or for brainstorming ways to improve your classifier. Instead, you should use it only once, at the very end, after you've finalized your classifier, when you want an unbiased estimate of its accuracy." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Measuring the Accuracy of Our Wine Classifier ###\n", "OK, so let's apply the hold-out method to evaluate the effectiveness of the $k$-nearest neighbor classifier for identifying wines. The data set has 178 wines, so we'll randomly permute the data set and put 89 of them in the training set and the remaining 89 in the test set." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "shuffled_wine = wine.sample(with_replacement=False) \n", "training_set = shuffled_wine.take(np.arange(89))\n", "test_set = shuffled_wine.take(np.arange(89, 178))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We'll train the classifier using the 89 wines in the training set, and evaluate how well it performs on the test set. To make our lives easier, we'll write a function to evaluate a classifier on every wine in the test set:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "def count_zero(array):\n", " \"\"\"Counts the number of 0's in an array\"\"\"\n", " return len(array) - np.count_nonzero(array)\n", "\n", "def count_equal(array1, array2):\n", " \"\"\"Takes two numerical arrays of equal length\n", " and counts the indices where the two are equal\"\"\"\n", " return count_zero(array1 - array2)\n", "\n", "def evaluate_accuracy(training, test, k):\n", " test_attributes = test.drop('Class')\n", " def classify_testrow(row):\n", " return classify(training, row, k)\n", " c = test_attributes.apply(classify_testrow)\n", " return count_equal(c, test.column('Class')) / test.num_rows" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now for the grand reveal -- let's see how we did. We'll arbitrarily use $k=5$." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.898876404494382" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "evaluate_accuracy(training_set, test_set, 5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The accuracy rate isn't bad at all for a simple classifier." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Breast Cancer Diagnosis ###\n", "\n", "Now I want to do an example based on diagnosing breast cancer. I was inspired by Brittany Wenger, who won the Google national science fair in 2012 a 17-year old high school student. Here's Brittany:\n", "\n", "![Brittany Wenger](http://i.huffpost.com/gen/701499/thumbs/o-GSF83-570.jpg?3)\n", "\n", "Brittany's [science fair project](https://sites.google.com/a/googlesciencefair.com/science-fair-2012-project-64a91af142a459cfb486ed5cb05f803b2eb41354-1333130785-87/home) was to build a classification algorithm to diagnose breast cancer. She won grand prize for building an algorithm whose accuracy was almost 99%. \n", "\n", "Let's see how well we can do, with the ideas we've learned in this course.\n", "\n", "So, let me tell you a little bit about the data set. Basically, if a woman has a lump in her breast, the doctors may want to take a biopsy to see if it is cancerous. There are several different procedures for doing that. Brittany focused on fine needle aspiration (FNA), because it is less invasive than the alternatives. The doctor gets a sample of the mass, puts it under a microscope, takes a picture, and a trained lab tech analyzes the picture to determine whether it is cancer or not. We get a picture like one of the following:\n", "\n", "![benign](../../../images/benign.png)\n", "\n", "![cancer](../../../images/malignant.png)\n", "\n", "Unfortunately, distinguishing between benign vs malignant can be tricky. So, researchers have studied the use of machine learning to help with this task. The idea is that we'll ask the lab tech to analyze the image and compute various attributes: things like the typical size of a cell, how much variation there is among the cell sizes, and so on. Then, we'll try to use this information to predict (classify) whether the sample is malignant or not. We have a training set of past samples from women where the correct diagnosis is known, and we'll hope that our machine learning algorithm can use those to learn how to predict the diagnosis for future samples.\n", "\n", "We end up with the following data set. For the \"Class\" column, 1 means malignant (cancer); 0 means benign (not cancer)." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Clump Thickness Uniformity of Cell Size Uniformity of Cell Shape Marginal Adhesion Single Epithelial Cell Size Bare Nuclei Bland Chromatin Normal Nucleoli Mitoses Class
5 1 1 1 2 1 3 1 1 0
5 4 4 5 7 10 3 2 1 0
3 1 1 1 2 2 3 1 1 0
6 8 8 1 3 4 3 7 1 0
4 1 1 3 2 1 3 1 1 0
8 10 10 8 7 10 9 7 1 1
1 1 1 1 2 10 3 1 1 0
2 1 2 1 2 1 3 1 1 0
2 1 1 1 2 1 1 1 5 0
4 2 1 1 2 1 2 1 1 0
\n", "

... (673 rows omitted)

" ], "text/plain": [ "Clump Thickness | Uniformity of Cell Size | Uniformity of Cell Shape | Marginal Adhesion | Single Epithelial Cell Size | Bare Nuclei | Bland Chromatin | Normal Nucleoli | Mitoses | Class\n", "5 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | 0\n", "5 | 4 | 4 | 5 | 7 | 10 | 3 | 2 | 1 | 0\n", "3 | 1 | 1 | 1 | 2 | 2 | 3 | 1 | 1 | 0\n", "6 | 8 | 8 | 1 | 3 | 4 | 3 | 7 | 1 | 0\n", "4 | 1 | 1 | 3 | 2 | 1 | 3 | 1 | 1 | 0\n", "8 | 10 | 10 | 8 | 7 | 10 | 9 | 7 | 1 | 1\n", "1 | 1 | 1 | 1 | 2 | 10 | 3 | 1 | 1 | 0\n", "2 | 1 | 2 | 1 | 2 | 1 | 3 | 1 | 1 | 0\n", "2 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 5 | 0\n", "4 | 2 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 0\n", "... (673 rows omitted)" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "patients = Table.read_table(path_data + 'breast-cancer.csv').drop('ID')\n", "patients" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So we have 9 different attributes. I don't know how to make a 9-dimensional scatterplot of all of them, so I'm going to pick two and plot them:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "color_table = Table().with_columns(\n", " 'Class', make_array(1, 0),\n", " 'Color', make_array('darkblue', 'gold')\n", ")\n", "patients_with_colors = patients.join('Class', color_table)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "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5nG7QznJyckUFBQQExNDeHi469/bb79tdjQRERGpYW63x8Rms5kdQUREREzidntMREREpPZSYyIiIiJuQ42JiIiIuA01JiIiIuI21JiIiIiI21BjIiIiIm5DjYmIiIi4DTUmIiIi4jbUmIiIiIjbUGMiIiIibkONiYiIiLgNNSYiIiLiNtSYiIiIiNtQYyIiIiJuQ42JiIiIuA01JiIiIuI21JiIiIiI21BjIiIiIm5DjYmIiIi4DTUmIiIi4jY8zA5gNN8TfVzdWEH956D5q4bVLvn+Q1I/fJ8cWx26tC7jqZiPsDRqZFj9uiefx9Nx7mYWj19yI2yVYbXFRGV5+FxYTB37D5T6dudGUJzZiUREKlWr9pj4nuiDFbD8499DP/wX2NINqe3MzWXByg2kfePFX8578P7eumzZHGtIbQDvzPF4Oc651l637BuspxcaVl9M4ijD78xkPIq/pU7pBbzzt+N9caXZqUREKlWrGpOfLtYC+OQkGVK78PLv+S7Hiqf15m1vTziUZdwOK6+y4xXGfK7/0bD6Yo46Jaew2G1g+cdPv8WKR9ERc0OJiNxBrWpMbsdhDTCkjndAV6x1nK7bTid4WA0pfbPebccMDCCmcFgb4Pzxr7nTCRZ930XEfdWqxqSozsPlXqCdQEnbDwyp7RUcw3O9Sii1Q0GxBasVxg4sNqQ2QGGzpRXWfq3lRsPqi0m8ginzfRicdnDcAIuV4uBXzE4lIlKpWnXyqz18OQV/T6VebjIOayDX231kaP2nx+6lV8ehXM7Lo1nLX+IftcK44g16UeCZQr2zr+HESnHLd6FeY+Pqi2mut3iDG0XHqHPjPGX1uoNXkNmRREQqVasaEwCCRlIUNNK08oG/2oYtMxP/sDDji9drRVH7bcbXFdM56kXhqBdldgwRkbuqVYdyRERExL2pMRERERG3ocZERERE3IYaExEREXEbakxERETEbagxEREREbehxkRERETchhoTERERcRsWm812u49RERERETGc9piIiIiI21BjIiIiIm5DjYmIiIi4DTUmIiIi4jbUmIiIiIjbUGNikKSkJPr160dISAht2rQhNjaWb7/91uxYpkhKSsLf359p06aZHcUQly5dYvz48bRp04bg4GB69OhBRkaG2bFqnN1uZ8GCBXTq1Ing4GA6derEggULKCsrMztajThw4ADDhw+n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HyArK4uDBw/eV83u3btTp04dtm/fXm5827ZtVdp+ypQp5OXlMW/evNvef+bMGY4fP35f2W6nd+/e7N69m4KCAtdYQUEBu3btuutJw1VV1ef4ViNWXFxcLXVFRGqC9phIlR07dozc3FycTieXLl1i7dq15OfnM27cuEq3efzxx/Hw8GD8+PFMnjyZS5cusXjxYlq0aIHD4bjnDGFhYQwbNoxFixbhcDjo2rUr+/bt4/PPP6/S9r1792bhwoXMmTOHkydP8vzzz9OiRQtsNht/+tOf2LRpE2vXrq1wyfD9mjZtGmlpacTExPDqq69isVhYuXIlxcXFTJ8+vVpqVPU5btu2LR4eHqSkpBAQEIC3tzdt27Z1XfYtIuIO1JhIlb3wwguurxs3bkz79u3ZunUrTzzxRKXbtG/fnrVr17Jo0SJGjBhB69atmT9/Pnv27CEjI+O+cqxYsQI/Pz/efvttSktLefTRR0lOTmbQoEFV2n7ixIl069aN1atXM3fuXHJzc/Hz86NLly4sX76cwYMH31eu2+nYsSOffPIJb775JhMnTsTpdNK9e3c+/fRToqKiqqVGVZ/jhg0bsnTpUlasWEF0dDR2u52dO3fy6KOPVksOEZHqYLHZbE6zQ4iIiIiAzjERERERN6LGRERERNyGGhMRERFxG2pMRERExG2oMRERERG3ocZERERE3IYaExEREXEbakxERETEbagxEREREbfxfyvtoO4FycOcAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "patients_with_colors.scatter('Bland Chromatin', 'Single Epithelial Cell Size', group='Color')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Oops. That plot is utterly misleading, because there are a bunch of points that have identical values for both the x- and y-coordinates. To make it easier to see all the data points, I'm going to add a little bit of random jitter to the x- and y-values. Here's how that looks:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "tags": [ "remove_input" ] }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "\n", "def randomize_column(a):\n", " return a + np.random.normal(0.0, 0.09, size=len(a))\n", "Table().with_columns(\n", " 'Bland Chromatin (jittered)', \n", " randomize_column(patients.column('Bland Chromatin')),\n", " 'Single Epithelial Cell Size (jittered)', \n", " randomize_column(patients.column('Single Epithelial Cell Size')),\n", " 'Class', patients.column('Class')\n", " ).join('Class', color_table).scatter(1, 2, group='Color')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For instance, you can see there are lots of samples with chromatin = 2 and epithelial cell size = 2; all non-cancerous.\n", "\n", "Keep in mind that the jittering is just for visualization purposes, to make it easier to get a feeling for the data. We're ready to work with the data now, and we'll use the original (unjittered) data." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First we'll create a training set and a test set. The data set has 683 patients, so we'll randomly permute the data set and put 342 of them in the training set and the remaining 341 in the test set." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "shuffled_patients = patients.sample(683, with_replacement=False) \n", "training_set = shuffled_patients.take(np.arange(342))\n", "test_set = shuffled_patients.take(np.arange(342, 683))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's stick with 5 nearest neighbors, and see how well our classifier does." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.967741935483871" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "evaluate_accuracy(training_set, test_set, 5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Over 96% accuracy. Not bad! Once again, pretty darn good for such a simple technique.\n", "\n", "As a footnote, you might have noticed that Brittany Wenger did even better. What techniques did she use? One key innovation is that she incorporated a confidence score into her results: her algorithm had a way to determine when it was not able to make a confident prediction, and for those patients, it didn't even try to predict their diagnosis. Her algorithm was 99% accurate on the patients where it made a prediction -- so that extension seemed to help quite a bit." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "anaconda-cloud": {}, "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.3" } }, "nbformat": 4, "nbformat_minor": 1 }