{ "metadata": { "name": "modelingexpert.ipynb" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Unit 3, Modeling the Expert\n", "## Video 4\n", "## Read in dataset" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import os\n", "os.chdir('C:\\Users\\Violetta_Chen\\Downloads')\n", "import pandas as pd\n", "quality = pd.read_csv('quality.csv')" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 2 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Look at structure" ] }, { "cell_type": "code", "collapsed": false, "input": [ "def dfStr(df):\n", " print \"The dataframe contains {0} rows and {1} columns\".format(df.shape[0], df.shape[1])\n", " print \"The data types of columns are: \\n\"\n", " print df.dtypes\n", "\n", "dfStr(quality)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "The dataframe contains 131 rows and 14 columns\n", "The data types of columns are: \n", "\n", "MemberID int64\n", "InpatientDays int64\n", "ERVisits int64\n", "OfficeVisits int64\n", "Narcotics int64\n", "DaysSinceLastERVisit float64\n", "Pain int64\n", "TotalVisits int64\n", "ProviderCount int64\n", "MedicalClaims int64\n", "ClaimLines int64\n", "StartedOnCombination bool\n", "AcuteDrugGapSmall int64\n", "PoorCare int64\n", "dtype: object\n" ] } ], "prompt_number": 3 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Table outcome" ] }, { "cell_type": "code", "collapsed": false, "input": [ "quality.groupby('PoorCare').size()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 4, "text": [ "PoorCare\n", "0 98\n", "1 33\n", "dtype: int64" ] } ], "prompt_number": 4 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Baseline accuracy" ] }, { "cell_type": "code", "collapsed": false, "input": [ "98.0/131" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 5, "text": [ "0.7480916030534351" ] } ], "prompt_number": 5 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Create training and testing sets\n", "I will be using `train_test_split` from scikit-learn to split the dataset into training and testing sets \n", "The data types returned by `train_test_split` in default is `object`, thus you need to convert them back when creating dataframes using `pandas` \n", "Also simply using `train_test_split` on the entire dataframe will not enforce the ration of 1 and 0 in the dependent variable in the splitted sets. So it should be done separately." ] }, { "cell_type": "code", "collapsed": false, "input": [ "from sklearn.cross_validation import train_test_split\n", "train0, test0 = train_test_split(quality.loc[quality['PoorCare']==0,:], train_size=0.75, random_state=88)\n", "train1, test1 = train_test_split(quality.loc[quality['PoorCare']==1,:], train_size=0.75, random_state=88)\n", "qualityTrain = pd.DataFrame(np.vstack((train0,train1)), columns=quality.columns).convert_objects(convert_numeric=True)\n", "qualityTest = pd.DataFrame(np.vstack((test0,test1)), columns=quality.columns).convert_objects(convert_numeric=True)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 6 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Logistic Regression Model Using `statsmodels`\n", "Need to create a dummy variable for intercept" ] }, { "cell_type": "code", "collapsed": false, "input": [ "qualityTrain['Intercept'] = 1\n", "import statsmodels.api as sm\n", "QualityLog = sm.Logit(qualityTrain['PoorCare'], qualityTrain[['OfficeVisits','Narcotics','Intercept']]).fit()\n", "print QualityLog.summary()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Optimization terminated successfully.\n", " Current function value: 0.389286\n", " Iterations 7\n", " Logit Regression Results \n", "==============================================================================\n", "Dep. Variable: PoorCare No. Observations: 97\n", "Model: Logit Df Residuals: 94\n", "Method: MLE Df Model: 2\n", "Date: Wed, 18 Mar 2015 Pseudo R-squ.: 0.3042\n", "Time: 09:55:21 Log-Likelihood: -37.761\n", "converged: True LL-Null: -54.270\n", " LLR p-value: 6.762e-08\n", "================================================================================\n", " coef std err z P>|z| [95.0% Conf. Int.]\n", "--------------------------------------------------------------------------------\n", "OfficeVisits 0.0715 0.031 2.341 0.019 0.012 0.131\n", "Narcotics 0.1774 0.064 2.764 0.006 0.052 0.303\n", "Intercept -2.8730 0.574 -5.003 0.000 -3.998 -1.748\n", "================================================================================\n" ] } ], "prompt_number": 7 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Make predictions on training set" ] }, { "cell_type": "code", "collapsed": false, "input": [ "predictTrain = QualityLog.predict()\n", "print predictTrain" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "[ 0.21409682 0.20792723 0.15513627 0.15513627 0.16952904 0.09102833\n", " 0.11761437 0.09102833 0.12095314 0.10356925 0.0612244 0.57347677\n", " 0.12123395 0.09711829 0.11382242 0.13328096 0.09711829 0.0612244\n", " 0.08528419 0.14175685 0.1366838 0.09102833 0.16005598 0.13699543\n", " 0.11013747 0.29329533 0.2938425 0.11382242 0.1964003 0.12876152\n", " 0.29493862 0.31685708 0.07987066 0.14175685 0.07987066 0.12095314\n", " 0.11013747 0.06997534 0.10017872 0.08528419 0.07987066 0.5850803\n", " 0.21994553 0.20705952 0.20792723 0.36253852 0.18022127 0.11761437\n", " 0.10680892 0.28513498 0.19102437 0.2867511 0.08528419 0.09391682\n", " 0.1290578 0.09102833 0.16473785 0.07718914 0.43083676 0.16990082\n", " 0.07459035 0.11382242 0.27235695 0.12095314 0.12523791 0.25237953\n", " 0.05350486 0.07477268 0.08528419 0.07224887 0.1290578 0.05350486\n", " 0.09711829 0.99921197 0.95532822 0.98353566 0.602321 0.266104\n", " 0.14175685 0.99815848 0.42370491 0.11013747 0.4688101 0.99993188\n", " 0.21994553 0.15513627 0.10332455 0.92141417 0.12523791 0.11355656\n", " 0.09081026 0.19061698 0.95532822 0.57347677 0.96700293 0.13297648\n", " 0.93300705]\n" ] } ], "prompt_number": 8 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Analyze predictions\n", "I am taking advantage of the `describe()` and `groupby()` functions of `DataFrame` objects to do the calculations." ] }, { "cell_type": "code", "collapsed": false, "input": [ "print pd.DataFrame(predictTrain).describe()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ " 0\n", "count 97.000000\n", "mean 0.247423\n", "std 0.260452\n", "min 0.053505\n", "25% 0.097118\n", "50% 0.133281\n", "75% 0.266104\n", "max 0.999932\n" ] } ], "prompt_number": 9 }, { "cell_type": "code", "collapsed": false, "input": [ "df = pd.DataFrame({'predictTrain':predictTrain, 'PoorCare':qualityTrain['PoorCare']})\n", "df.groupby('PoorCare')['predictTrain'].mean()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 10, "text": [ "PoorCare\n", "0 0.158482\n", "1 0.517951\n", "Name: predictTrain, dtype: float64" ] } ], "prompt_number": 10 }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Video 5\n", "## Confusion matrix for threshold of 0.5\n", "A little bit trickier to do the table" ] }, { "cell_type": "code", "collapsed": false, "input": [ "df['boolean'] = df['predictTrain'] >= 0.5\n", "print df.groupby(['PoorCare','boolean']).size()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "PoorCare boolean\n", "0 False 71\n", " True 2\n", "1 False 13\n", " True 11\n", "dtype: int64\n" ] } ], "prompt_number": 11 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Sensitivity and specificity" ] }, { "cell_type": "code", "collapsed": false, "input": [ "11/24.0" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 12, "text": [ "0.4583333333333333" ] } ], "prompt_number": 12 }, { "cell_type": "code", "collapsed": false, "input": [ "71/73.0" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 13, "text": [ "0.9726027397260274" ] } ], "prompt_number": 13 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Confusion matrix for threshold of 0.7" ] }, { "cell_type": "code", "collapsed": false, "input": [ "df['boolean'] = df['predictTrain'] >= 0.7\n", "print df.groupby(['PoorCare','boolean']).size()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "PoorCare boolean\n", "0 False 73\n", "1 False 15\n", " True 9\n", "dtype: int64\n" ] } ], "prompt_number": 15 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Sensitivity and specificity" ] }, { "cell_type": "code", "collapsed": false, "input": [ "9/24.0" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 16, "text": [ "0.375" ] } ], "prompt_number": 16 }, { "cell_type": "code", "collapsed": false, "input": [ "73/73.0" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 17, "text": [ "1.0" ] } ], "prompt_number": 17 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Confusion matrix for threshold of 0.2\n", "This time using `confusion_matrix` from `scikit-learn`" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from sklearn.metrics import confusion_matrix\n", "df['boolean'] = df['predictTrain'] >= 0.2\n", "print confusion_matrix(df['PoorCare'] == 1, df['boolean'])" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "[[56 17]\n", " [ 9 15]]\n" ] } ], "prompt_number": 20 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Sensitivity and specificity" ] }, { "cell_type": "code", "collapsed": false, "input": [ "15.0/24" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 17, "text": [ "0.625" ] } ], "prompt_number": 17 }, { "cell_type": "code", "collapsed": false, "input": [ "56.0/73" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 21, "text": [ "0.7671232876712328" ] } ], "prompt_number": 21 }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Video 6\n", "## Performance function\n", "Using `metrics` from `scikit-learn`" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from sklearn.metrics import roc_curve, auc\n", "fpr, tpr, thresholds = roc_curve(df['PoorCare'] == 1, df['predictTrain'])\n", "roc_auc = auc(fpr, tpr)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 22 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Plot ROC curve\n", "I have given up on coloring the line... and the thresholds are not as nice as R's ROCR package." ] }, { "cell_type": "code", "collapsed": false, "input": [ "import matplotlib.pyplot as plt\n", "plt.figure()\n", "plt.plot(fpr, tpr, label='ROC curve (area = %0.2f)' % roc_auc)\n", "plt.plot([0, 1], [0, 1], 'k--')\n", "for i in range(len(fpr)):\n", " if i%5 == 0:\n", " plt.text(fpr[i],tpr[i],str(round(thresholds[i],2)))\n", "plt.xlim([0.0, 1.0])\n", "plt.ylim([0.0, 1.05])\n", "plt.xlabel('False Positive Rate')\n", "plt.ylabel('True Positive Rate')\n", "plt.title('Receiver operating characteristic Plot')\n", "plt.legend(loc=\"lower right\")\n", "plt.show()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\nPVwYGGOM6fk/M9J4QiPVnXoAAAAASUVORK5CYII=\n", "text": [ "" ] } ], "prompt_number": 23 } ], "metadata": {} } ] }