{ "cells": [ { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "

Iris Plant Data Modeling

\n", "

by Wilfred Morgan

" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Problem Description:\n", "Predict the flower class based on available attributes." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [], "source": [ "from IPython.display import IFrame" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Flower Classification\n", "IFrame('http://www.spataru.at/iris-dataset-svm/iris_types.jpg', width=1280, height=300)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Problem assumptions:\n", "* Data is accurate\n", "* No missing values\n", "* Data is or can be in a format to be used for machine learning." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Similar problems:\n", "* Classifying other floral species\n", "* Classifying cancer cells" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Basic Information\n", "* Number of observations: **150**\n", "* Number of features: **4**\n", "* Data types of features: **Numerical**\n", "* Target variable: **class** *(Categorical)*" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "skip" } }, "source": [ "### Peek at the Data" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [], "source": [ "# Import Libaries\n", "import pandas as pd\n", "import numpy as np" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [], "source": [ "# Import Data\n", "data_location = \"/Users/wmemorgan/Google Drive/Computer_Data_Science_Lab/iris_data_modeling/data/02_prepared_data/iris.data\" \n", "names = ['sepal-length', 'sepal-width', 'petal-length', 'petal-width', 'class']\n", "data = pd.read_csv(data_location, names=names)" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "slideshow": { "slide_type": "-" } }, "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
sepal-lengthsepal-widthpetal-lengthpetal-widthclass
05.13.51.40.2Iris-setosa
14.93.01.40.2Iris-setosa
24.73.21.30.2Iris-setosa
34.63.11.50.2Iris-setosa
45.03.61.40.2Iris-setosa
\n", "
" ], "text/plain": [ " sepal-length sepal-width petal-length petal-width class\n", "0 5.1 3.5 1.4 0.2 Iris-setosa\n", "1 4.9 3.0 1.4 0.2 Iris-setosa\n", "2 4.7 3.2 1.3 0.2 Iris-setosa\n", "3 4.6 3.1 1.5 0.2 Iris-setosa\n", "4 5.0 3.6 1.4 0.2 Iris-setosa" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data.head()" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Class Distribution" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "class\n", "Iris-setosa 50\n", "Iris-versicolor 50\n", "Iris-virginica 50\n", "dtype: int64\n" ] } ], "source": [ "print(data.groupby('class').size())" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Other Observations\n", "* No missing data or corrupted data\n", "* Sepal length and petal length variables had the strongest correlation with class." ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "slideshow": { "slide_type": "notes" } }, "outputs": [], "source": [ "# Import Libaries\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "%matplotlib inline " ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "image/png": "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\nMzOzKvwfmqCSF3w+/zYAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "f, axes = plt.subplots(2, 2, figsize=(12,8)) #More than one dimension\n", "\n", "bp1 = sns.boxplot(data=data, x=\"class\", y=\"sepal-length\", ax=axes[0,0])\n", "bp2 = sns.boxplot(data=data, x=\"class\", y=\"sepal-width\", ax=axes[0,1])\n", "bp3 = sns.boxplot(data=data, x=\"class\", y=\"petal-length\", ax=axes[1,0])\n", "bp4 = sns.boxplot(data=data, x=\"class\", y=\"petal-width\", ax=axes[1,1])" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Model Evaluation and Selection\n", "* Selected a mix of simple linear (LR and LDA), nonlinear (KNN, CART, NB and SVM) algorithms. \n", "* Used k-fold cross-validation (CV) procedure to evaluate the accuracy score of each algorithm.\n", "* Identified k-Nearest Neighbor (k-NN) as the best algorithm to use for modeling this dataset. \n", "* **NOTE: Used default parameters for KNNClassifier module**" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [], "source": [ "# Test options and evaluation metric\n", "seed = 7\n", "scoring = 'accuracy'" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "slideshow": { "slide_type": "notes" } }, "outputs": [], "source": [ "# Import library\n", "from sklearn.model_selection import train_test_split, KFold, cross_val_score\n", "\n", "# Assign features and output\n", "X = data.drop('class',axis=1)\n", "y = data['class']\n", "test_size = 0.2\n", "seed = 7" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [], "source": [ "# Create training and test datasets\n", "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = test_size, random_state=seed)" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "slideshow": { "slide_type": "notes" } }, "outputs": [], "source": [ "# Import Algorithm Libraries\n", "from sklearn.linear_model import LogisticRegression\n", "from sklearn.discriminant_analysis import LinearDiscriminantAnalysis\n", "from sklearn.neighbors import KNeighborsClassifier\n", "from sklearn.tree import DecisionTreeClassifier\n", "from sklearn.naive_bayes import GaussianNB\n", "from sklearn.svm import SVC\n", "from sklearn.model_selection import KFold, cross_val_score" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Algorithm Evaluation" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "LR: 0.966667 (0.040825)\n", "LDA: 0.975000 (0.038188)\n", "KNN: 0.983333 (0.033333)\n", "CART: 0.975000 (0.038188)\n", "NB: 0.975000 (0.053359)\n", "SVM: 0.991667 (0.025000)\n" ] } ], "source": [ "# Spot Check Algorithms\n", "models = []\n", "models.append(('LR', LogisticRegression()))\n", "models.append(('LDA', LinearDiscriminantAnalysis()))\n", "models.append(('KNN', KNeighborsClassifier()))\n", "models.append(('CART', DecisionTreeClassifier()))\n", "models.append(('NB', GaussianNB()))\n", "models.append(('SVM', SVC()))\n", "# evaluate each model in turn\n", "results = []\n", "names = []\n", "for name, model in models:\n", " kfold = KFold(n_splits=10, random_state=seed)\n", " cv_results = cross_val_score(model, X_train, y_train, cv=kfold, scoring=scoring)\n", " results.append(cv_results)\n", " names.append(name)\n", " msg = \"%s: %f (%f)\" % (name, cv_results.mean(), cv_results.std())\n", " print(msg)" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYQAAAEVCAYAAADgh5I1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAHttJREFUeJzt3X+cVnWd9/HX20Fmyp8oZAYobFHx\nQ8OcrG1VNDcjt/Vnq5Al+mCjum9oH1p7q+GuRLHWPmItXZPbSgmTQWpzpTu90VuwpLWWYUUUCUX6\nwYiuY/gbkR997j/Od+xwcTFzZuaa65oZ3s/H43pwne/3e875fucarvd1vudcZxQRmJmZ7VfrDpiZ\nWe/gQDAzM8CBYGZmiQPBzMwAB4KZmSUOBDMzAxwIViGS5kv6ag9t+0JJ97RTf4qklp7Yd18n6UuS\nvlvrfljf4ECwTpF0v6TnJdVXa58RcVtEnJ7rQ0h6R7X2r8znJT0q6VVJLZJ+KOmYavWhqyLinyLi\nb2vdD+sbHAhWmKQRwElAAGdWaZ8DqrGfDnwL+Dvg88BhwDuBfwf+qpad6kgv+dlZH+JAsM64CPgl\nMB+Y0l5DSf9L0tOSNkv62/ynekmHSFogqVXS7yRdJWm/VHexpF9IulbSFmBWKluR6n+edvGwpFck\nXZDb5xckPZv2e0mufL6kb0u6O63zC0lvlfTNdLTza0nH7WUco4D/CUyOiGUR8XpEbE1HLV/r5Hhe\nkLRR0gdT+abU3yklfZ0n6V5JL0v6maSjc/XfSuu9JGmVpJNydbMk/UjSDyS9BFycyn6Q6htS3R9S\nX1ZKOiLVvU3SEklbJG2Q9OmS7S5OY3xZ0lpJje29/tY3ORCsMy4CbkuPj7S9mZSSNBG4DPhL4B3A\nhJIm1wOHAH+W6i4CLsnVvx/YCLwFmJNfMSJOTk/fExEHRsTtafmtaZtDganADZIG5VY9H7gKGAy8\nDjwI/Fda/hHwL3sZ82lAS0T8517qi45nDXA4sBBYBLyP7GfzSeBfJR2Ya38h8JXUt9VkP+82K4Hx\nZEcqC4EfSmrI1Z+VxnNoyXqQhfghwPDUl88Cr6W6JqAFeBvwceCfJJ2WW/fM1O9DgSXAv7bz87A+\nyoFghUg6ETgaWBwRq4AngU/spfn5wC0RsTYitgJfzm2nDrgAuDIiXo6I3wJzgU/l1t8cEddHxM6I\neI1idgCzI2JHRNwFvAK8K1d/R0SsiohtwB3AtohYEBG7gNuBskcIZG+cT+9tpwXH85uIuCW3r+Gp\nr69HxD3AdrJwaPPTiPh5RLwOzAT+XNJwgIj4QUT8If1s5gL1JeN8MCL+PSL+WOZntyON5x0RsSv9\nPF5K2z4RuDwitkXEauC7JWNYERF3pTHcCrxnbz8T67scCFbUFOCeiHguLS9k79NGbwM25ZbzzwcD\nA4Hf5cp+R/bJvlz7ov4QETtzy1uB/Kfu/849f63Mcr7tbtsFjmxnv0XGU7ovIqK9/b8x/oh4BdhC\n9jNtmxZbJ+lFSS+QfeIfXG7dMm4FlgKL0lTeP0vaP217S0S83M4Ynsk93wo0+BxF/+NAsA5JehPZ\np/4Jkp6R9AxwKfAeSeU+KT4NDMstD889f47sk+rRubKjgKdyy73pFrz3AcPamTMvMp7OeuPnlaaS\nDgM2p/MFl5O9FoMi4lDgRUC5dff6s0tHT1+OiDHAB4GPkU1vbQYOk3RQBcdgfZADwYo4G9gFjCGb\nvx4PjAYeIHtDKbUYuETSaElvBv6xrSJNOSwG5kg6KJ0wvQz4QSf6899k8/U9LiKeAL4NNCn7vsPA\ndHJ2kqQrKjSeUmdIOlHSQLJzCb+KiE3AQcBOoBUYIOkfgYOLblTSqZKOSdNcL5EF2a607f8Arklj\nO5bsPEzpOQjr5xwIVsQUsnMCv4+IZ9oeZCcWLyydOoiIu4HrgOXABrITuJCdzAWYAbxKduJ4Bdn0\n082d6M8s4PvpSpnzuzimzvg82VhvAF4gO39yDvCTVN/d8ZRaCFxNNlV0PNlJZsime+4GHieb0tlG\n56bX3kp2wvklYB3wM/4UXJOBEWRHC3cAV0fEvd0Yg/VB8h/IsZ4maTTwKFBfMs9vJSTNJ7uq6apa\n98X2PT5CsB4h6Zw0vTII+DrwE4eBWe/mQLCe8hmyue4nyc4/fK623TGzjnjKyMzMAB8hmJlZ4kAw\nMzPAgWBmZokDwczMAAeCmZklDgQzMwMcCGZmljgQzMwMcCCYmVniQDAzM8CBYGZmiQPBzMwAB4KZ\nmSUOBDMzA2BAx016j8GDB8eIESNq3Q0zsz5l1apVz0XEkI7a9alAGDFiBM3NzbXuhplZnyLpd0Xa\necrIzMwAB4KZmSUOBDMzAxwIZmaWOBDMzAwoGAiSbpb0rKRH91IvSddJ2iBpjaT35uqmSHoiPabk\nyo+X9Eha5zpJ6v5wzMysq4oeIcwHJrZT/1FgVHpMA24EkHQYcDXwfuAE4GpJg9I6N6a2beu1t30z\nM+thhQIhIn4ObGmnyVnAgsj8EjhU0pHAR4B7I2JLRDwP3AtMTHUHR8SDERHAAuDsbo3EzMy6pVJf\nTBsKbMott6Sy9spbypTvQdI0siMJjjrqqK71btYhXVuvO2a9WMV9VXl8/Xls4PFVdF8eX+X32XPj\nq1QglJv/jy6U71kYcRNwE0BjY2PZNh127ssvkR2IVIckYlbVdlfV8VV7bFX9z10D/f13s7+/fv1t\nfJW6yqgFGJ5bHgZs7qB8WJlyMzOrkUoFwhLgonS10QeAFyPiaWApcLqkQelk8unA0lT3sqQPpKuL\nLgLurFBfzMysCwpNGUlqAk4BBktqIbtyaH+AiJgH3AWcAWwAtgKXpLotkr4CrEybmh0RbSenP0d2\n9dKbgLvTw8zMakTVnL/srsbGxujK3U4lVX+etp/ur9pj6+/68++K9R6SVkVEY0ft/E1lMzMDHAhm\nZpY4EMzMDHAgmJlZ4kAwMzPAgWBmZokDwczMAAeCmZklDgQzMwMcCGZmljgQzMwMcCCYmVniQDAz\nM8CBYGZmiQPBzMwAB4KZmSUOBDMzAxwIZmaWOBDMzAxwIJiZWeJAMDMzoGAgSJooab2kDZKuKFN/\ntKT7JK2RdL+kYan8VEmrc49tks5OdfMl/SZXN76yQzMzs84Y0FEDSXXADcCHgRZgpaQlEfFYrtk3\ngAUR8X1JHwKuAT4VEcuB8Wk7hwEbgHty6/19RPyoMkMxM7PuKHKEcAKwISI2RsR2YBFwVkmbMcB9\n6fnyMvUAHwfujoitXe2smZn1nCKBMBTYlFtuSWV5DwPnpefnAAdJOrykzSSgqaRsTppmulZSfbmd\nS5omqVlSc2tra4HumplZVxQJBJUpi5LlLwITJD0ETACeAna+sQHpSOAYYGlunSuBdwPvAw4DLi+3\n84i4KSIaI6JxyJAhBbprZmZd0eE5BLIjguG55WHA5nyDiNgMnAsg6UDgvIh4MdfkfOCOiNiRW+fp\n9PR1SbeQhYqZmdVIkSOElcAoSSMlDSSb+lmSbyBpsKS2bV0J3FyyjcmUTBelowYkCTgbeLTz3Tcz\ns0rpMBAiYicwnWy6Zx2wOCLWSpot6czU7BRgvaTHgSOAOW3rSxpBdoTxs5JN3ybpEeARYDDw1W6N\nxMzMukURpacDeq/GxsZobm7u9HqSqOY4+/P+qj22/q4//65Y7yFpVUQ0dtTO31Q2MzPAgWBmZokD\nwczMAAeCmZklDgQzMwMcCGZmljgQzMwMcCCYmVniQDAzM8CBYGZmiQPBzMwAB4KZmSUOBDMzAxwI\nZmaWOBDMzAxwIJiZWeJAMDMzwIFgZmaJA8HMzAAHgpmZJYUCQdJESeslbZB0RZn6oyXdJ2mNpPsl\nDcvV7ZK0Oj2W5MpHSvqVpCck3S5pYGWGZGZmXdFhIEiqA24APgqMASZLGlPS7BvAgog4FpgNXJOr\ney0ixqfHmbnyrwPXRsQo4HlgajfGYWZm3VTkCOEEYENEbIyI7cAi4KySNmOA+9Lz5WXqdyNJwIeA\nH6Wi7wNnF+20mZlVXpFAGApsyi23pLK8h4Hz0vNzgIMkHZ6WGyQ1S/qlpLY3/cOBFyJiZzvbNDOz\nKioSCCpTFiXLXwQmSHoImAA8BbS92R8VEY3AJ4BvSnp7wW1mO5empUBpbm1tLdBdMzPriiKB0AIM\nzy0PAzbnG0TE5og4NyKOA2amshfb6tK/G4H7geOA54BDJQ3Y2zZz274pIhojonHIkCFFx2VmZp1U\nJBBWAqPSVUEDgUnAknwDSYMltW3rSuDmVD5IUn1bG+AvgMciIsjONXw8rTMFuLO7gzEzs67rMBDS\nPP90YCmwDlgcEWslzZbUdtXQKcB6SY8DRwBzUvlooFnSw2QB8LWIeCzVXQ5cJmkD2TmF71VoTGZm\n1gXKPqz3DY2NjdHc3Nzp9SRRzXH25/1Ve2z9XX/+XbHeQ9KqdC63Xf6mspmZAQ4EMzNLHAhmZgY4\nEMzMLHEgmJkZ4EAwM7PEgWBmZoADwczMEgeCmZkBMKDjJtYXZH9ioucNGjSoKvvZl1TrtQO/ftY+\nB0I/0NVbEfg2BrXn1856E08ZmZkZ4EAwM7PEgWBmZoADwczMEgeCmZkBDgQzM0scCGZmBjgQzMws\ncSCYmRngQDAzs6RQIEiaKGm9pA2SrihTf7Sk+yStkXS/pGGpfLykByWtTXUX5NaZL+k3klanx/jK\nDcvMzDqrw0CQVAfcAHwUGANMljSmpNk3gAURcSwwG7gmlW8FLoqIscBE4JuSDs2t9/cRMT49Vndz\nLGZm1g1FjhBOADZExMaI2A4sAs4qaTMGuC89X95WHxGPR8QT6flm4FlgSCU6bmZmlVUkEIYCm3LL\nLaks72HgvPT8HOAgSYfnG0g6ARgIPJkrnpOmkq6VVF9u55KmSWqW1Nza2lqgu2Zm1hVFAqHczdpL\n77v7RWCCpIeACcBTwM43NiAdCdwKXBIRf0zFVwLvBt4HHAZcXm7nEXFTRDRGROOQIT64MDPrKUX+\nHkILMDy3PAzYnG+QpoPOBZB0IHBeRLyYlg8GfgpcFRG/zK3zdHr6uqRbyELFzMxqpMgRwkpglKSR\nkgYCk4Al+QaSBktq29aVwM2pfCBwB9kJ5x+WrHNk+lfA2cCj3RmImZl1T4eBEBE7genAUmAdsDgi\n1kqaLenM1OwUYL2kx4EjgDmp/HzgZODiMpeX3ibpEeARYDDw1UoNyszMOk996c/wNTY2RnNzc6fX\nq/afG+wrf96wr/TT9uTXzjpD0qqIaOyonb+pbGZmgAPB+pkZM2bQ0NCAJBoaGpgxY0atu2Sd0NTU\nxLhx46irq2PcuHE0NTXVuksV1evHFxF95nH88cdHV2TDrJ5q76+r+ko/i5o+fXoMGDAg5s6dG6++\n+mrMnTs3BgwYENOnT6911yquv712ERELFy6MkSNHxrJly2L79u2xbNmyGDlyZCxcuLDWXauIWo4P\naI4C77E1f5PvzMOBUFl9pZ9F1dfXx9y5c3crmzt3btTX19eoRz2nv712ERFjx46NZcuW7Va2bNmy\nGDt2bI16VFm1HF/RQNhnTipX06BBg9iyZUtV97k33Rl7X/rdgGysr776Km9+85vfKNu6dSsHHHBA\nnxsL7FuvHUBdXR3btm1j//33f6Nsx44dNDQ0sGvXrhr2rDJqOT6fVM4pkoyVfPSWMIDujb2vqa+v\nZ968ebuVzZs3j/r6sndF6fX2pdcOYPTo0axYsWK3shUrVjB69Oga9aiy+sT4qv1m2Z1HV6eMbN+w\nL51D6I98DqHn4HMIti+aPn161NfXBxD19fUOgz5m4cKFMXbs2Nhvv/1i7Nix/SYM2tRqfEUDYZ84\nh2Bmti/zOQQzM+sUB4KZmQEOBDMzSxwIZmYGOBDMzCxxIJiZGeBAMDOzxIFgZmaAA8HMzBIHgpmZ\nAQ4EMzNLCgWCpImS1kvaIOmKMvVHS7pP0hpJ90salqubIumJ9JiSKz9e0iNpm9ep2n+0wMzMdtNh\nIEiqA24APgqMASZLGlPS7BvAgog4FpgNXJPWPQy4Gng/cAJwtaRBaZ0bgWnAqPSY2O3RmJlZlxU5\nQjgB2BARGyNiO7AIOKukzRjgvvR8ea7+I8C9EbElIp4H7gUmSjoSODgiHky3Zl0AnN3NsZiZWTcU\nCYShwKbccksqy3sYOC89Pwc4SNLh7aw7ND1vb5tmZlZFRQKh3Nx+6R9R+CIwQdJDwATgKWBnO+sW\n2Wa2c2mapGZJza2trQW6a2ZmXVEkEFqA4bnlYcDmfIOI2BwR50bEccDMVPZiO+u2pOd73WZu2zdF\nRGNENA4ZMqRAd83MrCuKBMJKYJSkkZIGApOAJfkGkgZLatvWlcDN6flS4HRJg9LJ5NOBpRHxNPCy\npA+kq4suAu6swHjMzKyLOgyEiNgJTCd7c18HLI6ItZJmSzozNTsFWC/pceAIYE5adwvwFbJQWQnM\nTmUAnwO+C2wAngTurtSgzMys8/w3lc3M+jn/TWUzM+sUB4KZmQEOBDMzSxwIZmYGOBDMzCxxIJiZ\nGeBAMDOzxIFgZmaAA8HMzBIHgpmZAQ4EMzNLHAhmZgY4EMzMLHEgmJkZ4EAwM7PEgWBmZoADwczM\nEgeCmZkBDgQzM0scCGZmBjgQzMwsKRQIkiZKWi9pg6QrytQfJWm5pIckrZF0Riq/UNLq3OOPksan\nuvvTNtvq3lLZoZmZWWcM6KiBpDrgBuDDQAuwUtKSiHgs1+wqYHFE3ChpDHAXMCIibgNuS9s5Brgz\nIlbn1rswIporNBYzM+uGIkcIJwAbImJjRGwHFgFnlbQJ4OD0/BBgc5ntTAaautpRMzPrWUUCYSiw\nKbfcksryZgGflNRCdnQwo8x2LmDPQLglTRf9gySV27mkaZKaJTW3trYW6K6ZmXVFkUAo90YdJcuT\ngfkRMQw4A7hV0hvblvR+YGtEPJpb58KIOAY4KT0+VW7nEXFTRDRGROOQIUMKdNfMzLqiSCC0AMNz\ny8PYc0poKrAYICIeBBqAwbn6SZQcHUTEU+nfl4GFZFNTZmZWI0UCYSUwStJISQPJ3tyXlLT5PXAa\ngKTRZIHQmpb3A/6G7NwDqWyApMHp+f7Ax4BHMTOzmunwKqOI2ClpOrAUqANujoi1kmYDzRGxBPgC\n8B1Jl5JNJ10cEW3TSicDLRGxMbfZemBpCoM64P8B36nYqMzMrNP0p/ft3q+xsTGam32VqplZZ0ha\nFRGNHbXzN5XNzAxwIJiZWeJAMDMzwIFgZmaJA8HMzAAHgpmZJQ4EMzMDHAhmZpY4EMzMDHAgmJlZ\n4kAwMzPAgWBmZokDwczMAAeCmZklDgQzMwMcCGZmljgQzMwMcCCYmVniQDAzM8CBYGZmiQPBzMyA\ngoEgaaKk9ZI2SLqiTP1RkpZLekjSGklnpPIRkl6TtDo95uXWOV7SI2mb10lS5YZlZmad1WEgSKoD\nbgA+CowBJksaU9LsKmBxRBwHTAK+nat7MiLGp8dnc+U3AtOAUekxsevDMDOz7ipyhHACsCEiNkbE\ndmARcFZJmwAOTs8PATa3t0FJRwIHR8SDERHAAuDsTvXczMwqqkggDAU25ZZbUlneLOCTklqAu4AZ\nubqRaSrpZ5JOym2zpYNtAiBpmqRmSc2tra0FumtmZl1RJBDKze1HyfJkYH5EDAPOAG6VtB/wNHBU\nmkq6DFgo6eCC28wKI26KiMaIaBwyZEiB7pqZWVcMKNCmBRieWx7GnlNCU0nnACLiQUkNwOCIeBZ4\nPZWvkvQk8M60zWEdbNPMzKqoyBHCSmCUpJGSBpKdNF5S0ub3wGkAkkYDDUCrpCHppDSS/ozs5PHG\niHgaeFnSB9LVRRcBd1ZkRGZm1iUdHiFExE5J04GlQB1wc0SslTQbaI6IJcAXgO9IupRs6ufiiAhJ\nJwOzJe0EdgGfjYgtadOfA+YDbwLuTg8zM6sRZRf59A2NjY3R3Nxc626YmfUpklZFRGNH7fxNZTMz\nAxwIZmaWOBDMzAxwIJiZWeJAMDMzwIFgZmaJA8HMzAAHgpmZJQ4EMzMDHAhmZpY4EMzMDHAgmFkv\n0tTUxLhx46irq2PcuHE0NTXVukv7lCJ/D8HMrMc1NTUxc+ZMvve973HiiSeyYsUKpk6dCsDkyZNr\n3Lt9g+92ama9wrhx47j++us59dRT3yhbvnw5M2bM4NFHH61hz/q+onc7dSCYWa9QV1fHtm3b2H//\n/d8o27FjBw0NDezatauGPev7fPtrM+tTRo8ezYoVK3YrW7FiBaNHj65Rj/Y9DgQz6xVmzpzJ1KlT\nWb58OTt27GD58uVMnTqVmTNn1rpr+wyfVDazXqHtxPGMGTNYt24do0ePZs6cOT6hXEU+h2Bm1s/5\nHIKZmXVKoUCQNFHSekkbJF1Rpv4oScslPSRpjaQzUvmHJa2S9Ej690O5de5P21ydHm+p3LDMzKyz\nOjyHIKkOuAH4MNACrJS0JCIeyzW7ClgcETdKGgPcBYwAngP+OiI2SxoHLAWG5ta7MCI8B2Rm1gsU\nOUI4AdgQERsjYjuwCDirpE0AB6fnhwCbASLioYjYnMrXAg2S6rvfbTMzq7QigTAU2JRbbmH3T/kA\ns4BPSmohOzqYUWY75wEPRcTrubJb0nTRP0hS8W6bmVmlFbnstNwbdemlSZOB+RExV9KfA7dKGhcR\nfwSQNBb4OnB6bp0LI+IpSQcB/wZ8Cliwx86lacC0tPiKpPUF+lwpg8mmvfqr/jy+/jw28Pj6umqP\n7+gijYoEQgswPLc8jDQllDMVmAgQEQ9KaiAb8LOShgF3ABdFxJNtK0TEU+nflyUtJJua2iMQIuIm\n4KYig6k0Sc1FLtXqq/rz+Prz2MDj6+t66/iKTBmtBEZJGilpIDAJWFLS5vfAaQCSRgMNQKukQ4Gf\nAldGxC/aGksaIGlwer4/8DHAd68yM6uhDgMhInYC08muEFpHdjXRWkmzJZ2Zmn0B+LSkh4Em4OLI\nvvE2HXgH8A8ll5fWA0slrQFWA08B36n04MzMrLg+9U3lapM0LU1Z9Uv9eXz9eWzg8fV1vXV8DgQz\nMwN86wozM0scCImkV8qUzZL0VDr38ZikPnHbxQJjeULSj9O3yvNthkjaIekz1ett5+XHJ+mMNJ6j\n0hi35m+DUtI2JM3NLX9R0qyqdbwdkt4qaZGkJ9Pv2l2S3pnqLpW0TdIhufanSHox3S7m15K+kcov\nyZ2v255uG7Na0tdqNbb2tPealPzO/lrSjZJ69XuWpJmS1qZb+KyWdLeka0rajJe0Lj3/raQHSupX\nS6rJRTa9+ofbS1wbEePJvp39v9NVUX3VtRExPiJGAbcDyyQNydX/DfBLsu+V9HqSTgOuByZGxO9T\n8XNkFzmU8zpwbtsVbr1F+lLmHcD9EfH2iBgDfAk4IjWZTHa13zklqz4QEccBxwEfk/QXEXFLeo3H\nk10efmpa3uMeZL1ER69J2/+/McAxwISq9ayT0newPga8NyKOBf4S+BpwQUnTScDC3PJBkoanbdT0\nrwE5EAqKiCeArcCgWvelEiLiduAe4BO54slkb6bDJJV+G71XkXQS2ZVpf5X/fgtwM3CBpMPKrLaT\n7Dstl1ahi51xKrAjIua1FUTE6oh4QNLbgQPJ7hdWNqgj4jWyq/V69Wu2F0Vfk4Fkl7M/3+M96roj\ngefa7sYQEc9FxM+AFyS9P9fufLJbALVZzJ9CYzLZlZo14UAoSNJ7gSci4tla96WC/gt4N0D6hPLW\niPhPdv8F7Y3qgTuBsyPi1yV1r5CFwt/tZd0bgAvz0y+9wDhg1V7q2t4gHgDepTJ3BZY0CBgF/LzH\netiz2ntNLpW0GngaeDwiVle3a51yDzBc0uOSvi2p7WimieyoAEkfAP6QPmC2+RFwbnr+18BPqtXh\nUg6Ejl2q7HYZvyK7Z1N/kr8tySSyIIDs00tvnjbaAfwH2Tfky7kOmCLp4NKKiHiJ7Bvxn++57lXU\nJGBRug3Mj8mm9dqclL7L8wzwfyLimVp0sLs6eE3apozeAhwgaVJVO9cJEfEKcDzZrXZagdslXUz2\n/+nj6fzHJPY8AtgCPJ/Gto5sJqImHAgduzYi3kX2iXmBstty9BfHkf0CQhYAF0v6Ldk30d8jaVSt\nOtaBP5Iddr9P0pdKKyPiBbI52v+xl/W/SRYmB/RYDztnLdkbyW4kHUv2yf/e9LpMYvegfiDNVR8D\nfE7S+Cr0tae0+5pExA7g/wInV7NTnRURuyLi/oi4muyLuedFxCbgt2TnP87jTx+88m4nO1Kq2XQR\nOBAKi4gfA83AlFr3pRIknUd2s8EmSe8CDoiIoRExIiJGANeQDnN7o4jYSnYC70JJ5Y4U/gX4DGXu\n1xURW8j+U+7tCKPalgH1kj7dViDpfcC3gFltr0lEvA0YKmm3G5VFxONkr9fl1ex0JXX0mqQT7x8E\nnixX3xtIelfJh6jxwO/S8ybgWuDJiGgps/odwD+T3RGiZhwIf/JmSS25x2Vl2swGLuvtl76x97Fc\n2nbZKfBJ4EMR0Ur2qfOOkm38G7172qjtTWQicJWks0rqniMb097+/sZcshsw1ly6zcs5wIfTZadr\nyaYnT2HP1+UOygf1POBkSSN7sKs9rdxr0nYO4VGycP921XtV3IHA99Nlw2vIroyalep+CIxl95PJ\nb4iIlyPi6+lvztSMv6lsZmaAjxDMzCxxIJiZGeBAMDOzxIFgZmaAA8HMzBIHgpmZAQ4EMzNLHAhm\nZgbA/wfhASyN+g4NEQAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Compare Algorithms\n", "fig = plt.figure()\n", "fig.suptitle('Algorithm Comparison')\n", "ax = fig.add_subplot(111)\n", "plt.boxplot(results)\n", "ax.set_xticklabels(names)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "slideshow": { "slide_type": "notes" } }, "outputs": [], "source": [ "# Fitting the classifier to the Training set\n", "knn = KNeighborsClassifier()\n", "knn.fit(X_train, y_train)\n", "predictions = knn.predict(X_test)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Results\n", "* Prediction model has an accuracy of 90%\n", "* **Success Factors:**\n", " * High quality data (no corrupt or missing data)\n", " * k-fold CV for determining the best model" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [], "source": [ "from sklearn.metrics import accuracy_score, classification_report, confusion_matrix" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Accuracy Summary" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Accuracy Score:\n", "0.9\n", "Confusion Matrix:\n", "[[ 7 0 0]\n", " [ 0 11 1]\n", " [ 0 2 9]]\n", "Classification Report:\n", " precision recall f1-score support\n", "\n", " Iris-setosa 1.00 1.00 1.00 7\n", "Iris-versicolor 0.85 0.92 0.88 12\n", " Iris-virginica 0.90 0.82 0.86 11\n", "\n", " avg / total 0.90 0.90 0.90 30\n", "\n" ] } ], "source": [ "print('Accuracy Score:')\n", "print(accuracy_score(y_test,predictions))\n", "print('Confusion Matrix:')\n", "print(confusion_matrix(y_test,predictions))\n", "print('Classification Report:')\n", "print(classification_report(y_test,predictions))" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Conclusion\n", "* Include k-fold CV procedures for supervised classification modeling.\n", "* Will use similar methodology for regression and clustering modeling." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "

THANK YOU

" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [], "source": [] } ], "metadata": { "celltoolbar": "Slideshow", "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.6.3" } }, "nbformat": 4, "nbformat_minor": 2 }