mirror of
https://github.com/donnemartin/data-science-ipython-notebooks.git
synced 2024-03-22 13:30:56 +08:00
1172 lines
224 KiB
Plaintext
1172 lines
224 KiB
Plaintext
{
|
||
"cells": [
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"##Customer Churn##\n",
|
||
"\n",
|
||
"Credits: Forked from [growth-workshop](https://github.com/aprial/growth-workshop) by [aprial](https://github.com/aprial), as featured on the [yhat blog](http://blog.yhathq.com/posts/predicting-customer-churn-with-sklearn.html)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"\n",
|
||
"\"Churn Rate\" is a business term describing the rate at which customers leave or cease paying for a product or service. It's a critical figure in many businesses, as it's often the case that acquiring new customers is a lot more costly than retaining existing ones (in some cases, 5 to 20 times more expensive).\n",
|
||
"\n",
|
||
"Understanding what keeps customers engaged, therefore, is incredibly valuable, as it is a logical foundation from which to develop retention strategies and roll out operational practices aimed to keep customers from walking out the door. Consequently, there's growing interest among companies to develop better churn-detection techniques, leading many to look to data mining and machine learning for new and creative approaches.\n",
|
||
"\n",
|
||
"Predicting churn is particularly important for businesses w/ subscription models such as cell phone, cable, or merchant credit card processing plans. But modeling churn has wide reaching applications in many domains. For example, casinos have used predictive models to predict ideal room conditions for keeping patrons at the blackjack table and when to reward unlucky gamblers with front row seats to Celine Dion. Similarly, airlines may offer first class upgrades to complaining customers. The list goes on."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"Wait, don't go!\n",
|
||
"\n",
|
||
"So what are some of ops strategies that companies employ to prevent churn? Well, reducing churn, it turns out, often requires non-trivial resources. Specialized retention teams are common in many industries and exist expressly to call down lists of at-risk customers to plead for their continued business.\n",
|
||
"\n",
|
||
"![](http://blog.yhathq.com/static/img/netflix.png)\n",
|
||
"\n",
|
||
"Organizing and running such teams is tough. From an ops perspective, cross-geographic teams must be well organized and trained to respond to a huge spectrum of customer complaints. Customers must be accurately targeted based on churn-risk, and retention treatments must be well-conceived and correspond reasonably to match expected customer value to ensure the economics make sense. Spending $1,000 on someone who wasn't about to leave can get expensive pretty quickly.\n",
|
||
"\n",
|
||
"Within this frame of mind, efficiently dealing with turnover is an exercise of distinguishing who is likely to churn from who is not using the data at our disposal. The remainder of this post will explore a simple case study to show how Python and its scientific libraries can be used to predict churn and how you might deploy such a solution within operations to guide a retention team.\n",
|
||
"\n",
|
||
"##The Dataset##\n",
|
||
"\n",
|
||
"The data set we'll be using is a longstanding telecom customer data set.\n",
|
||
"\n",
|
||
"The data is straightforward. Each row represents a subscribing telephone customer. Each column contains customer attributes such as phone number, call minutes used during different times of day, charges incurred for services, lifetime account duration, and whether or not the customer is still a customer."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 1,
|
||
"metadata": {
|
||
"collapsed": false
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"from __future__ import division\n",
|
||
"import pandas as pd\n",
|
||
"import numpy as np\n",
|
||
"import matplotlib.pyplot as plt\n",
|
||
"import json\n",
|
||
"\n",
|
||
"from sklearn.cross_validation import KFold\n",
|
||
"from sklearn.preprocessing import StandardScaler\n",
|
||
"from sklearn.cross_validation import train_test_split\n",
|
||
"from sklearn.svm import SVC\n",
|
||
"from sklearn.ensemble import RandomForestClassifier as RF\n",
|
||
"%matplotlib inline \n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 2,
|
||
"metadata": {
|
||
"collapsed": false
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Column names:\n",
|
||
"['State', 'Account Length', 'Area Code', 'Phone', \"Int'l Plan\", 'VMail Plan', 'VMail Message', 'Day Mins', 'Day Calls', 'Day Charge', 'Eve Mins', 'Eve Calls', 'Eve Charge', 'Night Mins', 'Night Calls', 'Night Charge', 'Intl Mins', 'Intl Calls', 'Intl Charge', 'CustServ Calls', 'Churn?']\n",
|
||
"\n",
|
||
"Sample data:\n"
|
||
]
|
||
},
|
||
{
|
||
"data": {
|
||
"text/html": [
|
||
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
|
||
"<table border=\"1\" class=\"dataframe\">\n",
|
||
" <thead>\n",
|
||
" <tr style=\"text-align: right;\">\n",
|
||
" <th></th>\n",
|
||
" <th>State</th>\n",
|
||
" <th>Account Length</th>\n",
|
||
" <th>Area Code</th>\n",
|
||
" <th>Phone</th>\n",
|
||
" <th>Int'l Plan</th>\n",
|
||
" <th>VMail Plan</th>\n",
|
||
" <th>Night Charge</th>\n",
|
||
" <th>Intl Mins</th>\n",
|
||
" <th>Intl Calls</th>\n",
|
||
" <th>Intl Charge</th>\n",
|
||
" <th>CustServ Calls</th>\n",
|
||
" <th>Churn?</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td> KS</td>\n",
|
||
" <td> 128</td>\n",
|
||
" <td> 415</td>\n",
|
||
" <td> 382-4657</td>\n",
|
||
" <td> no</td>\n",
|
||
" <td> yes</td>\n",
|
||
" <td> 11.01</td>\n",
|
||
" <td> 10.0</td>\n",
|
||
" <td> 3</td>\n",
|
||
" <td> 2.70</td>\n",
|
||
" <td> 1</td>\n",
|
||
" <td> False.</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1</th>\n",
|
||
" <td> OH</td>\n",
|
||
" <td> 107</td>\n",
|
||
" <td> 415</td>\n",
|
||
" <td> 371-7191</td>\n",
|
||
" <td> no</td>\n",
|
||
" <td> yes</td>\n",
|
||
" <td> 11.45</td>\n",
|
||
" <td> 13.7</td>\n",
|
||
" <td> 3</td>\n",
|
||
" <td> 3.70</td>\n",
|
||
" <td> 1</td>\n",
|
||
" <td> False.</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2</th>\n",
|
||
" <td> NJ</td>\n",
|
||
" <td> 137</td>\n",
|
||
" <td> 415</td>\n",
|
||
" <td> 358-1921</td>\n",
|
||
" <td> no</td>\n",
|
||
" <td> no</td>\n",
|
||
" <td> 7.32</td>\n",
|
||
" <td> 12.2</td>\n",
|
||
" <td> 5</td>\n",
|
||
" <td> 3.29</td>\n",
|
||
" <td> 0</td>\n",
|
||
" <td> False.</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>3</th>\n",
|
||
" <td> OH</td>\n",
|
||
" <td> 84</td>\n",
|
||
" <td> 408</td>\n",
|
||
" <td> 375-9999</td>\n",
|
||
" <td> yes</td>\n",
|
||
" <td> no</td>\n",
|
||
" <td> 8.86</td>\n",
|
||
" <td> 6.6</td>\n",
|
||
" <td> 7</td>\n",
|
||
" <td> 1.78</td>\n",
|
||
" <td> 2</td>\n",
|
||
" <td> False.</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>4</th>\n",
|
||
" <td> OK</td>\n",
|
||
" <td> 75</td>\n",
|
||
" <td> 415</td>\n",
|
||
" <td> 330-6626</td>\n",
|
||
" <td> yes</td>\n",
|
||
" <td> no</td>\n",
|
||
" <td> 8.41</td>\n",
|
||
" <td> 10.1</td>\n",
|
||
" <td> 3</td>\n",
|
||
" <td> 2.73</td>\n",
|
||
" <td> 3</td>\n",
|
||
" <td> False.</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>5</th>\n",
|
||
" <td> AL</td>\n",
|
||
" <td> 118</td>\n",
|
||
" <td> 510</td>\n",
|
||
" <td> 391-8027</td>\n",
|
||
" <td> yes</td>\n",
|
||
" <td> no</td>\n",
|
||
" <td> 9.18</td>\n",
|
||
" <td> 6.3</td>\n",
|
||
" <td> 6</td>\n",
|
||
" <td> 1.70</td>\n",
|
||
" <td> 0</td>\n",
|
||
" <td> False.</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" State Account Length Area Code Phone Int'l Plan VMail Plan \\\n",
|
||
"0 KS 128 415 382-4657 no yes \n",
|
||
"1 OH 107 415 371-7191 no yes \n",
|
||
"2 NJ 137 415 358-1921 no no \n",
|
||
"3 OH 84 408 375-9999 yes no \n",
|
||
"4 OK 75 415 330-6626 yes no \n",
|
||
"5 AL 118 510 391-8027 yes no \n",
|
||
"\n",
|
||
" Night Charge Intl Mins Intl Calls Intl Charge CustServ Calls Churn? \n",
|
||
"0 11.01 10.0 3 2.70 1 False. \n",
|
||
"1 11.45 13.7 3 3.70 1 False. \n",
|
||
"2 7.32 12.2 5 3.29 0 False. \n",
|
||
"3 8.86 6.6 7 1.78 2 False. \n",
|
||
"4 8.41 10.1 3 2.73 3 False. \n",
|
||
"5 9.18 6.3 6 1.70 0 False. "
|
||
]
|
||
},
|
||
"execution_count": 2,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"churn_df = pd.read_csv('../data/churn.csv')\n",
|
||
"col_names = churn_df.columns.tolist()\n",
|
||
"\n",
|
||
"print \"Column names:\"\n",
|
||
"print col_names\n",
|
||
"\n",
|
||
"to_show = col_names[:6] + col_names[-6:]\n",
|
||
"\n",
|
||
"print \"\\nSample data:\"\n",
|
||
"churn_df[to_show].head(6)\n",
|
||
" "
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"We'll be keeping the statistical model pretty simple for this example so the feature space is almost unchanged from what you see above. The following code simply drops irrelevant columns and converts strings to boolean values (since models don't handle \"yes\" and \"no\" very well). The rest of the numeric columns are left untouched."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 3,
|
||
"metadata": {
|
||
"collapsed": false
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"# Isolate target data\n",
|
||
"churn_result = churn_df['Churn?']\n",
|
||
"y = np.where(churn_result == 'True.',1,0)\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 4,
|
||
"metadata": {
|
||
"collapsed": false
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"# We don't need these columns\n",
|
||
"to_drop = ['State','Area Code','Phone','Churn?']\n",
|
||
"churn_feat_space = churn_df.drop(to_drop,axis=1)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 5,
|
||
"metadata": {
|
||
"collapsed": false
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"# 'yes'/'no' has to be converted to boolean values\n",
|
||
"# NumPy converts these from boolean to 1. and 0. later\n",
|
||
"yes_no_cols = [\"Int'l Plan\",\"VMail Plan\"]\n",
|
||
"churn_feat_space[yes_no_cols] = churn_feat_space[yes_no_cols] == 'yes'"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 6,
|
||
"metadata": {
|
||
"collapsed": false
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Index([u'Account Length', u'Int'l Plan', u'VMail Plan', u'VMail Message', u'Day Mins', u'Day Calls', u'Day Charge', u'Eve Mins', u'Eve Calls', u'Eve Charge', u'Night Mins', u'Night Calls', u'Night Charge', u'Intl Mins', u'Intl Calls', u'Intl Charge', u'CustServ Calls'], dtype='object')\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# Pull out features for future use\n",
|
||
"features = churn_feat_space.columns\n",
|
||
"print features"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 7,
|
||
"metadata": {
|
||
"collapsed": false
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Feature space holds 3333 observations and 17 features\n",
|
||
"Unique target labels: [0 1]\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"X = churn_feat_space.as_matrix().astype(np.float)\n",
|
||
"\n",
|
||
"# This is important\n",
|
||
"scaler = StandardScaler()\n",
|
||
"X = scaler.fit_transform(X)\n",
|
||
"print \"Feature space holds %d observations and %d features\" % X.shape\n",
|
||
"print \"Unique target labels:\", np.unique(y)\n",
|
||
" "
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"One slight side note. Many predictors care about the relative size of different features even though those scales might be arbitrary. For instance: the number of points a basketball team scores per game will naturally be a couple orders of magnitude larger than their win percentage. But this doesn't mean that the latter is 100 times less signifigant. `StandardScaler` fixes this by normalizing each feature to a range of around 1.0 to -1.0 thereby preventing models from misbehaving. Well, at least for that reason.\n",
|
||
"\n",
|
||
"Great, I now have a feature space `X` and a set of target values `y`. On to the predictions!\n",
|
||
"\n",
|
||
"##How good is your model?##\n",
|
||
"\n",
|
||
"Express, test, cycle. A machine learning pipeline should be anything but static. There are always new features to design, new data to use, new classifiers to consider each with unique parameters to tune. And for every change it's critical to be able to ask, \"Is the new version better than the last?\" So how do I do that?\n",
|
||
"\n",
|
||
"As a good start, cross validation will be used throught this example. Cross validation attempts to avoid overfitting (training on and predicting the same datapoint) while still producing a prediction for each observation dataset. This is accomplished by systematically hiding different subsets of the data while training a set of models. After training, each model predicts on the subset that had been hidden to it, emulating multiple train-test splits. When done correctly, every observation will have a 'fair' corresponding prediction.\n",
|
||
"\n",
|
||
"Here's what that looks like using `scikit-learn` libraries."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 8,
|
||
"metadata": {
|
||
"collapsed": false
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"from sklearn.cross_validation import KFold\n",
|
||
"\n",
|
||
"def run_cv(X,y,clf_class,**kwargs):\n",
|
||
" # Construct a kfolds object\n",
|
||
" kf = KFold(len(y),n_folds=3,shuffle=True)\n",
|
||
" y_pred = y.copy()\n",
|
||
" \n",
|
||
" # Iterate through folds\n",
|
||
" for train_index, test_index in kf:\n",
|
||
" X_train, X_test = X[train_index], X[test_index]\n",
|
||
" y_train = y[train_index]\n",
|
||
" # Initialize a classifier with key word arguments\n",
|
||
" clf = clf_class(**kwargs)\n",
|
||
" clf.fit(X_train,y_train)\n",
|
||
" y_pred[test_index] = clf.predict(X_test)\n",
|
||
" return y_pred"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"Let's compare three fairly unique algorithms support vector machines, random forest, and k-nearest-neighbors. Nothing fancy here, just passing each to cross validation and determining how often the classifier predicted the correct class."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 9,
|
||
"metadata": {
|
||
"collapsed": false
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Logistic Regression:\n",
|
||
"0.862\n",
|
||
"Gradient Boosting Classifier\n",
|
||
"0.950\n",
|
||
"Support vector machines:\n",
|
||
"0.912\n",
|
||
"Random forest:\n",
|
||
"0.935\n",
|
||
"K-nearest-neighbors:\n",
|
||
"0.893\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"from sklearn.svm import SVC\n",
|
||
"from sklearn.ensemble import RandomForestClassifier as RF\n",
|
||
"from sklearn.neighbors import KNeighborsClassifier as KNN\n",
|
||
"from sklearn.linear_model import LogisticRegression as LR\n",
|
||
"from sklearn.ensemble import GradientBoostingClassifier as GBC\n",
|
||
"from sklearn.metrics import average_precision_score\n",
|
||
"\n",
|
||
"def accuracy(y_true,y_pred):\n",
|
||
" # NumPy interpretes True and False as 1. and 0.\n",
|
||
" return np.mean(y_true == y_pred)\n",
|
||
"\n",
|
||
"print \"Logistic Regression:\"\n",
|
||
"print \"%.3f\" % accuracy(y, run_cv(X,y,LR))\n",
|
||
"print \"Gradient Boosting Classifier\"\n",
|
||
"print \"%.3f\" % accuracy(y, run_cv(X,y,GBC))\n",
|
||
"print \"Support vector machines:\"\n",
|
||
"print \"%.3f\" % accuracy(y, run_cv(X,y,SVC))\n",
|
||
"print \"Random forest:\"\n",
|
||
"print \"%.3f\" % accuracy(y, run_cv(X,y,RF))\n",
|
||
"print \"K-nearest-neighbors:\"\n",
|
||
"print \"%.3f\" % accuracy(y, run_cv(X,y,KNN))"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"\n",
|
||
"Random forest won, right?\n",
|
||
"\n",
|
||
"##Precision and recall##\n",
|
||
"\n",
|
||
"Measurements aren't golden formulas which always spit out high numbers for good models and low numbers for bad ones. Inherently they convey something sentiment about a model's performance, and it's the job of the human designer to determine each number's validity. The problem with accuracy is that outcomes aren't necessarily equal. If my classifier predicted a customer would churn and they didn't, that's not the best but it's forgivable. However, if my classifier predicted a customer would return, I didn't act, and then they churned... that's really bad.\n",
|
||
"\n",
|
||
"We'll be using another built in `scikit-learn` function to construction a confusion matrix. A confusion matrix is a way of visualizing predictions made by a classifier and is just a table showing the distribution of predictions for a specific class. The x-axis indicates the true class of each observation (if a customer churned or not) while the y-axis corresponds to the class predicted by the model (if my classifier said a customer would churned or not).\n",
|
||
"\n",
|
||
"## Confusion matrix and confusion tables: \n",
|
||
"The columns represent the actual class and the rows represent the predicted class. Lets evaluate performance: \n",
|
||
"\n",
|
||
"| | condition True | condition false|\n",
|
||
"|------|----------------|---------------|\n",
|
||
"|prediction true|True Positive|False positive|\n",
|
||
"|Prediction False|False Negative|True Negative|\n",
|
||
"\n",
|
||
"Sensitivity, Recall or True Positive Rate quantify the models ability to predict our positive classes. \n",
|
||
"\n",
|
||
"$$TPR = \\frac{ TP}{TP + FN}$$ \n",
|
||
"\n",
|
||
"Specificity or True Negative Rate quantify the models ability to predict our Negative classes. \n",
|
||
"\n",
|
||
"$$TNR = \\frac{ TN}{FP + TN}$$ \n",
|
||
"\n",
|
||
"### Example:\n",
|
||
"\n",
|
||
"| | Spam | Ham|\n",
|
||
"|------|----------------|---------------|\n",
|
||
"|prediction Spam|100|50|\n",
|
||
"|Prediction Ham|75|900|\n",
|
||
"\n",
|
||
"$$TPR = \\frac{100}{100 + 75} = 57.14 \\% Sensitive $$\n",
|
||
"\n",
|
||
"$$TNR = \\frac{ 900}{50 + 900} = 94.73 \\% Specific $$\n",
|
||
"\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 10,
|
||
"metadata": {
|
||
"collapsed": false
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"[[2821 29]\n",
|
||
" [ 244 239]]\n"
|
||
]
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "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\nH4XA7bQpdsaKAAAAAElFTkSuQmCC\n",
|
||
"text/plain": [
|
||
"<matplotlib.figure.Figure at 0x10c33edd0>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"[[2814 36]\n",
|
||
" [ 147 336]]\n"
|
||
]
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "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\n2rdj5hsZZlZcuxsZc4dg3lDbj0XE3ZK+AlwDPA/Moyk9RkRkdXTar2ZMsSZOemZW3Ett5u8yMxsa\nvjfrVU0i4mzgbABJXyLrvS2S9NqIWChpa+CJ1LxV7dtRa9y24tNbMyuuu7u3W6X/bge8F7iArMbt\nh1KTDzFcx7Zl7dsiIbunZ2bFdfec3iWSNie71XFMRCyR9K/AxZKOAhYAfwswSu3bMXHdW+uC695W\nV2/q3vKjDvPH++S6t2Y2AFo/jlJqTnpmVlzrx1FKzUnPzIqr4G9vnfTMrLh2j6yUmJOemRVXwZ7e\nuD6nJ+lsSYsk3T6e2zGzPuniOb1+Ge+Hk88heyOCmQ2iCia9cT29jYjZkqaO5zbMrI/8yIqZ1Yof\nWSniotz4bsAb+xWI2QD7VRp6zHdvizi03wGY1cA70tBwcm9WW7LrdZ0oQdIzs8qq4DW98X5k5ULg\nRmAnSQ9L+vB4bs/M1rDib07um/G+e3vYeK7fzPrMp7dmVisVTHp+c7KZFVe8GhqSNpF0iaT5ku6S\nNMN1b82s3F7ucGjtNODKiNgF+Avgblz31sxKrXix742BvVNxICJiRUQswXVvzazUip/e7gD8SdI5\nkn4n6QxJ6+O6t2ZWau0eR/nTEDw5NNIn1wKmAcdGxM2SvkE6lW1w3VszK592d283nZkNDXe/qu7t\nI8AjEXFzmr4EOAFY6Lq3ZlZeBa/pRcRC4GFJO6VZ+wJ3AlfgurdmVlrd/QztE8APJE0G7gc+DEzE\ndW+tvFz3trp6VPd27w7zx2zXvTWzQVDBX2Q46ZlZcRV8y4qTnpkVV7I3qHTCSc/MivPprZnVipOe\nmdWKr+mZWa20f4NKaTnpmVlxPr01s1rx6a2Z1YofWTGzWvHprZnVipOemdWKr+mZWa1UsKfnl4ia\nWa046ZnZGidpHUm/lTQv1bz9cprvurdmNngi4iVgn4h4M1nN230k/Xdc99bMyq14DciIeCGNTiZ7\nTfxiXPfWzMqtYGUgQNIESfPI6tteFxF34rq3ZlZuxZ9ZiYhXgDdL2hi4WtI+Tctd99bMyubFNvNv\nAG7saA0RsUTSz4A9gUWue2tmJdbuGt504B9yw+okbdG4MytpXWA/YC5ZfVvXvTWzsir8dPLWwLnp\nDuwE4PyI+IWkubjurZWX695WV4/q3nJPh613ct1bMxsE1fsdmpOemXWhem8ccNIzsy60u3tbXk56\nZtYFn96aWa349NbMasU9PTOrFff0zKxW3NMzs1pxT8/MasWPrJhZrbinZ2a14mt6ZlYr1evp+X16\n4+qOfgdgXflVvwOogOKvi+8XJ71xdWe/A7CuOOmNrnhhoH7x6a2ZdaFcvbhOOOmZWReq98hKCd6c\nbGb90Js3J6+57fVKX5Oemdma5hsZZlYrTnpmVitOemZWK056ZlYrTnoDTtJKSXMl3S7p4lRNvui6\nvifpfWn8DEm7jND2HZLeWmAbCyRtVjRGs9E46Q2+FyJij4jYHVgG/H1+oaSxPKsZaSAi/ldEzB+h\n7T7A28YabGP9ZuPFSa9eZgNvSL2w2ZJ+AtwhaYKkr0qaI+n3ko4GUOZ0SXdLuhbYqrEiSUOS9kzj\n+0u6VdI8SddK2h74GPCp1MvcS9KWki5J25gj6W3ps5tLukbSHZLOAErxLJcNLv8ioyZSj+5A4Mo0\naw9gt4h4MCW5ZyJiuqS1gV9LugaYBuwE7AK8FrgLOCt9PoCQtCXwH8DeaV2bRMQzkr4LPBsRp6bt\nXwB8PSJukLQd8F/ArsAXgesj4mRJBwJHjfsfw2rNSW/wrStpbhq/Hjgb2AuYExEPpvnvAnaXdEia\n3gjYEdgbuCCyJ9gfl/TLpnUL+EuypPUgQEQ807S8YV9gF2nVrA0lrZ+2cXD67JWSFnf1bc1G4aQ3\n+F6MiD3yM1Lieb6p3bERcW1TuwMZ/XSz02twAmZExLIWsfiU1tYYX9MzgKuBYxo3NSTtJGk9sp7h\noema39ZkNyfyArgJeLukqemzjTuvzwIb5tpeA3yyMSHpTWn0euDwNO8AYNPefS2zV3PSG3ytemLR\nNP9Msut1v5N0O/AdYGJEXAbcm5adC9z4qhVFPAkcDVwqaR5wYVp0BXBw40YGWcL7b+lGyZ1kNzoA\nZpElzTvITnMfxGwc+YUDZlYr7umZWa046ZlZrTjpmVmtOOmZWa046ZlZrTjpmVmtOOmZWa38fz1B\nOOrbmSdSAAAAAElFTkSuQmCC\n",
|
||
"text/plain": [
|
||
"<matplotlib.figure.Figure at 0x10c60b1d0>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"[[2813 37]\n",
|
||
" [ 317 166]]\n"
|
||
]
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "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\n",
|
||
"text/plain": [
|
||
"<matplotlib.figure.Figure at 0x10c7c6e10>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"[[2820 30]\n",
|
||
" [ 124 359]]\n"
|
||
]
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "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\nkDQzK/H/ASljNTZK+WWcAAAAAElFTkSuQmCC\n",
|
||
"text/plain": [
|
||
"<matplotlib.figure.Figure at 0x10d212790>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"[[2769 81]\n",
|
||
" [ 381 102]]\n"
|
||
]
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "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\n",
|
||
"text/plain": [
|
||
"<matplotlib.figure.Figure at 0x10d38d7d0>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"from sklearn.metrics import confusion_matrix\n",
|
||
"from sklearn.metrics import precision_score\n",
|
||
"from sklearn.metrics import recall_score\n",
|
||
"\n",
|
||
"def draw_confusion_matrices(confusion_matricies,class_names):\n",
|
||
" class_names = class_names.tolist()\n",
|
||
" for cm in confusion_matrices:\n",
|
||
" classifier, cm = cm[0], cm[1]\n",
|
||
" print(cm)\n",
|
||
" \n",
|
||
" fig = plt.figure()\n",
|
||
" ax = fig.add_subplot(111)\n",
|
||
" cax = ax.matshow(cm)\n",
|
||
" plt.title('Confusion matrix for %s' % classifier)\n",
|
||
" fig.colorbar(cax)\n",
|
||
" ax.set_xticklabels([''] + class_names)\n",
|
||
" ax.set_yticklabels([''] + class_names)\n",
|
||
" plt.xlabel('Predicted')\n",
|
||
" plt.ylabel('True')\n",
|
||
" plt.show()\n",
|
||
" \n",
|
||
"y = np.array(y)\n",
|
||
"class_names = np.unique(y)\n",
|
||
"\n",
|
||
"confusion_matrices = [\n",
|
||
" ( \"Support Vector Machines\", confusion_matrix(y,run_cv(X,y,SVC)) ),\n",
|
||
" ( \"Random Forest\", confusion_matrix(y,run_cv(X,y,RF)) ),\n",
|
||
" ( \"K-Nearest-Neighbors\", confusion_matrix(y,run_cv(X,y,KNN)) ),\n",
|
||
" ( \"Gradient Boosting Classifier\", confusion_matrix(y,run_cv(X,y,GBC)) ),\n",
|
||
" ( \"Logisitic Regression\", confusion_matrix(y,run_cv(X,y,LR)) )\n",
|
||
"]\n",
|
||
"\n",
|
||
"# Pyplot code not included to reduce clutter\n",
|
||
"# from churn_display import draw_confusion_matrices\n",
|
||
"%matplotlib inline\n",
|
||
"\n",
|
||
"draw_confusion_matrices(confusion_matrices,class_names)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"An important question to ask might be, When an individual churns, how often does my classifier predict that correctly? This measurement is called \"recall\" and a quick look at these diagrams can demonstrate that random forest is clearly best for this criteria. Out of all the churn cases (outcome \"1\") random forest correctly retrieved 330 out of 482. This translates to a churn \"recall\" of about 68% (330/482≈2/3), far better than support vector machines (≈50%) or k-nearest-neighbors (≈35%).\n",
|
||
"\n",
|
||
"Another question of importance is \"precision\" or, When a classifier predicts an individual will churn, how often does that individual actually churn? The differences in sematic are small from the previous question, but it makes quite a different. Random forest again out preforms the other two at about 93% precision (330 out of 356) with support vector machines a little behind at about 87% (235 out of 269). K-nearest-neighbors lags at about 80%.\n",
|
||
"\n",
|
||
"While, just like accuracy, precision and recall still rank random forest above SVC and KNN, this won't always be true. When different measurements do return a different pecking order, understanding the values and tradeoffs of each rating should effect how you proceed."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"## ROC Plots & AUC\n",
|
||
"\n",
|
||
"Another important metric to consider is ROC plots. We'll cover the majority of these concepts in lecture, but if you're itching for more, one of the best resources out there is this [academic paper](https://cours.etsmtl.ca/sys828/REFS/A1/Fawcett_PRL2006.pdf). \n",
|
||
"\n",
|
||
"Simply put, the area under the curve (AUC) of a receiver operating characteristic (ROC) curve is a way to reduce ROC performance to a single value representing expected performance.\n",
|
||
"To explain with a little more detail, a ROC curve plots the true positives (sensitivity) vs. false positives (1 − specificity), for a binary classifier system as its discrimination threshold is varied. Since a random method describes a horizontal curve through the unit interval, it has an AUC of .5. Minimally, classifiers should perform better than this, and the extent to which they score higher than one another (meaning the area under the ROC curve is larger), they have better expected performance. "
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 11,
|
||
"metadata": {
|
||
"collapsed": false
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Support vector machines:\n"
|
||
]
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAX4AAAEZCAYAAACQK04eAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXeYJFX1v9/P5gyzIGHJGZYcJCihF1QWJJgQUUEMNIqg\nP1EkKLArSRQRBcEtQRAUlChBEBWmSV+CZEQQlrTksIFdWDbO+f1xbs/W9HT39Mx0mOm57/PUM91V\nt6pOdfecunXuuecjMyMSiUQiA4dBjTYgEolEIvUlOv5IJBIZYETHH4lEIgOM6PgjkUhkgBEdfyQS\niQwwouOPRCKRAUZ0/JGKkfQfSbs22o5GI+kCST+u8zkvkXRKPc9ZKyR9SdKtPdw3/gargGIef/9E\n0ovASsBS4H3gn8C3zWxuI+1qNiQdCnzdzHZpsB0XAy+b2UkNtmMKsJ6ZHVyHc12CX/OJtT7XQCP2\n+PsvBuxjZmOBLYHNgbr2QquBpCED8dyNRNLggXjuyDKi428CzOxN4B/Apvl1knaU9H+SZkt6VNJu\nqW3jJV0s6VVJsyRdl9q2T2g/W9I9kjZPbXtR0u6SJkiaL6kltW1rSW/n/7ElfU3Sf8Px/y5pzVTb\nNklHSHoW+F+xa5K0n6Qngx2tkjYusOO4sH2WpN9LGt6Na/ihpMeBeZIGh2NNlzQ3HPNToe0mwAXA\nTpLmSZoV1reHXSRlJL0i6WhJb0p6LTwl5M+3gqQbJb0r6QFJp0q6q9R3KWnn1Pc2Q9Ihqc3jJd0U\n7LxP0rqp/X4V2r8r6UFJO6e2TZF0taTLJL0LfEXShyXdG87zmqRzJQ1N7bOppH9KminpDUnHS9oT\nOB44MHwej4S2y0m6KBznFUmnSBoUth0avoOzJb0DTAnr7grbJemX4bN7V9Lj4dxZ4IvAD8O5rk99\nf3uE14MlnZD67h6UtHqpzzaSwszi0g8X4AVgj/B6deBx4KTwfjXgHWByeP+x8H6F8P5vwBXAcsAQ\nYJewfmvgTeDDgIBDwnmGps65e3h9G/CNlD0/B84Pr/cHngU2wjsXPwLuSbVtA24FlgeGF7m2DYH3\ngD2AwcAx4XhDwvYXw/WuBrQAdwOnVHgNLwIPh32Hh3WfA1YJrz8fzr1yeP8V4K4C+y4GfhJeZ4DF\nwJRg61546G25sP3PwOXACGATYAZwZ4nvdC1gLnBgONZ4YMuw7ZLwHW4Xtv0RuCK175fCZzEIOBp4\nHRgWtk0BFgH7hfcjgG2A7UP7tYD/At8N28eG/b8HDAPGANuHbScDlxbYfR1+gxwJfAi4H8iGbYeG\nz+fb4Vwjwrq7wvY9gQeBceH9Rqnvov1zLvjd53+Dx4TfwQbh/ebA+Eb/b/aHpeEGxKWHX5w7sHnB\nUbSFf75BYduxRf45/447wVXxcYHlihzzgiL/aE+z7MaQ/qf7OnBbeK3g0HYO728BvpY6xiDcGa4R\n3rcBmTLXdiLw59R7Aa8Au6bsyKa27wVM78Y1HNrFZ/tIykm2O6nU9otZdqPJAPPzn31Y9ybuVAfj\nDneD1LZTCo+X2nY8cE2JbRcDScE1P1XmGmYBm4fXU4BcF9f8/4Brw+uDgIdKtJsCXJZ6vzKwABiR\nWncQcHvq83up4BjtnymwO/7Ut0P6Myz8nFPr0r/B/wH7Nup/sD8vMdTTfzFgfzMbhzuf3fHeIHgP\n7oDwGD9b0mzgo8AqwBrALDN7t8gx1wK+X7Df6sCEIm2vxUMgqwC7Am1mdnfqOL9KHWNmWL9aav+X\ny1zbqviNxC/U/8tfLrP/jJSNlVxDh3NLOkTSI6n2mwErlLGvkJlm1pZ6Px/vJX8If6JKn++VMsdZ\nHXi+zPY3U68/COcAQNIP5KG1OeEalgNWLHVeSRuGsNHrIfxzGsuueY0u7EizFjAUeD31+f0Wv/Y8\nJb9rM7sdOA/4DfCmpGmSxlZ47tWB5ypsG0kRHX8TYGZ3AucCZ4ZVM/BeWUtqGWtmP8P/CcdLWq7I\noWYApxXsN8bM/lLknLPxcYUD8VjsFQXHyRYcZ7SZ3Zc+RJlLeg13KIDHgXFn9GqqzZoFr/PbKrmG\n9nNLWgtI8FDEeDNrAf6DP2WUs7OSdLi3gSXB9jxrlGgL/t2sV8FxOyBpFzzscYCZLR+u4V2WXQN0\ntvcCPLyzvpkth4fj8v5gBrAuxWkreP8ysBAPI+Y/7+XMbPNUm7KflZmda2bbARPxMN8xlewXzr1+\nF20iRYiOv3k4B9he0g54/HdfSZ8IA2AjwiDkamb2Oh6KOV/S8pKGalle9O+Ab0raPgy6jZb0SUlj\nSpzzcjwG/tnwOs9vgRMkTYT2wb8DunEtVwKflA8kDwW+j4cT/i9sF3CEpNUkjcedVt6xd/caRuMO\n5h1gkKSv4j3+PG8Cq6cHPsP50061KGa2FH8ymiJppHyA+mBKO7Q/AR+TdICkIfKB4S1T5yzFWPwG\n846kYZJOAsZ1Yd4YPFQ4P9j1rdS2vwGrSvqupOGSxkraPmx7E1g73IwJv6d/AGeHdoMkracKc+0l\nbSdph/D5zse/56Wpc5W6AQFcCJwiaf3wXW8Rfg+RLoiOv0kws3eAPwDHmtkr+ADrCcBbeA/u+yz7\nvg/GB9yexv+5vhOO8RBwGP7oPQsfUD2E0o7qBrzH9bqZPZGy5a/408efQxjhCXwQr71JF9fyDPBl\n/CnmbeCTeCx3SWr/y3GH81yw89SeXIOZ/Rf4BXAv8Abu9O9ONbkNeBJ4Q9JbqfOnj1fueo7Ewy5v\n4N/PFXjcv5gtLwN749/VTHysYYsS50yf9+9heQYf+/mAVKisxL4/wJ/U5uJPPH/OtzGzecDHgX3x\nQd5n8HAiwFXh70xJD4bXh+CDwP/FP/Or8LBiObvz68aF888Ktr+DJwoAXARMDCGka+nM2Xgn4R/4\nE87v8MHjSBfECVyRfoekF/BJVbc32pbuIulMYCUz+2qjbYkMXGKPPxKpIZI2CiEIhXDJ1/AMrEik\nYQzImYuRSB0Zi4d3JuBhtbPM7IbGmhQZ6MRQTyQSiQwwYqgnEolEBhj9ItQjKT6WRCKRSA8ws06p\nwP3C8UNx4ytB0hQzm1Jlc/o08ZoHBvGaBwa9ueZSneYY6olEIpEBRnT8kUgkMsAYCI4/12gDGkCu\n0QY0gFyjDWgAuUYb0AByjTagAeSqfcCapnNK+j0+3f6tgqJN6Ta/xkvMzsfL5T5SpI31NMYfiUQi\nA5VSvrPWPf6LgcmlNkraG68OuAGQxSsGRiKRSKSG1NTxm9ldwOwyTfbDC1dhZvcDy0tauZY2RSKR\nyECn0TH+1egsUhE1MyORyIAjX+q6HvSFPP7Ci42TtSKRSNMSHPwGwEdw4ZmNGDJkU9ZddxXlco/l\n260/f/6YFZYsGXb/uHHbWSazsJo2NNrxv0pHRaLV6aiy1I6kKam3OTPL1c6sSCTS7EjMwgXqO3Ls\neBhZLkJdwFL42RmwdEnnTUfjQgVpngQ2LWy4ZAkjn3+dv02yXRkMM/eeybu7vstKf1mJsQ+yAOta\n+AdAUoZl2gml29W6SJuktYEbi2X1hMHdI81sb0k7AueY2Y5F2sWsnkgkUlUkzIo4VE2VMYUd8N54\nflkPl/hcw8wWdTyONALaFhQ/zVgze6+wPfDoruy6xZ3LPXYWe+65CltuOZzNN19j2uuvHwFcggvp\nHJ7NZl/r3TUW95017fFLugLYDVhR0svAybgwM2Y2zcxulrS3pOnA+0AUp4hEIj2iZA++E+/CZ1aD\nHd9HJ2EM7tRgNnATHQXjAfgfvEWBXrUBx8KCn8Gv6RyqXlx4jFZaZxrWIjR70l95EPgJcNPn3n77\nJeBWXB3tsmw2W7Neeb8oyxx7/JFIpCukhQYjOvWwfZvOAD4KrIMnleT9yc5mdk+R9n8ARjJ+/Ous\nuOIrrLrqS2y22atPX3fd3Rv/6U8b9sbO1kk8M6mV/DE+CexkmcyBSZKMA8b0tpefppTvjI4/EonU\nnXzv/HruZhxFguNd8AzP8GoYDnyLt3iIh3icxzme49mN3Tq1P4ETuJd7ARjMYCYykW3Zlj3Zk1Xa\n5YHrw3ujadv3Jp5PrbrMMpmf1OJc0fFHIpE+Qz6+nlPOMpaRpD2BSXhPfCVgXbx3fpKZXaKpMjt5\nmQ8IM/6PKnLofc3sps7n0w7AaODFRfDc0Ar8iXK5lYHHLZOp+tyiJEmGZrPZTmGgatOQGH8kEuk5\nOeUqjFn3D9poYwELGMUoWoGcMJZN8NwVOLbTTrtwsabqYjpPBH0EuCq8ngPkXoXfTIAbSaXD373Z\nZmS//302ufji9nWbDxrU9r9c7r8VmDwEWNRlq26QJMkw4EfALsDu1Tx2d4iOPxLpu7RkLNMnnnQl\nrQ4cUmTTq2b2hyLttwfOwNO1835mLHClmX27SEbNP4B54fVM4AW+wz/5NcPsTuvUMzazi/GSMOmT\n/omC3u0uudyXgS8AP6zgMosxp4f7dSJJkq3wjJ1XgC9X67g9IYZ6IpEGU6ZnPztjmfHVPp/H1xe1\nwPPA28D/gGeA6cDKcOxfPI99lb1h5Gq+07NvwqlFNOLXXwlO3L/z+ulvwilF2q85nqP2/gyjllb/\n33nx4MELzj7wwF8VrN4MmGOZTMMcbaqX/y3qkLGTJoZ6IpG+S6979pJGAtsBw8OqQXhve6SZnVd4\nPhi+LnQYYMzzPCNZ1042KZebDvwVeIe5/1mend7eoVPrFVecw5pfvL/T+tEzh/HNCWuz1lqzGTFi\nKQCDBxsbbzxnwsUXn358Nnt8Dy+1u9wN3Fmnc5Vib2BbYKtqZuz0htjjj0TqjKaqQw+/dUork6ZM\n6tjoDeAGoK1g58HAYUUO+i7wyyLrR1Iscu7tLwVGDoFVRsOHhsOKw3xZc/Q8tvr1ZDyGvptlMtMr\nu7IUUrnxidmYVf1Jpq+SJIkA6tXLTxOzeiI1p9kGI+vIspBOcJgL8O76OwUNhwPFZoi24SkxQ1Pr\nVgU2Ao6HInOUnP1PPZX/rbEG4+fO7bRt2JIlXHfiibS81yktvhIGlHPvq0THH6k5+dS8RtvRCAp7\n8UV5BngNmMkinuBfqS3fMrMZfiAZZvI4/JODYLPCzA8rJlbUY7tzuZuA31om0ykFMtI9Qix/m2w2\ne1+jbckTHX+kW/Sw916Twci+iqTheA2uwRzMbC7jF8CewPFmdlNhuOMA4Ooix7kQ+Pqyt7MxG1+q\njky3bczlRgP/BUaVaLIcMNkymdt7e66BTCpj53/AFxoR1ilGdPyRbjEQe++StmN37uQ9RrbH1tvw\neMlGRXZoBe4oeqjvmdk5+d576vhfxLNMnsej+Pl/vufM7OmOtlTN8a+IP2sUuwKANstkZvb2PAOV\nRmbsVEJ0/JEuKejl99/ee/mBRRbTMRae53T8P7iQ7wFnl2h/Rni9Hq4xOhnYERgBzKKFFZhVud0d\nmW1Gtz5/5XI/pLODHwHsaZnMij01JFKcJEk2Bf6E5+Vn+0rGTpqYzhmphD4zYaiXtHicXHsAfyzY\nNhL4m5l9qVNc/iXgSRbyAMcBeeEL+yU8fLbZA4UnOSEspRhP3VWFvgkkeHJ+mj/V14wBwxK8T9Cn\nevmVEHv8/ZwqZ9L0y16+pOXNbA7AbLW0GZL3tG/Gix8WkgFaYYpgikEPetedbMjldsdnpjaSBK/0\nWCw/PzIAiT3+5qVZeukVIekglgljrI9L2K0oabyZzW5hTtBqk8d0CnMfBwGjcoR6Lr12+ADK5UYB\n/8RruDeSO4C3GmxDpB8QHX8foqeZNLWwpV5IWhVYvsimN8xsdmjU/rlMxFNU0owC7oNZSMwaAekq\njlWzM5crd8xBwALLZIrULoj0d0LGzheA4/tbSKcU0fH3LZqq9y5pELAVsBdwg5k9UaTZiXhGRCHf\nBs4Pr1vaFZfvwHvy4/FbwXiYPw62WPapza72f6ZyuSwwrYtmL1f5tJEGUyRjp2mIjr+RhJ7s3VzP\nEsYxhLk+gacf8wfg1PB6RZbNPD0RTk2Xy80zFbiiyHFOhN8g/QZg1gjysfhCqhKqqYDxwJmWyRxX\nh3NF+gAFlTT7TI2dahEHdxtJyPPu6znzmqJZzKeF2XhgaRY+7WerIo3vA/6eej8Oj8Rvjstq9IzZ\ndnJtpv8rl9sJr2pQjg2A6yyTKZfEE2kSkiT5OJ4J1efy8rtLHNxtEOXj9q2gXFqMos8h6RMMo6WI\nHMU/7Tr7RJH2LXhnH2ARc5lhD5kVCGHXq6deCdvipWy6CuX8uw62RPoGd9GEvfw0scdfYzr15gtm\nc/aU9hz0t4C/4XIR6UqOKwJfKbLj23hVxkJWAg4usv41PEkQ5uIzTp8Ly8Nm9peK7a3STNSix87l\ntqP480cl7A7MskzmyCqaFIn0CWKPv9Esy0zpdu9ekoDVzSw9gNhiJ5skrYcraHRkHk/aybZZkWNt\nBnQeZJ3HK3ayrVGk/VA8P322ddFLKOjVF1LLp5oT8eSel3qw73wan4YZaRBJkgzPZrMLu27ZXMQe\nf41IhXh8UlQ3e/qSVgQ+jlcB+AQ+43RFM1sSevvYyTZe0hC8Iu8LdMxaX2JmbxQ57lCgmHj0HDPr\nUf3dZceubq9eudxwfDShKy4FLrBM5vpqnTvS3KQydiYDO/bnOH45Yo+//rRkmATQQkdR6bIEx3wD\nXuUx/YW9BqyJh1ta8rnqZrYEnzxUEWa2GM9U6DVFevjV7tX/AU8F7apH1ga8WeVzR5qUgoydTzer\n0y9HdPy1pAdPKWa2WFIbnq1+B54jcysncxfiOU31GafVNbTHtNQqbh8YBRxsmUwR8dZIpHv09Uqa\n9SQ6/t5QtgpkawW7+3NYkU3fwWPq7aUdNVUttZiR2l0Ks3O6bJ/LfQL4SQ9PtxHw2x7uG4kUsguw\nDU2esVMJ0fH3jpbCXn06tl9qJ0kfwgcklwBHF243s+egk6pTf+3lbwq8CJzTg3O1AVVTm4oMbLLZ\n7G1Jktw+UHv5aeLgbm8oMmBbajKWpP3xiUDrA1/EM2UW4dk6hWV0vUzA87+bxrqHdZw09Pu1T2Sp\nRlbxKrrHYPuAr714Sjf22Bl4xjKZ79XKpEgkUpw4uFsHQm+/VM/8Z3hVyTw3A8cVOv32Xv6ut8HQ\ncQvwua/LGN42ki/N+Gn1rO4R47pu0s7j+GB1JFIXQiz/I9lsNtdgU/osscffGwp6/OVKL0g6GQ/b\nvAjcb2b3Fm03VcZuraOB94HBlsm0ddhew4lQkUh/J5Wx8zzw2YEe1ok9/johabCZLS1cb2ZTO7U9\nrqWNkXM6fikftMAla73PoS/BpN2WFvHwfSXWH4n0GWLGTveIjr87dM7i6eCEr+M6gAck7WxmH3R5\nvJFzVCxTR7ncacB8M53WO4MjkeYnSZKNgT/TpJU0a0FNHb+kyXg2x2DgQjM7s2D7irgm6irBlrPM\n7JJa2tRLOmTxaKpmMdXLKB932nH8ml8DbMNnmR/y7cvzwfKdeiTK5Y7Ea9FHpx+JVMZ7wC+AP8Ze\nfmXULMYvaTDwP+BjwKt4dcODzOypVJspwHAzOz7cBP4HrBxmo6aP1fgYv/f2wZaVB9ZUWaiX0zKe\n8bNmMQvg+2Z2dsddK4/LK5c7F3+SONUymc41MSORSKRCGhHj3x6YbmYvBgP+DOwPPJVq8zqwRXg9\nDphZ6PT7EO29/VR+fT7U8/Pg9O8hla+emuxUNC6vXG514Ht0LM2wC3BRdPqRSKRW1NLxr0ZHObpX\ngB0K2vwOuF3Sa3he++draE81aZ9FK+kjwNeHMpTFLD7MzNo6tCvf098Or8nz+9S6S4npj5FIJ5Ik\n2Rr4BnBUNptt66p9pDS1dPyVxJBOAB41s0woL/xPSVua2bzChiEslCdnZrnqmFmefO/eCKmWTroH\n/2/guK/y1Z9Os2lPVVLSQLncFric32bAdMtkzi7WLhKJdMrY+T6V+ZYBiaQMkOmqXS0d/6tAur77\nGnSuCvkRwiCmmT0n6QW8PsuDhQczsym1MbNLWmyKO/Bi8n+h2uWZOeV+2t6+63j+HcCTeMmG2LuP\nREoQevmXADOIGTtdEjrEufz7MH+oE7V0/A8CG0haGy8pfCBwUEGbp/HB33skrYw7/edraFO3CL39\n2RSpyVO0vff2K8mzHwzsbZnM3F6aGIk0LUmS7AJcg/fyY8ZOFamZ4zezJZKOBG7FHd1FZvaUpMPD\n9mnA6cDFkh4DBgE/TFek7AN4LH+KSv7gCoqytZgh5XL/AHYsc9zheNnlSCRSmnuBLbPZ7OuNNqTZ\niCUbyp03pGvmSzMEIfFrgJPM7G7oWKYhn7apXO5p4MvAMyUOvdgyma4neEUikUgviCUbeoqUDt+c\nCUzalE1bW9U6RCwTRVEutzMnrIRyb/0RmADMi6GcSKQykiQZlc1m5zfajoFCdPxd0xJ6+7sBhwGL\nj+GYoZNsUuFddFdGLQVXzLoBeK7OdkYi/Y5Uxs5nkiTZMqZp1ofo+Msw0/N0ZksaAUwLq09fi7Xa\nR8qVy62D5+NvzoujsR9t/se6GxqJ9EMKMnb2jE6/fkTHX0Ba9coW4CUapB/hGUdPA2cAJ0PI4vnO\nhBY2mwuvjoQnlus0/yASiXSkSF5+zNipM9HxFzDzp7SMX9D+Nh/bfx4vL3GEmS3MKYdyueEM3bWF\nT782DXjCDtvuN0ypv72RSD9ka2ArYl5+w4hZPenzTNUsm1I8Z1/SCDNboM3efbf1yUfGTbpVXmFn\nqC0CDrZM5spa2xeJRCLdIWb1VEZLqQ1m5s8BI5aOA7BP7BZVsCKRSL8kOv4KyU/UagXmj6SvVhCN\nRPoMIZa/RzabvaXRtkQ6MqjRBvRFJA2SNKxgdcskMrMnbb/5vE/evKwWRiQS6UzI2Pk38M0kSQY3\n2p5IR2KPP480y4D3fED3L8AHkr5iHQdBWjjziVOB3RpiYyTSx4kZO/2D6PiX0aIfAGcxA/gcMBdY\nh45F42YDBwDX1t+8SKRvkyTJhsBVxEqafZ7o+NPczQJgS+BZYD8zez4f25/LEGjNrQBMJzr+SKQY\nM4GfAZfHXn7fJqZzLjuJCW4Hdgf2NbObYFkRNgmjNfdJ4G/AupbJvFBTeyKRSKSX9DqdU9IoM2va\nIkrh9rclwF/4y4055fKb0vX1RwDXRacfiUT6M106/qApeyGuibuGpK2ArJkdUWvj6slS/zPlU3zq\n3AM5gJT+eQvC2HLOPOAsPFMhEhmwhIyd/wd8PZvNxtTmfkglPf5zgMnA9QBm9mioVNk8SLPmjoDW\nBa0/mcsQrjN1nrmbe/RQ4LPAkXW3LxLpAxTJ2FnaWIsiPaWiUI+ZzVBHX9hsd/mWFY6D1im07M/O\npZSc9wdmWybzdl0ti0T6AFH7trmoZALXDEkfBZA0TNIPgKdqa1Yd6Si0Uo59gZtqbE0k0udIkmQ7\nXEL1LGC/6PT7P5X0+L8F/ApYDXgV+Afw7VoaVWe8KNvUjrq6yuUm4tq4eeYAd9XVskikb/AQsFk2\nm32r0YZEqkMljn9DM/tiekV4ArinNiY1HuVyqwKPAf9JrX4Gn9QViQwoQk5+dPpNRCWO/zy8fnZX\n6/otkiYyEW7kRiAD/rm8YZlM01xjJFIJSZKMy2azsYPT5JR0/JJ2Aj4CfEjS0SzLbxxLsxR3Wxbf\n/zD/hYd4CL45HeAB4L2G2haJ1JFUxs4XkySZmM1mFzfapkjtKOfAh+FOfnD4OyYsc/FaNs1AC2bj\ngS0A1mM9WGv+YuDHwIcbalkkUidSlTS3AXaLTr/5KdnjN7M7gDskXWJmL9bPpIawJQTHv+Os14C3\nLZOZ02CbIpGaEitpDlwqifHPl3QWMBEYGdaZme1eO7Pqh3yCwpYAq4xYdwlwHTF7JzIw2ADYnJiX\nP+DoskibpH/i9el/ABwOHAq8bWY/rLl1y2yoTZE2L8w2AXhtNKN5//Ybc0g/sUymternitQcSbG3\nGhmwFPORvSnStoKZXSjpO6nwz4PVMLSPMJuvwNF/OJpTOldqiPQzal7FNRLpg3S301NJds6i8PcN\nSftI2oYyouT9DTNbwDqwO00RuYpEOpEkybAkST7baDsifYdKHP9pkpbHB39+gFfq/F5Nraoz1//0\neuZGTZpIE5LK2Dk0DOZGIl17OzO7MbycQ5jdJGn7GtpUd8YtGMckdoaooR5pEmLGTqQc5SZwDQI+\nDawH/MfMbpa0HXA6sBKwVX1MrBNfmAGwGZQqzhmJ9A+SJFkXz06LlTQjRSkX6kmAI/B4/o8lXQP8\nATifJinX0MHDT3oLXC/0voYYE4lUj7eAM4D9Dj/88HUkPStpnqT9yu0kaYqky8psf1HSHtUyUtI9\nkras1vGaFUnDJT0lacWqHdTMii54gbJB4fUIPNSzQqn2JY4xGXgaFy8/tkSbDPBIOF+uRBvrznkr\nXY5x3//UKZxi/KvVaG3dthbniUt9llr9Tqpk24vAfGAe8AZwGTCuoM1HcN3nueH/7QZgk4I243Bx\npJfCsaYDvyz1vwncBhxVoY0nA5eV2f4CsHuZ7WcC74Tlp12ca1/g5kZ/L1X4Xrtzzd8IvnAecAuw\naqXHAo4BzipzbOvO+nI9/sVm1hb2XAC8YGYzy7TvgKTBeDG3yfjkr4MkbVLQZnngN7i4+WbUuRRE\nKC+68VCGemEK/+eMRGqBAfuY2Vh8wuDmeGkQoL021q14iGZVYB28Quw9ktYJbYbhjnwTYM9wrJ1w\nR1Fq3G1N4L8V2tjjVFhJh+NiRVuEZd+wrhTfxG9+PTlXn8jE6M41S8oApwH7AePxm+gV3TjWFcBX\nJA2tivFl7iAfAE+klvmp149XcCfcCfh76v1xwHEFbY4AflLBsYretXp5px423P8Z7QZuMKY+UfVz\nxKW+Sy1+J1W0rUNvGQ8r/i31/i7gvCL73Qz8Ibz+Bv60MMrMmDZt2tbTpk27etq0acNLnPM5XB5x\nPv4UMRSfsHgDMBPvfX4j1X4KqR4/cDD+ZPEOcELhNRSc6/8KjvVV4N4SbYcFmyak1m0P3IsXTXwN\nOBcYmtreFvzFs8BzYd0+wKNhn3uAzVPtj8OfhuYCTwKfqsF32p1rPiv9/eI39zZgnUqPhZeG37U7\nv/1S68scBmvRAAAgAElEQVT1+DfBH8fyy8TU67KxwsBqwMup96+EdWk2AMZLapX0oKSDKzhuVbgH\n3l4IsAJtYxkLc6tzI41EyiAASavjT8L3h/ej8I7SVUX2uRL4eHj9MeCWadOmLUmSZCr+hHA9y+ba\ndMDM1sMHePcxs3Fmthj4c1i3Kv6EfbqkSZ0MlSbi43lfwm8WKwCrl7m2ifgTSp7HgU1LtN0AaDOz\n9KDzEuC74Tw7AXvgjj7N/njxxImStgYuAg7De9DTgBtSPeLpwM5mNg6YCvxR0irFjJH0RUmzSyyz\nwvfV22s2Oj5R5X3vZt041lOE8jK9pVyRthd7eexKsmOG4hUB9wBGAfdKus/Mni1sKGlK6m3OzHK9\nMe4Bj5XC2sMHMRP4xYZ+T440LVJ1MrbMehQSEfDXMMNyDO6wTw3bxuOO4PUi+70B5Af1VlhppZVm\n4Hn53c7YkbQGPo6wl5ktAh6TdCFwCFBYpuRzwI1mdnfY90TgyDKHHwO8m3o/N6wrxvJ4nLsdM3s4\n9fYlSQmwG67+l+cMM5sT7MkC08zs32HbpZJOwG8ad5rZ1aljXynpePyp4oZCY8zscuDyMtdWiu5c\n89+BKyT9Fr8pnYT7yFHdONY8/LMrSQgpZboyvJaxsleBNVLv18B7/WleBt4xsw+ADyTdid/ROjl+\nM5tSTeOm519s/ykXlkOV6O5G+jE9dNhVOz2wv5ndLmlX4EZgO1z7YTb+2L8q/jifZlXgbYAxY8Ys\nWnvttb8IZOlZXv4EYJaZvZ9aNyPYUaxt+/+rmc2XVG6M7z3ynSlnOUprWszGS723I2lD4GxgW9wZ\nDgEKS8OkIwhrAYdIOiq1bij+eSHpEHyi6dph2xj8aaKaVHzNZnZb6Lxew7IB+nks+4wrOdZYutAH\nDx3iXP69pJOLtauloMqDwAaS1g6DUgfS+W57PbCzpMHhcXcHKh+I6hXn+Z9VmfwFAMwYX4/zRiJm\ndicewz4zvH8fj29/vkjzz+MDurz33nvX/vvf/3738MMPv6aHk7Few0Or6Z7kmnTukOXbtnfcwv9n\nOcf5JB3n9mxJR+nSNNP9kFo1te4C/H9/fTNbDp98Vuif0tc8AzjNzFpSyxgz+4uktfB09G8D482s\nJdhS9MYv6Ush3bXYMrdMqKc714yZnW9mG5rZKsC1+M0t376SY21Cx3BQj6nI8UsaJWmj7hzYzJbg\nj4a34l/oX8zsKUmH50erzexp/BHocTze+Tszq6njVy4n5XLZX37uc3DgS88xKs5ijzSEc4DtJe0Q\n3h+HZ20cJWmspBZJp+KdoamhzWVmNgO4RtJGkgZJWkHSCZL26uqEZvYyPoh4RsgN3wL4GvDHIs2v\nAfaR9NHQcfsJ5f3FpcDRkiZIWg04GrikhB2LgH/RMSQxBu8Bz5e0MT7juBy/A74paXs5oyV9MtzU\nRuM3iXeAQZK+yrJYejF7/mRmY0ss48ys2I2xW9ccPu/Ngq1r4jemc8zs3UqOFdaNp0rzjLp0/GHS\nxyO4A0fS1pI6xcmKYWa3mNlGZra+mZ0R1k0zs2mpNmeZ2aZmtrmZ/bpnl9EtlgfOnbHSSrDColG8\ndl0dThmJdMTM3sEnRB4b3t8D7Al8Bu9tv4T3+nY2s+dCm0X4AO/TwD/xmPD9dM8hHISHP17De50n\nmdntebPCgpk9ifeYLw9tZ9Ex1FJ4PdPw8NUTeEfuRjNLytgxDc8ayvMD4It4bDvBB6HTPfwOTzhm\n9hA+sHtesO1ZfKyC0Hn8Bf4U9Qbu9O8uY0uP6OqaJf1H0kHh7UjgT/jN7X48C+nESo+FfzaXhAH6\nXlNJPf6Hgd2BVjPbOn9B5nn3dUFVrMevXK4FeN4mTVpe2GymqKV1SisZy8Ryvv2cav5OGkWqxs6h\nwMbZbPaDxlpUOyTdDXzbzKoSvmhWJA3H01Z3CR2GYm2K/vZLra8k1LM4P5Keoq0Sg/s6Ma4f6UsU\naN/u1MxOH8DMdo5Ov2vMbKGZbVLK6feESrJ6npT0JWCIpA2A7+Bxwv7LCy8MWoDXoYhEGk2spBmp\nN5U4/qPwH+VCfNrwrcAptTSqptxwwyh++ctxywMLpcFMabRBkQir4RkbsZJmpC5UEuPfpmByRd2p\naoz/iNFzuWD+WFYkPx1lduuU1pYY4+//NEOMPxLpCbWI8Z8t6WlJp0iq24BuzZi11CeOvLM/drLJ\nTrYY549EIgOKShS4MmGixeeBaZLGAVeaWf8M97yTf8LZsKFmRAYeIZZ/IDGGH2kwFU3gMrPXzexX\neCnVx/A6E/2TWYPDC3f8OeVm0cU06Eikt6Qydj6P53RHIg2jyx5/qNL3ebxo00zgL/issv7JChsy\nqGUGbbPbe/wxvh+pGTFjJ9IXqSSr5/f4LLo9zezVGttTe766O78ZOZ0JNw4ip5wRe/uRGpEkyZr4\nbMyGad9K+ig+9X8V4EtmVnLWfSgitp6ZFS2PLulF4OtmdluVbLsHOCLm8penkglc3aXLUI+Z7Whm\n5zSD01cuN54J+zFy0SLGsYSMZZSxTBzcjdSKN/EaN/sdfvjh/ydpfij89Yaky8J4WTuSPiLp9lAY\nbI6kG9RZtW6cpHMkvRSONV3SLyWVKqD2E+DXoe5MV6VWunoSsVJtJE2S62rMkfRCF8dB0r7Au/3d\n6Us6U9I7YflpF22/oWX6x7eki9SV+/zMbCHeAT+uWnaXdPySrgp/nyiyPF4tA+rMWBbPZb1bj2Ae\nQ+LjdqSmZLPZhdlsNl9Js6mlF/ESwhfi2rCVEKUXU9KLdP351U16cUL4uxZe1Cm9rFVqv1osVElS\nj9bWI/nXzdZKa1WOF5e+tVTrd1Ij26ouvVjBOesmvZja52O4Pne5NlF6sUB6sZLPj3pIL9oyWbQj\nzOzF9EJnSbT+ws7X7z+YIcxttB2RJiJJkq2TJPlbkiSl1JfyVEV60czmV2KX1Vd6sTtE6cXO0ouV\nUHvpxRSfIJSOTbF3kXV9GuVyG/LAAxu99f549uQwKlOGjDQTmqrqSC+e7DMhi2TsvF9mt6pIL+Ip\noT1CtZVe7A5RerGz9GIldCm9WCklHb+kb+F33PUkPZHaNBZ/rOpv/Hyt43671WG8wLqMZfdGWxOp\nO3mHXQ1CXv4lVJ6x02vpRTzkMqEXZtdSerE7ROnFztKLldCl9GKllMvquRzYF79D7hNe7wtsa2Zf\nqsbJ68rSpYNeD4lJe3Trs45EOpIkydp4D+4sYL/upmlaD6UXcdWqPUNoqCfUUnqxO0Tpxc7Si5VQ\nNenFcgMX48LfFfBH0Q5LtQdKuhhEKTpA0a1jXHzxvwBbGcwPVz/741KfpRq/k0qXadOmjeumbYWD\nuyvioaEdwvuP4r3Fo/CeXQseCpqF59aDD4o+ANwCbIQ7xhXwgde9Kjxv/qYzHM9EeSO/ndTgLh6r\nnhfsGobf5BZTYnAXd6ojgL2AF8Pxh5X5PK4HDkq9vx9XpBKwMfA/4K7U9jZg3dT7bXHnv33YZzTw\nSbxnPxH4AJ+ePxgfdF0MfK3Kv7fD8ZvVBLzC6pNAtkTb4Xg8X/jNNgecWunnF47/DqkB70p++6XW\nl+vx51ONHiqx9C+ef340wJtrNdqQSDOQzWZ7lSFgXUsvvkg/kl7E4/Hzgb/hTwof4E9FpYjSiynp\nRbr+/OorvdgXqEa5XX3lK09w6aWbsQ3wsGHWq5zlSB+kFmWZkyRZKZvNvlXNY0YcRenFiqhk5m7V\nyzJL+mg+JijpYElnhxha/2L8+IXbsR2sSkWpcJGBTZIkw5IkmQo8miTJuC53iHQbi9KLFWE1kF6s\npDrnb4H5krbEi7M9D1xaLQPqgXK5key//1o/5+fYTTa60fZE+japSprbAh/ubVgnEulrVJLHv8TM\n2iR9CviNmV0o6Wu1Nqya/PNjvDlkKWMH6T0kYhnmSFEK8vKPAS6NlTQjzUgljn9emBjxZWAXSYPx\nfNl+w5CljJ301/9gnzoKsJYY34+UYDywPrB1Npvt90UJI5FSVOL4D8RHlL9mZm9IWhP4eW3NikTq\nTzabfQMvURCJNDWVlGV+HU9DWl7SPsACM+tXMf5IJBKJLKMSBa7P4z38O8Kq8yQdY2bFCkr1XR78\nDzcDsAifjxIZqIRY/leAi7LZbFuj7YlE6k0loZ4fAx82s7cAJH0In0Levxz/L/7AJwGfFxEd/0Al\nSZKt8Bo7r+AyojFjJzLgqCSdUywrEgVex7vfDI7mlJs1b+R8WJyf8DY8ZvQMQFJ5+f8AfgnsOxDS\nNMM8nLzq035dtJ0iqaQ4iqQXJe1RRdvuCWnikTJIGi7pKUkrdt26Mipx/H8HbpV0qKSv4sIQt1TL\ngDrQst8px8CSpeFuNbLaFfoifZwkSVbBa9xsi2fs/KHeaZrBaTaz9OIxQZ1vrqTnJf2g3IEUpRf7\npvRi6qTH4JO4tsDl4qaZ2Q+rZUBdWOy/1RGEikWRgcbbeP3zfRuYptns0ovgtXeWx0VmjpR0YJm2\nUXqxj0ovbohX0HsynHT1HlSvm4wXlHoWOLZMuw/jCjyf6U6FuUqWVlqNUzYywFr6sDRfXHq/9OZ3\nUgfbBoT0YmrfX+FPGsW2RenFviq9iD9a3AR8FngY+HWZtp0IE73Ow53/ROCgwsfWVLsz8ZBS7cYO\nttjNJtfs4JFIRQwI6UVJAnaldK35KL3YYOnFco5/jJn9zsyeNrOf44+e3WF7YLq5Tm/+B7d/kXZH\nAVfTcQC5uowewocP+4Iuj6Uamp4kSW5LkmR80Y2SVWXpGXnpxbm4432OnkkvFmtTmQHLpBePNbNF\n5vH1vPRiIe3Si+bloE/Ee6iVMCX8vbjE9qLSi2b2gJm1mdlLeGnm3Qr2O8PM5pjHvNulF825FFiI\n3zQws6vN7I3w+kr8SaFoOMzMLreOgi7pZbyZlVJu6q704gGSNpc0kr4qvQiMkLRNeC1gZHgv/PHh\n4dK7Ai4ckK7f/QqwQ7qBpNXwm8Hu+J28ZvH3ISwBs+IOIdKvSdXYAS8gWPwGX+WSzd1kQEgvSjqS\nUN7FSteOj9KLDZZeLOf438DFDEq97/R4WEAlTvwc4Dgzs/B4WPIfM3xoeXJmlqvg+JEmpyAvn2w2\n+4eGGlQBZnanpLz04iQze19SXnrxjoLmhdKLp0oaVWm4p4B26UUzyzuoctKL7aFZVSC9GIo3/hCP\nQ5eTo2yXXjSvDAAuvfgQcGD4PP4fHmZOU0x68fQiduSlF3fHY+4m6RHKSC/iCSzFMGBiiV5/Xnox\nf4PqUnoRD5/lb3Q/Lte+CJvgYwUlCYPIma4OVNLxm1mXO3fBq6Q0O8Prwg9vW+DP7vNZEdhL0mIr\nknZmZlN6aU+kyUiSZFU8tfg4vKffn2bhngN8T9IOZnY/fg23Snoav5ENAb6PPyV/OOxzGS73d01w\njM/iEo2HA4+YWdk0azN7WdL/AWeEdMuNgK/htbgKuQa4T9JH8RLVP6FMaDg4z9PwG9mLXdixSNK/\ncAeVz2wZg/eA50vaGK+QWk4A53fAdeE4/8afEjL4jXM07rDfAQaF3n/JWLqZ/QkvS9NdLgWOlnQz\nflM5Gh/U7oRcTGUD/GaxBn5jOsfM3g3bhcstDg1vh7tptihsX40KlNZChziXOu/JpRrWKothCB7H\nXBsfxX8U2KRM+4upVVbP2ZvaTuee2+NjxKXvLtOmTRudf92b30mtF4pkxOC9v2tT7z8KtOIO8F08\nHDSxYJ9x+AS0GaHddLwX2FLJefEQ7I14Vs90UhqxwMnApan3h9Axq+f5wmtItX0ej7HPSy3nl/k8\n9gZuTr3fBR+8nIfrAk8F7kxtX0pKczes25NlobLX8JnYY8K2U8M1vo1HKlqpsuZuOM+Z4TwzgZ8W\nbPsPQVcYj80/hoeCXsdvkkq1zeAdl7ZwrW3A7antxwBnlbGj6G+/1PqaSi9K2gvv2QwGLjKzM/J5\nruZ6lem2F+ODSdcWOY5ZD+OzOeVs0kmHs9Fru/K/Cy/czlyrM9KE9OZ3Eqk/itKLFaEaSC82veZu\nTjmbdMjBcOkrAFeb2QHVtS5SD5IkWa2ryVfR8UcGKt11/JVo7g6Sa+2eFN6vKanULMG+ySrtvn5B\nI82IdJ9UjZ2HkyT5UKPtiUSagUpq9ZyP58bmB4DeC+v6D3Pbs8Ci4+9HhIydfI2dbbLZbO3mekQi\nA4hKal7sYGZbh3QozGxW1epF1ItF7a8+aKAVkQqJ2reRSG2pxPEvCmUVgPZ6/P0pbQ7u2Sj/Kvb4\n+wej8fzyqH0bidSAShz/uXjFwJUknY5P5f5x+V36GO9uxH7ADd2bLBFpENlsdjZe8CoSidSAirJ6\nQnG1vADDbWb2VE2t6nz+3mX1bLAt9uy4Rk/Zj9SYmNUTGah0N6unEs3dNYH38UkfACZpTTOb0Wtr\nIwOaEMvPAkk2m13UVftIJFIdKsnquRn4G16i+V/4DL3+pMAV6YOkMnYmU7qiYaSXKEov9nvUCOlF\nM9vMzDYPywZ4adOy9SIikVKU0L6d1WCzao6aX3rxe5KeC7a/KeliSWOLtQ3tB6L04qckPRk+oycl\n7Z/aNkTSuZJelzQzfPcToEHSi4WYl2PeocuGkUgBSZKsQIO1bxtIs0svXg9sZy58snE474/KtB9o\n0osr4YXgjg6f0THA5ale/BF4vaIt8JLYs/HEmjxVlV6sZObu91PLMZKuwCtv9h8+uJfraf/wI41j\nFnAsjdW+bThm9ib+xJNWa/oZLrF4rpm9b2azzexE/Ol6SmhzCF7Z8dNm9nQ41ttmdpoVqcwp6Tlg\nXeDG0MscKmlC6E3ODCGgb5SyM8zYfyn0Zk/o4pqeN7N8rfhBeMp3UdGYcAObRKoEtaTtJd0rV716\nLfR+h6a2t0k6QtKzwP/Cun0kPRr2uUfS5qn2x4WnoXzv+lPl7O8hX8ELp71mXob6LODQEm3XB94z\ns1sBzOxmfOx0vbB9U+DW8H0uxJXX2n8f5mWhZxOEZnpNBdXnTk4tP8Kl2EZUu8pdFzYUrTDX5X6t\nreNbaTVG7bYY73FNrqfdcanv0tPfSZ1sewHYI7xeHZfpOym8H4VLD+5WZL9DgdfC6z8DF/fgvOnq\nnHfikqjD8CePt/BSypDS3MVlBecBO4e2vwAWU0ZzF5/d/y7u9C8v025T3Amm122DP7UMwkVW/gt8\nN7W9DX8iWh4vX7w18CZeslr4TfEFgk4vnna+Snj9ebziwCpl7J5dYplFCb1xYA7w4dT7bYG5JdqO\nxjvM++BFKz+FV1gdGbZ/NvwmVg2/h8uBswuOcT1wVHd++6XWl31kChO3xpnZ98u168P4QNTCu+/H\nS97GCVwDGOVyVQkrWSbTk5BIXnrR8MHs6+mZ9OK/e3BuN2CZ9OJe5nXeH5OUl15sLWjeLr0Y9j0R\nOLLc8c3scjx8sT5wlaTvmdkvizQtKr2YevuSpLz0Yrq+/RlmNifY0y69GLZdGp5KdsLLOV+dOvaV\nko7HbyzFtD4uxx1td6lYetFcXOZwvHT0MLyewOfM7IOw/Zow+P4qXpb5ceDbBYepvfSipCFmtiRk\nBcjC7aNfsnRp/pExOv46EDJ2zgMOyGazPdaIrTY9dNhVOz0DQHoxtJ0eBjqPwwfwCxlw0oty2doE\nL638sKTtcHH4vczsMUln4Z/JeGA+rmR2C7Bj6jBVk14sF+N/IPx9FLg+xPs+G5bPVOPkdWRk+Btr\n9dSQgoyd3+G91UgBZnYnPnB3Znj/PpCXXiykUHpxT7kMYk9ol15MrSsnvdiuoKcKpBcLGIo7sGK0\nSy+m1l2Ah3fWN7Pl8LByoX8qJr2YFkYfY2Z/0TLpxW8D482sBZ+1X1J6MWRIFVvmSlq9xHXkpRfz\nlJNe3AO4L/9kY2YPAvezbGLsZDyMNyc8jZ0HbC8prRO+CT7g32vKOf78hzQCV5fZHY9P7QPsW42T\n15ER4W/s8deIgkqaAy1jpyecg/9j5zPkjsOzNo6SNFZSi6RT8Qy6qaHNZXiv9xpJG8lLpq8g6QS5\n6FFZzOxlIC+9OFzSFrj04h+LNL8G2Cc88Q+ja+nFb8jreCFpYriea0rYsQi/iWVSq4tJL5bjd8A3\nw6CwJI2W9MlwUyuUXvwqXUgvmqe7FlvGWXG9XVgmvThBLo14NC6bWYzHgF0U5i1I2hrP4nk8bH8c\n//7HhUHtI4BXzWxWaF+R9GKllHP8H5J0NPAEfhcrXPoNh8Gak31gak6jbWlGkiRpwUMX+bz8AZux\nUynmSkp/wLOcMLN7cCnBz+C97RfxHuTOZvZcaLMI+BjwNPBPPL58P91zCAfh4Y/XgGvxAebb82aF\nBTN7Eu8xXx7azqJjqKWQjwBPSJqHp6ReSvEwT55pwMGp9z/AB1nn4r31P9Oxh9+hE2GupHcY3jOe\nhesPHxK2/RcfjL4Xf+rcDLi7jC09wlxF8EbcRz6Oj4kk+e2S/iPpoND2H3jm1rXhM7oaf2L5V2j+\nPTzc9xw+4D4Z+HTqdF8ELjGzxdWwvWStHkmvU1p5HjObWmpbtVEPa7AolzugdRJXZpgU6/TUmCRJ\nRmSz2YY+UfX0dxJpDIrSixWhGkgvlsvqeaOezj3Sv2m004/0P8xs50bb0B8wz+vfpMuG3aDbM3cj\nA5skSdZptA2RSKR3lHP8H6ubFZE+Typj5/4kSUplOUQikX5AScdvZhXl7EaanyIZO6WyHCKRSD+g\nTxQ7qiWLWMRVwOelPS3UyYhURtS+jUSak6Z3/HOYw4H+8iK8RkqkcoYAKxG1byORpqLpHf8i2oWd\nYtZJN8lms/PpeiJNJBLpZzR9Vk/K8cdyDZFIJMLAcvyxx1+CkLHz/SRJeloDJtJHUZRe7PeoEdKL\n/Z3o+MuTJMnWeKnfSXhVxEgNUJNLL6bsGxacVLnyDgNVevEbqZvwLekidSojXWl9QXqxvzGGMXzW\nX95RvuXAIpWXfyte12TfbDZbdDp4pCo0u/RinmPwWjNd3UQGmvRiBjgN2A+vrfQCLqeYpyvpyvpK\nL/Z31mVdrgbM7MddNh4gJEkyDu/lbwtslc1mY5pmHbEmlF4M7dfBFfrOoMxNRANTenEf4CozeyoU\nWjsF2DV/U7cupCutytKLTe/4I53JZrNzge/gvfzXGm3PAEIA8vruk/HKmvla9zsBVxXZ50rg4+H1\nx4BbzKxUnfsOmNl6eN36fUJ54cV41csZ+FPF54DTJU3qZKiXVj4fd+QT8Fr8XaVDnwscT9dh1Q2A\ntuAs8ywBvhvOsxNep/6Igv32x6UWJ4ayxhfhFTrH49U+b0jdLKbjlU3H4WWt/yhplWLGSPpiuHkU\nW2apdD3+iXSsj/84HW/maYyON8O8720vFx3seBcX3nnbzNLqYwBP4U+LvaZPPDJF6k82mx1woa+c\nqiO9mLEovVjk2J/Gq/1eH8Ia5Rhw0ovA34ErJP0WvymdhN8M2sfVKpCurL30YrWQNBkXnRgMXGhm\nZxZs/xIuMyb8wr5lZo93OlCkRyRJohjGcXrosKtF00ovShqNh6q6FIMJDDjpRTO7TdIUXJxmHO4T\n51FE/ayMdGVdpBd7jVys/Tz8sXYicFBhlgLwPLCrmW2Bx70SIlUhZOzcHytq9i2aUHpxA9wR3yXX\n8bgGWFXS65LWLNJ+IEovYmbnm9mGZrYKLoIzpEz7YtKVdZFerAbbA9PN7MVUfHH/dAMzu9fM8o9L\n91Plsgov8AJXA3I5twFBQcbOebiaU6Rv0UzSi0/g/7dbhuUbwJvhdbEe7YCTXgyf92bB1jXxG9M5\ned+nLqQrVUfpxWqwGh0fz14J60rxdeDmahpwB3dwgL/8QjWP21dJ5eXHjJ0+TDNJL5rZUjN7K7/g\n4Yj8urYSdgwo6UVgJPAn/OZ2P3APcGLqcF1JV9ZHerEqB5c+C0w2s8PC+y8DO5jZUUXaTgJ+A3w0\nldaU32Ys6/UA5Mws1+X5c7kDDpqUXHmFp8seb2ZlJ1j0d5IkGYM/Ck4FLhtoDl9RerFfoSi9WBHq\nhvRiGFjPpDad3F3pxWrwKqk4YXjd6bEpPHL+Dr9JFB28MLMpPTFgIM3czWaz7yVJsnE2m61KryAS\nqSVRerEyuiO9GDrEufx7SScXa1frUM+DwAaS1g5xwgMpSKcK8a5rgS+b2fRqG7CQhfmXTe/4AaLT\nj0QiXVHTHr+ZLZF0JD7IOBi4yMyeUpjWHGJkJwEtwAWSABabWanp592mWatzJkmyIfDsQAvnRCKR\n3lPzPP4wlfyWgnXTUq+/gWcB1ISN2IjR/IPrmiSzpUAV6yN4alwkEolUTNOXbPgMn+FawMz6/UzV\nIhk70elHIpFuE0s29AMKevk/YABm7EQikeoRHX//wPDp2lvFomqRSKS3RMffDwiZOkc32o5IJNIc\nNH2MPxKJ9C0kfUiu0jW80bb0dSRtIemeah+36R3/PdzDtbRXEOzThBo7xyVJ0tJoWyLVRS69uFAF\nEomSHpGLjBQrZlZLezLhvPlCZM+EUsfpNpJ0TNg2Xy7KcnqYk5Nut72km+X162dKul/SoWVOfxxw\ncZiY1C+RNF7SdZLeC9/tQWXaDpfLY74qr+//G6VUxModK1QqniNpn2ra3/SO/xzOyUsvjm+sJeVJ\nZezsDAzronmk/2F4Jdr2f2q5YtRIupYprBWv5guR4SIo50tKC4n8Gq+HczBeRG0vXCDlynwDuWTk\nbXg9//XMbAU8CWFysROGXv4hFC8M1yXqI7KLeHmZBcBKuFjNBaG4WjGOA7bBRVo2DK/TioBdHetP\nQFFJx57S9I6/r5dsKKF9+2aDzYrUhj8SCokFvoIX42qvpRJ6h2eF3vUbki6QNCJsW17STZLeCj3H\nG0PVxvy+OUk/kXR36MXfWviEUYow32YmoTSApA1wB/5FM7vfzNpC8bPPApO1TGzl53jxsJ+b2axw\nrIfNrFRRxB2AOWn1LUlflfTfYPNz6SeP8GTyiqQfyks+XxSeRPLSiu9I+oukltQ+V8lLQs+RdEcZ\nh439/74AABHISURBVNwjQvTgM8CJZjY/FNi7no5F59LsA5xrZnNCrZ1f41VRKz3WHcAeqpLeLgws\nx9/nZu4mSTISF+KIlTTrgCQrtnSnfS9NuA8YJ2ljuVbFgXTu+f4UWB+vzLk+Xs32pLBtEC43uGZY\nPsCrU6Y5CNd9XQl/cvxBV0bJyzvvhwuJPBJW7wG8bGYdxFBCieL7gI/La/TvCFxN5WxO0MxN8Sbw\nyfDk8VXgl3JpxTwr47P718R7vt/BRct3xYVXZuO95jx/wz+7DwEP4z3mokg6X6VlFx8tsduGwJKC\nEjOPUVp2ETrLLq4uaWwlxzKzV4HFwEZljt8tmtvxL13ap3v82Wz2A/yHHLVvBw6X4b3+j+PCI6/m\nN0gSHlo5OvQO38OFy78AYGazzOw6M1sQtp2OyxPmMTx2Pt3MFuAhmbRQSCETJM3GBT+uAw7Ol4DG\n5R7fKLHf62H78pSWjCxFMdnFm83shfD6TlyIfpdUkza8yuTicF2HAz82FzlfjFej/ZykQeEYl5gL\n1ue3bRmcbCfM7IgCMZf0UuqzG4OXj04zjwJVsRR/B74raUW57u93WCa7WOmxqia7CM2ezrlgweA2\n2sBrgy9ptDnFyGaz9zfahoFCd0s216DEs+GO/y5gHQrCPHgPdRTwkN8DIGwfBO0qWL/E6/bnQxtj\nJK/JG96nnfUHlNaABXjNzNYIg7U/BU6QdE2oof8OQcawCBPw8YpykpGlmEVn2cW9gJNxJa9B+GeQ\nll99O2gR5FkbuE5Sutb/EmBlSW8Bp+GawR8K9hl+o+pww+kFhZKL4E9LpY5/Gu60H8U7oBcCW5nZ\nm5ImVHisscCc3hidprl7/IsWDdqd3QGuarQpSZLEOvERzGwG7jT3wqvSpnkHd9YTU73O5UMIBOD7\neGhge3N5wt3wG0OvflvBqR6LO5x8bPl2YA1JH063lQu27wDcZmYf4GInn+vG6R4P15A/3nBcaepn\nwErmMok30/GaCkNsM/AS7une+Sgzex0XLNkP2CN8RutQ5jOS9FuVll18osQ1PAMMkYui5ykpuxie\n0I4ys9XNbH385pcPoXV5rDCOM4zOIbIe09yOv6Vl8YmciJmVTLWqByFj56EkScrFACMDh68DuwfH\n2U7oaf8OOEfLZPhWk/SJ0GQMfmN4V9J4vJdcSI9uAiEs8gvgh+H9M8BvgT9J2kHS4JDxcw3wT1um\n2vVD4FBJP8gPJEvaUtIVJU71b2D50NMFd2jD8JteW+j9f6LEvnl+C5yukAIrnxewX9g2BlgIzAoD\np6d3cd3ftNKyi5uX2Od9/Kb9E0mjJO0M7Is/zXVCLs04IQxK74hn9JzcjWPtht9oq1Zyvbkdf4Mp\nyNg5B4/pRgY4Zva8mT2cXpV6fSxecfU+Se/iEov5HvI5ePrnO7h27i107g0XyhWWG5Au3PZ7YKWU\nEz0SD0v8EQ893II/CXw2dS33AruH5TlJM3FZxb8VPaE/XVwCfDm8n4fHvK/Ee8IH4Vkt5ez8Fa7r\n8Q9Jc/Gnjnwp90uBl/Cxk/+EbbVImDgC/y7ewj+fb5rZU+AaI+GJIa8fvh4utfgecDFwrJn9q5Jj\nBb6E3+yqRk2lF6uFeiipp1zugNZJXJmxTN3DLKGXfwmuU5qNg7e1p6e/k0h9kbQiPs6xVX+exFUP\n5OqEF5jZR7toV/S3X2p9cw/uNogkSYbjd+4ziZU0I5EOhFz2iqQEBzph5m5Zp98TouOvAdlsdmGS\nJFtks9mljbYlEolECmnuGP/jjy9/G7chaZeuG1eX6PQjkUhfpbkd/733rnUqp0LHuhhVJUmSTZMk\nGVyr40cikUi1ae5Qz8KF+doWVZ+1W6CKNQl4strniEQikVrQ3D3+hQvzVS6r6viLaN9Gpx+JRPoN\nzd3jX7Qo7/irUqAtSZIhwIlE7dtIJNKPaXbHX+1QTxswmKh9G4lE+jHN7fgnTHhrEpNopfXBrht3\nTTabbaOGA8WRSG+QNAUXQylVFz4SAZo9xn/44Y+dxEmY2YWNNiUycJHL6c0P0/jfkHSZpMKKjNUg\nhh0jFdHcPf4eEjJ2fgj8PoZ0IlXAgH3M7HZJK+O1m35MKIgWidSb5u7x94BUxs6OeEw/EqkaZvYm\nLjSyKUBKQnCupCclfSrfVtKhchnFn8ulFp+XNDm1fZ0gLThX0j/wmvOktu8XjjlbUqukjVPbXgwV\nNR8PTyIXSVpZ0i2S3pX0T0lVE/6I9C2i4w+U0L4tpUAUiXQXAYSKjZOBvADPdGDnUHN/KvDH8FSQ\nZ3vgaWAFvGb9Raltl+OdlBWAU3ANXwvn2TBs/w5+Q7gZuFHLxMoN13rdA5f02wevvnkcLts4KOwb\naUJiqAdIkmQoXr71dWLGTtOSJMkUitewn5rNZqdU2L5o2y4Q8Fe5Zu8YvOzwqQBm1q5Xa2ZXSjoe\nFzq5Iax+ycwuApB0KXC+pJWAEcB2eF3/xcBdkm5MnfNA4CYzuy3sexbwXeAjwJ2hzblm9nbYfhfw\nppk9Ft5fh98UIk1Iczv+yy7b+HZWY5ImrWFmL5dqls1mFydJ8nXgsZiX37wEhz2lVu3LYMD+Ica/\nK3Aj7rQfkHQI8D1cThD8xrBCat/2p04zmx8kGcfgvfLZBWIuLwH5GvATcKWq/L4m6WVcvD3Pm6nX\nHxS8X0B52cZIP6a5Hf+tt+59imtZ74TXxS9JNpt9tC42RQY0ZnanpHOBMyV9BVfcmgTcG5zzI1Sm\novU6/P/2zj3YqrqK458vz0C5XRumxgTBhEzSCEjS1Lw4SIDPNHTULKyBJgdzpiQNSzOfI9SgNQOC\nwa3GUUupzBiKDBTlYcbjggFBRvloFB8RFjYXWv3x+x3mcLj3no13n7PvOXt9ZvacffZe+/db6+x9\n1ln7t39nLY6Q1NfM/hO3DQIKyQFfAvZXkFL4xRhIUXH3NvBaBjmhomP8ksZL2iJpm6Tr2pG5J+7f\nIGlEqgrs3XvQH7g8oZrTBZhNGLsfQJhA8BrQTdKVwAlJGjCzvxHqtt4sqWcs2XdOkcjPgLMlnSmp\nJ6Fe79uEyl1OzqmY45fUHfgB4UHWMOBSSceXyEwEhpjZUGAqMCdVJfbtOyBlQ1Ht25PaP8hxKkss\nRPIjYDphIsEqwpDOCcBTxaJ0XFrxMsLzgDeAG2ObhT62Esobfh/YCZwNnGtmeztSrUzfTp1QsdKL\nkk4BbjKz8fH99QBmdmeRzFxgmZk9FN9vAc6IU96K23pnpRcbG59j165hDQ0NZ86cObMJz7FT13jp\nRSevdKXSi0dx4Lj6i4TopJzMAA58yPTO2bVrz8CBA5k+ffq9wJ/xGTuO4zgVHeNPGlGX/hqlFon3\n6NFj6ZQpU97cuXPnXMK8fHf6juPknkpG/C8RZhEUGEiI6DuSGUA7sw5iAqoCy81seTkFWltbvzFv\n3rwbYnI1x3GcukZSE9BUVq6CY/w9gK2EP4G8DDwDXGpmm4tkJgLTzGyipJOB2WZ2chtt+ditUxa/\nTpy80mXG+M1sr6RphBQI3YEfmtlmSV+K++81s8WSJkraDvwbuLJS+jiO4ziBikX8aeKRnJMEv06c\nvNJlIn7HyYKYD8dxnA5wx+/UDR7tO04y6j4tc3zKnSvc5nzgNueDSthc946fBFOb6pCmrBXIgKas\nFciApqwVyICmrBXIgKa0G8yD43ccx3GKcMfvOI6TM2pmOmfWOjiO49QibU7zrAXH7ziO46SHD/U4\njuPkDHf8juM4OaNuHH/mZR4zoJzNki6PtrZIelrSR7LQM02SnOcod5KkvZIurKZ+aZPwum6StE7S\nJknLq6xi6iS4rvtLWiJpfbR5cgZqpoakBZJekbSxA5l0fZeZ1fxCSAK3HRgM9ATWA8eXyEwEFsf1\njwOrs9a7CjafArw7ro/Pg81Fcr8HHgMuylrvCp/jRuA5YEB83z9rvatg87eBOwr2Aq8DPbLWvRM2\nnw6MADa2sz9131UvEf9oYLuZ7TCzVuBB4PwSmfOINUnNbA3QKOl91VUzVcrabGarzGxXfLuGUO+g\nlklyngGuBh4m1JqtZZLYexnwiJm9CPvr+dYySWz+B9AQ1xuA163jWsJdGjNbAbzZgUjqvqteHH9b\nJRyPSiBTy44wic3FfBFYXFGNKk9ZmyUdRXAUc+KmWp62luQcDwXeI2mZpGclXVE17SpDEpvnAx+W\n9DKwAbimSrplReq+q16StGVe5jEDEusuaQzwBeDUyqlTFZLYPBu43sxMkjj4nNcSSeztCYwkFDzq\nC6yStNrMtlVUs8qRxOYZwHoza5J0LLBU0nAz211h3bIkVd9VL44/1TKPNUISm4kPdOcD482so9vJ\nWiCJzaOAB4PPpz8wQVKrmT1aHRVTJYm9LwCvmdkeYI+kJ4HhQK06/iQ2fwK4DcDM/iLpr8BxwLNV\n0bD6pO676mWo51lgqKTBknoBlwClX/RHgc8BxDKP/zSzV6qrZqqUtVnS0cAi4LNmtj0DHdOmrM1m\n9gEzO8bMjiGM83+5Rp0+JLuufwmcJqm7pL6Eh39/qrKeaZLE5i3AWIA41n0c8HxVtawuqfuuuoj4\nLYdlHpPYDNwIHAHMiRFwq5mNzkrnzpLQ5roh4XW9RdISoAX4HzDfzGrW8Sc8x7cDCyVtIASvXzez\nNzJTupNIegA4A+gv6QXgJsIQXsV8l6dscBzHyRn1MtTjOI7jJMQdv+M4Ts5wx+84jpMz3PE7juPk\nDHf8juM4OcMdv+M4Ts5wx+90GSTti+mFC8vRHci+lUJ/zZKej339Mf455lDbmC/pQ3F9Rsm+pzur\nY2yn8Lm0SFok6fAy8sMlTUijb6c+8Xn8TpdB0m4z65e2bAdtLAR+ZWaLJJ0FzDKz4Z1or9M6lWtX\nUjMhfe93O5CfDIwys6vT1sWpDzzid7oskg6T9LsYjbdIOq8NmSMlPRkj4o2STovbx0laGY/9qaTD\n2usmvq4AhsRjvxrb2ijpmiJdfh2Lf2yUNCluXy5plKQ7gT5Rj5/EfW/F1wclTSzSuVnShZK6SZop\n6ZlYYGNqgo9lFXBsbGd0tHGtQqGdD8Y0B98BLom6TIq6L5C0Jsoe9Dk6OSPrIgS++FJYgL3Aurg8\nQvjLfr+4rz+wrUh2d3z9GjAjrncDDo+yTwB94vbrgG+10d9CYqEWYBLBqY4kpD/oAxwGbAI+ClwE\nzCs6tiG+LgNGFuvUho4XAM1xvRfwd6A3MBW4IW7vDfwBGNyGnoV2usfP5ar4vh/QPa6PBR6O658H\n7ik6/nbg8rjeCGwF+mZ9vn3JbqmLXD1O3bDHzPaXlZPUE7hD0umEPDTvl/ReM3u16JhngAVR9hdm\ntkFSEzAMWBlzFPUCVrbRn4CZkr4JvEqoWXAWsMhCtkskLSJUSFoCzIqR/WNm9tQh2LUEuDtG4xOA\nJ8zsv5LGASdK+kyUayDcdewoOb6PpHWEvOw7gLlxeyPwY0lDCGl6C9/n0nTU44BzJV0b3/cmZHvc\negg2OHWEO36nK3M5IXofaWb7FNLvvqtYwMxWxB+Gc4BmSd8jVDNaamaXlWnfgGvNbFFhg6SxHOg0\nFbqxbQq1Ts8GbpX0uJndksQIM3tboRbup4CLgQeKdk8zs6VlmthjZiMk9SEkLzsf+DlwC/C4mX1a\n0iBgeQdtXGi1m6PfSRkf43e6Mg3Aq9HpjwEGlQrEmT87zew+4D5C7dLVwKkKRToK4/ND2+mjtMDF\nCuACSX3ic4ELgBWSjgTeNrP7gVmxn1JaJbUXTD1EKIZTuHuA4MSvKhwTx+j7tnM88S7kK8BtCrcy\nDcDLcXdxxsZ/EYaBCvwmHkfsp/PFup2axh2/05UonWJ2P/AxSS3AFcDmNmTHAOslrSVE03dbqDs7\nGXggpu5dScjZXrZPM1sHNBOGkFYT0hxvAE4E1sQhlxuBW9toax7QUni4W9L2b4FPEu5ECvVh7yPk\nzl8raSOhXGRbPxz72zGz9YRi5BcDdxGGwtYSxv8LcsuAYYWHu4Q7g57xAfkm4OZ2PgsnJ/h0Tsdx\nnJzhEb/jOE7OcMfvOI6TM9zxO47j5Ax3/I7jODnDHb/jOE7OcMfvOI6TM9zxO47j5Ax3/I7jODnj\n/wTICsX8iw7QAAAAAElFTkSuQmCC\n",
|
||
"text/plain": [
|
||
"<matplotlib.figure.Figure at 0x10c334610>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Random forests:\n"
|
||
]
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "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\n/iAIggHj/wHSDCwebMwj3gAAAABJRU5ErkJggg==\n",
|
||
"text/plain": [
|
||
"<matplotlib.figure.Figure at 0x10d933b50>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"K-nearest-neighbors:\n"
|
||
]
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "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\n",
|
||
"text/plain": [
|
||
"<matplotlib.figure.Figure at 0x10d93b510>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Gradient Boosting Classifier:\n"
|
||
]
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "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\nSsb/AEsHkVSl0gvmAAAAAElFTkSuQmCC\n",
|
||
"text/plain": [
|
||
"<matplotlib.figure.Figure at 0x10dcfa1d0>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"from sklearn.metrics import roc_curve, auc\n",
|
||
"from scipy import interp\n",
|
||
"\n",
|
||
"def plot_roc(X, y, clf_class, **kwargs):\n",
|
||
" kf = KFold(len(y), n_folds=5, shuffle=True)\n",
|
||
" y_prob = np.zeros((len(y),2))\n",
|
||
" mean_tpr = 0.0\n",
|
||
" mean_fpr = np.linspace(0, 1, 100)\n",
|
||
" all_tpr = []\n",
|
||
" for i, (train_index, test_index) in enumerate(kf):\n",
|
||
" X_train, X_test = X[train_index], X[test_index]\n",
|
||
" y_train = y[train_index]\n",
|
||
" clf = clf_class(**kwargs)\n",
|
||
" clf.fit(X_train,y_train)\n",
|
||
" # Predict probabilities, not classes\n",
|
||
" y_prob[test_index] = clf.predict_proba(X_test)\n",
|
||
" fpr, tpr, thresholds = roc_curve(y[test_index], y_prob[test_index, 1])\n",
|
||
" mean_tpr += interp(mean_fpr, fpr, tpr)\n",
|
||
" mean_tpr[0] = 0.0\n",
|
||
" roc_auc = auc(fpr, tpr)\n",
|
||
" plt.plot(fpr, tpr, lw=1, label='ROC fold %d (area = %0.2f)' % (i, roc_auc))\n",
|
||
" mean_tpr /= len(kf)\n",
|
||
" mean_tpr[-1] = 1.0\n",
|
||
" mean_auc = auc(mean_fpr, mean_tpr)\n",
|
||
" plt.plot(mean_fpr, mean_tpr, 'k--',label='Mean ROC (area = %0.2f)' % mean_auc, lw=2)\n",
|
||
" \n",
|
||
" plt.plot([0, 1], [0, 1], '--', color=(0.6, 0.6, 0.6), label='Random')\n",
|
||
" plt.xlim([-0.05, 1.05])\n",
|
||
" plt.ylim([-0.05, 1.05])\n",
|
||
" plt.xlabel('False Positive Rate')\n",
|
||
" plt.ylabel('True Positive Rate')\n",
|
||
" plt.title('Receiver operating characteristic')\n",
|
||
" plt.legend(loc=\"lower right\")\n",
|
||
" plt.show()\n",
|
||
" \n",
|
||
"\n",
|
||
"print \"Support vector machines:\"\n",
|
||
"plot_roc(X,y,SVC,probability=True)\n",
|
||
"\n",
|
||
"print \"Random forests:\"\n",
|
||
"plot_roc(X,y,RF,n_estimators=18)\n",
|
||
"\n",
|
||
"print \"K-nearest-neighbors:\"\n",
|
||
"plot_roc(X,y,KNN)\n",
|
||
"\n",
|
||
"print \"Gradient Boosting Classifier:\"\n",
|
||
"plot_roc(X,y,GBC)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Feature Importance\n",
|
||
"\n",
|
||
"Now that we understand the accuracy of each individual model for our particular dataset, let's dive a little deeper to get a better understanding of what features or behaviours are causing our customers to churn. In the next section, we will be using a `RandomForestClassifer` to build an ensemble of decision trees to predict whether a customer will churn or not churn. One of the first steps in building a decision tree to calculating the _information gain_ associated with splitting on a particular feature. (More on this later.)\n",
|
||
"\n",
|
||
"Let's look at the Top 10 features in our dataset that contribute to customer churn:"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 12,
|
||
"metadata": {
|
||
"collapsed": false
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Feature ranking:\n",
|
||
"1. Account Length (0.188157)\n",
|
||
"2. Int'l Plan (0.102871)\n",
|
||
"3. VMail Plan (0.096911)\n",
|
||
"4. VMail Message (0.071246)\n",
|
||
"5. Day Mins (0.062060)\n",
|
||
"6. Day Calls (0.032456)\n",
|
||
"7. Day Charge (0.030478)\n",
|
||
"8. Eve Mins (0.026043)\n",
|
||
"9. Eve Calls (0.025411)\n",
|
||
"10. Eve Charge (0.021707)\n"
|
||
]
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "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\n17PcAAAAAElFTkSuQmCC\n",
|
||
"text/plain": [
|
||
"<matplotlib.figure.Figure at 0x10d5ceed0>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"train_index,test_index = train_test_split(churn_df.index)\n",
|
||
"\n",
|
||
"forest = RF()\n",
|
||
"forest_fit = forest.fit(X[train_index], y[train_index])\n",
|
||
"forest_predictions = forest_fit.predict(X[test_index])\n",
|
||
"\n",
|
||
"importances = forest_fit.feature_importances_[:10]\n",
|
||
"std = np.std([tree.feature_importances_ for tree in forest.estimators_],\n",
|
||
" axis=0)\n",
|
||
"indices = np.argsort(importances)[::-1]\n",
|
||
"\n",
|
||
"# Print the feature ranking\n",
|
||
"print(\"Feature ranking:\")\n",
|
||
"\n",
|
||
"for f in range(10):\n",
|
||
" print(\"%d. %s (%f)\" % (f + 1, features[f], importances[indices[f]]))\n",
|
||
"\n",
|
||
"# Plot the feature importances of the forest\n",
|
||
"#import pylab as pl\n",
|
||
"plt.figure()\n",
|
||
"plt.title(\"Feature importances\")\n",
|
||
"plt.bar(range(10), importances[indices], yerr=std[indices], color=\"r\", align=\"center\")\n",
|
||
"plt.xticks(range(10), indices)\n",
|
||
"plt.xlim([-1, 10])\n",
|
||
"plt.show()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Thinking in Probabilities\n",
|
||
"\n",
|
||
"Decision making often favors probability over simple classifications. There's plainly more information in statements like \"there's a 20% chance of rain tomorrow\" and \"about 55% of test takers pass the California bar exam\" than just saying \"it shouldn't rain tomorrow\" or \"you'll probably pass.\" Probability predictions for churn also allow us to gauge a customers expected value, and their expected loss. Who do you want to reach out to first, the client with a 80% churn risk who pays 20,000 annually, or the client who's worth 100,000 a year with a 40% risk? How much should you spend on each client?\n",
|
||
"\n",
|
||
"While I'm moving a bit away from my expertise, being able to ask that question requires producing predictions a little differently. However, `scikit-learn` makes moving to probabilities easy; my three models have `predict_proba()` built right into their class objects. This is the same cross validation code with only a few lines changed."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 13,
|
||
"metadata": {
|
||
"collapsed": false
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"def run_prob_cv(X, y, clf_class, roc=False, **kwargs):\n",
|
||
" kf = KFold(len(y), n_folds=5, shuffle=True)\n",
|
||
" y_prob = np.zeros((len(y),2))\n",
|
||
" for train_index, test_index in kf:\n",
|
||
" X_train, X_test = X[train_index], X[test_index]\n",
|
||
" y_train = y[train_index]\n",
|
||
" clf = clf_class(**kwargs)\n",
|
||
" clf.fit(X_train,y_train)\n",
|
||
" # Predict probabilities, not classes\n",
|
||
" y_prob[test_index] = clf.predict_proba(X_test)\n",
|
||
" return y_prob"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"## How good is good?\n",
|
||
"\n",
|
||
"Determining how good a predictor which gives probabilities rather than classes is a bit more difficult. If I predict there's a 20% likelihood of rain tomorrow I don't get to live out all the possible outcomes of the universe. It either rains or it doesn't.\n",
|
||
"\n",
|
||
"What helps is that the predictors aren't making one prediction, they're making 3000+. So for every time I predict an event to occur 20% of the time I can see how often those events actually happen. Here's we'll use `pandas` to help me compare the predictions made by random forest against the actual outcomes."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 14,
|
||
"metadata": {
|
||
"collapsed": false
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"0.0 1796\n",
|
||
"0.1 681\n",
|
||
"0.2 258\n",
|
||
"0.3 112\n",
|
||
"0.8 94\n",
|
||
"0.9 89\n",
|
||
"0.7 79\n",
|
||
"0.4 74\n",
|
||
"0.5 53\n",
|
||
"0.6 50\n",
|
||
"1.0 47\n",
|
||
"dtype: int64"
|
||
]
|
||
},
|
||
"execution_count": 14,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"import warnings\n",
|
||
"warnings.filterwarnings('ignore')\n",
|
||
"\n",
|
||
"# Use 10 estimators so predictions are all multiples of 0.1\n",
|
||
"pred_prob = run_prob_cv(X, y, RF, n_estimators=10)\n",
|
||
"pred_churn = pred_prob[:,1]\n",
|
||
"is_churn = y == 1\n",
|
||
"\n",
|
||
"# Number of times a predicted probability is assigned to an observation\n",
|
||
"counts = pd.value_counts(pred_churn)\n",
|
||
"counts[:]"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 15,
|
||
"metadata": {
|
||
"collapsed": false
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/html": [
|
||
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
|
||
"<table border=\"1\" class=\"dataframe\">\n",
|
||
" <thead>\n",
|
||
" <tr style=\"text-align: right;\">\n",
|
||
" <th></th>\n",
|
||
" <th>pred_prob</th>\n",
|
||
" <th>count</th>\n",
|
||
" <th>true_prob</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>0 </th>\n",
|
||
" <td> 0.0</td>\n",
|
||
" <td> 1796</td>\n",
|
||
" <td> 0.027840</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1 </th>\n",
|
||
" <td> 0.1</td>\n",
|
||
" <td> 681</td>\n",
|
||
" <td> 0.020558</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2 </th>\n",
|
||
" <td> 0.2</td>\n",
|
||
" <td> 258</td>\n",
|
||
" <td> 0.081395</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>3 </th>\n",
|
||
" <td> 0.3</td>\n",
|
||
" <td> 112</td>\n",
|
||
" <td> 0.089286</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>4 </th>\n",
|
||
" <td> 0.4</td>\n",
|
||
" <td> 74</td>\n",
|
||
" <td> 0.270270</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>5 </th>\n",
|
||
" <td> 0.5</td>\n",
|
||
" <td> 53</td>\n",
|
||
" <td> 0.622642</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>6 </th>\n",
|
||
" <td> 0.6</td>\n",
|
||
" <td> 50</td>\n",
|
||
" <td> 0.800000</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>7 </th>\n",
|
||
" <td> 0.7</td>\n",
|
||
" <td> 79</td>\n",
|
||
" <td> 0.898734</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>8 </th>\n",
|
||
" <td> 0.8</td>\n",
|
||
" <td> 94</td>\n",
|
||
" <td> 0.957447</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>9 </th>\n",
|
||
" <td> 0.9</td>\n",
|
||
" <td> 89</td>\n",
|
||
" <td> 0.977528</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>10</th>\n",
|
||
" <td> 1.0</td>\n",
|
||
" <td> 47</td>\n",
|
||
" <td> 1.000000</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" pred_prob count true_prob\n",
|
||
"0 0.0 1796 0.027840\n",
|
||
"1 0.1 681 0.020558\n",
|
||
"2 0.2 258 0.081395\n",
|
||
"3 0.3 112 0.089286\n",
|
||
"4 0.4 74 0.270270\n",
|
||
"5 0.5 53 0.622642\n",
|
||
"6 0.6 50 0.800000\n",
|
||
"7 0.7 79 0.898734\n",
|
||
"8 0.8 94 0.957447\n",
|
||
"9 0.9 89 0.977528\n",
|
||
"10 1.0 47 1.000000"
|
||
]
|
||
},
|
||
"execution_count": 15,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"from collections import defaultdict\n",
|
||
"true_prob = defaultdict(float)\n",
|
||
"\n",
|
||
"# calculate true probabilities\n",
|
||
"for prob in counts.index:\n",
|
||
" true_prob[prob] = np.mean(is_churn[pred_churn == prob])\n",
|
||
"true_prob = pd.Series(true_prob)\n",
|
||
"\n",
|
||
"# pandas-fu\n",
|
||
"counts = pd.concat([counts,true_prob], axis=1).reset_index()\n",
|
||
"counts.columns = ['pred_prob', 'count', 'true_prob']\n",
|
||
"counts"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"We can see that random forests predicted that 75 individuals would have a 0.9 proability of churn and in actuality that group had a ~0.97 rate.\n",
|
||
"\n",
|
||
"## Calibration and Descrimination\n",
|
||
"\n",
|
||
"Using the `DataFrame` above we can draw a pretty simple graph to help visualize probability measurements. The x axis represents the churn probabilities which random forest assigned to a group of individuals. The y axis is the actual rate of churn within that group, and each point is scaled relative to the size of the group.\n",
|
||
"\n",
|
||
"![](http://blog.yhathq.com/static/img/ggplot.png)\n",
|
||
"\n",
|
||
"Calibration is a relatively simple measurement and can be summed up as so: Events predicted to happen 60% of the time should happen 60% of the time. For all individuals I predict to have a churn risk of between 30 and 40%, the true churn rate for that group should be about 35%. For the graph above think of it as, How close are my predictions to the red line?\n",
|
||
"\n",
|
||
"Discrimination measures _How far are my predictions away from the green line?_ Why is that important?\n",
|
||
"\n",
|
||
"Well, if we assign a churn probability of 15% to every individual we'll have near perfect calibration due to averages, but I'll be lacking any real insight. Discrimination gives a model a better score if it's able to isolate groups which are further from the base set.\n",
|
||
"\n",
|
||
"Equations are replicated from [Yang, Yates, and Smith (1991)](https://www.google.com/search?q=Measures+of+Discrimination+Skill+in+Probabilistic+Judgment&oq=Measures+of+Discrimination+Skill+in+Probabilistic+Judgment) and the code Yhat wrote can be found on GitHub [here](https://github.com/EricChiang/churn/blob/master/churn_measurements.py)."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 17,
|
||
"metadata": {
|
||
"collapsed": false
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"from churn_measurements import calibration, discrimination\n",
|
||
"from sklearn.metrics import roc_curve, auc\n",
|
||
"from scipy import interp\n",
|
||
"from __future__ import division \n",
|
||
"from operator import idiv\n",
|
||
"\n",
|
||
"\n",
|
||
" \n",
|
||
"def print_measurements(pred_prob):\n",
|
||
" churn_prob, is_churn = pred_prob[:,1], y == 1\n",
|
||
" print \" %-20s %.4f\" % (\"Calibration Error\", calibration(churn_prob, is_churn))\n",
|
||
" print \" %-20s %.4f\" % (\"Discrimination\", discrimination(churn_prob,is_churn))\n",
|
||
"\n",
|
||
" print \"Note -- Lower calibration is better, higher discrimination is better\""
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 18,
|
||
"metadata": {
|
||
"collapsed": false
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Support vector machines:\n",
|
||
" Calibration Error 0.0016\n",
|
||
" Discrimination 0.0678\n",
|
||
"Note -- Lower calibration is better, higher discrimination is better\n",
|
||
"Random forests:\n",
|
||
" Calibration Error 0.0072\n",
|
||
" Discrimination 0.0845\n",
|
||
"Note -- Lower calibration is better, higher discrimination is better\n",
|
||
"K-nearest-neighbors:\n",
|
||
" Calibration Error 0.0023\n",
|
||
" Discrimination 0.0443\n",
|
||
"Note -- Lower calibration is better, higher discrimination is better\n",
|
||
"Gradient Boosting Classifier:\n",
|
||
" Calibration Error 0.0017\n",
|
||
" Discrimination 0.0859\n",
|
||
"Note -- Lower calibration is better, higher discrimination is better\n",
|
||
"Random Forest:\n",
|
||
" Calibration Error 0.0062\n",
|
||
" Discrimination 0.0782\n",
|
||
"Note -- Lower calibration is better, higher discrimination is better\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"print \"Support vector machines:\"\n",
|
||
"print_measurements(run_prob_cv(X,y,SVC,probability=True))\n",
|
||
"\n",
|
||
"print \"Random forests:\"\n",
|
||
"print_measurements(run_prob_cv(X,y,RF,n_estimators=18))\n",
|
||
"\n",
|
||
"print \"K-nearest-neighbors:\"\n",
|
||
"print_measurements(run_prob_cv(X,y,KNN))\n",
|
||
"\n",
|
||
"print \"Gradient Boosting Classifier:\"\n",
|
||
"print_measurements(run_prob_cv(X,y,GBC))\n",
|
||
"\n",
|
||
"print \"Random Forest:\"\n",
|
||
"print_measurements(run_prob_cv(X,y,RF))"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"Unlike the classification comparisons earlier, random forest isn't as clearly the front-runner here. While it's good at differentiating between high and low probability churn events, it has trouble assigning an accurate probability estimate to those events. For example the group which random forest predicts to have a 30% churn rate actually had a true churn rate of 14%. Clearly there's more work to be done, but I leave that to you as a challenge."
|
||
]
|
||
}
|
||
],
|
||
"metadata": {
|
||
"kernelspec": {
|
||
"display_name": "Python 2",
|
||
"language": "python",
|
||
"name": "python2"
|
||
},
|
||
"language_info": {
|
||
"codemirror_mode": {
|
||
"name": "ipython",
|
||
"version": 2
|
||
},
|
||
"file_extension": ".py",
|
||
"mimetype": "text/x-python",
|
||
"name": "python",
|
||
"nbconvert_exporter": "python",
|
||
"pygments_lexer": "ipython2",
|
||
"version": "2.7.10"
|
||
}
|
||
},
|
||
"nbformat": 4,
|
||
"nbformat_minor": 0
|
||
}
|