Skip to content

Instantly share code, notes, and snippets.

@embanner
Created August 14, 2017 22:55
Show Gist options
  • Save embanner/f34923c5795f77a2162278f19c576520 to your computer and use it in GitHub Desktop.
Save embanner/f34923c5795f77a2162278f19c576520 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Statistical Segmentation"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Load Data"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>customer_id</th>\n",
" <th>purchase_amount</th>\n",
" <th>date_of_purchase</th>\n",
" <th>days_since</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>760</td>\n",
" <td>25.0</td>\n",
" <td>2009-11-06</td>\n",
" <td>2247</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>860</td>\n",
" <td>50.0</td>\n",
" <td>2012-09-28</td>\n",
" <td>1190</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1200</td>\n",
" <td>100.0</td>\n",
" <td>2005-10-25</td>\n",
" <td>3720</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1420</td>\n",
" <td>50.0</td>\n",
" <td>2009-07-09</td>\n",
" <td>2367</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1940</td>\n",
" <td>70.0</td>\n",
" <td>2013-01-25</td>\n",
" <td>1071</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" customer_id purchase_amount date_of_purchase days_since\n",
"0 760 25.0 2009-11-06 2247\n",
"1 860 50.0 2012-09-28 1190\n",
"2 1200 100.0 2005-10-25 3720\n",
"3 1420 50.0 2009-07-09 2367\n",
"4 1940 70.0 2013-01-25 1071"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%matplotlib inline\n",
"\n",
"from datetime import datetime\n",
"import pandas as pd\n",
"from IPython.display import display\n",
"\n",
"df = pd.read_csv('purchases.txt', delimiter='\\t', header=None, names=['customer_id', 'purchase_amount', 'date_of_purchase'])\n",
"df.date_of_purchase = pd.to_datetime(df.date_of_purchase)\n",
"df['days_since'] = datetime(2016, 1, 1) - df.date_of_purchase\n",
"df.days_since = df.days_since.map(lambda days: days.days) # pull out integer number of days\n",
"\n",
"df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Compute the Following for Each Customer...\n",
"\n",
"- Recency (number of days since last purchase)\n",
"- Frequency (number of purchases)\n",
"- Average purchase amount"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [],
"source": [
"def describe_customer(group):\n",
" d = {'recency': group.days_since.min(),\n",
" 'frequency': len(group),\n",
" 'amount': group.purchase_amount.mean()}\n",
" \n",
" return pd.Series(d)\n",
"\n",
"customer_df = df.groupby('customer_id').apply(describe_customer).reset_index()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Explore the Data"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>customer_id</th>\n",
" <th>amount</th>\n",
" <th>frequency</th>\n",
" <th>recency</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>10</td>\n",
" <td>30.000000</td>\n",
" <td>1.0</td>\n",
" <td>3829.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>80</td>\n",
" <td>71.428571</td>\n",
" <td>7.0</td>\n",
" <td>343.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>90</td>\n",
" <td>115.800000</td>\n",
" <td>10.0</td>\n",
" <td>758.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>120</td>\n",
" <td>20.000000</td>\n",
" <td>1.0</td>\n",
" <td>1401.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>130</td>\n",
" <td>50.000000</td>\n",
" <td>2.0</td>\n",
" <td>2970.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" customer_id amount frequency recency\n",
"0 10 30.000000 1.0 3829.0\n",
"1 80 71.428571 7.0 343.0\n",
"2 90 115.800000 10.0 758.0\n",
"3 120 20.000000 1.0 1401.0\n",
"4 130 50.000000 2.0 2970.0"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>customer_id</th>\n",
" <th>amount</th>\n",
" <th>frequency</th>\n",
" <th>recency</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>18417.000000</td>\n",
" <td>18417.000000</td>\n",
" <td>18417.000000</td>\n",
" <td>18417.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>137573.510887</td>\n",
" <td>57.792985</td>\n",
" <td>2.782375</td>\n",
" <td>1253.037900</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>69504.599881</td>\n",
" <td>154.360109</td>\n",
" <td>2.936888</td>\n",
" <td>1081.437868</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>10.000000</td>\n",
" <td>5.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>81990.000000</td>\n",
" <td>21.666667</td>\n",
" <td>1.000000</td>\n",
" <td>244.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>136430.000000</td>\n",
" <td>30.000000</td>\n",
" <td>2.000000</td>\n",
" <td>1070.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>195100.000000</td>\n",
" <td>50.000000</td>\n",
" <td>3.000000</td>\n",
" <td>2130.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>264200.000000</td>\n",
" <td>4500.000000</td>\n",
" <td>45.000000</td>\n",
" <td>4014.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" customer_id amount frequency recency\n",
"count 18417.000000 18417.000000 18417.000000 18417.000000\n",
"mean 137573.510887 57.792985 2.782375 1253.037900\n",
"std 69504.599881 154.360109 2.936888 1081.437868\n",
"min 10.000000 5.000000 1.000000 1.000000\n",
"25% 81990.000000 21.666667 1.000000 244.000000\n",
"50% 136430.000000 30.000000 2.000000 1070.000000\n",
"75% 195100.000000 50.000000 3.000000 2130.000000\n",
"max 264200.000000 4500.000000 45.000000 4014.000000"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"display(customer_df.head())\n",
"display(customer_df.describe())"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### How Long Has It Been Since a Customer Came Through?"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.text.Text at 0x11398a550>"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjQAAAF5CAYAAACIpbAsAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAIABJREFUeJzt3X24XXV55//3BzBQsOHBQKJVLC0tzYxWIchDHdAWL6ky\ntTq0ltBUxbaMFhga25HaH71kYGZ0cAoMiC0D1CfgTC3WatVCQS1FQBDC4FhDrApmEBKIhMCA4Sn3\n74+1jt3ZJifn7Jxz9l4n79d17Yvste699/115ZjPWev7XTtVhSRJUpftNOwGJEmStpeBRpIkdZ6B\nRpIkdZ6BRpIkdZ6BRpIkdZ6BRpIkdZ6BRpIkdZ6BRpIkdZ6BRpIkdZ6BRpIkdd5IBJokL0jy8STr\nkjyR5K4kh/TVnJ3k/nb/dUkO7Nu/a5KL2/d4LMnVSfbrq9k7yZVJNiRZn+SyJHvMxhglSdLMGXqg\nSbIXcBPwJHAssBj4A2B9T80ZwKnAycBhwOPAtUnm9bzVBcBxwPHA0cALgE/2fdxV7fsf09YeDVwy\n7YOSJEmzKsP+csok7weOrKpXTVBzP/CBqjq/fT4fWAu8tao+0T5/CDihqj7V1hwErASOqKrbkiwG\n/glYUlV3tjXHAp8DXlhVa2ZulJIkaSYN/QwN8CvA7Uk+kWRtkhVJfmd8Z5IDgEXAF8a3VdWjwK3A\nke2mQ4Fd+mpWAat7ao4A1o+Hmdb1QAGHT/uoJEnSrBmFQPNTwDuBVcBrgT8DLkzyW+3+RTShY23f\n69a2+wAWAk+1QWdrNYuAB3t3VtWzwMM9NZIkqYN2GXYDNKHqtqr6k/b5XUleArwD+Pjw2oIkz6OZ\n13MvsHGYvUiS1DG7AT8JXFtV35/pDxuFQPMAzVyXXiuBf9f+eQ0QmrMwvWdpFgJ39tTMSzK/7yzN\nwnbfeE3/qqedgX16avodC1w56ZFIkqR+v0mzKGdGjUKguQk4qG/bQcB3AarqniRraFYmfQ1+OCn4\ncODitv4O4Jm2pndS8P7ALW3NLcBeSQ7umUdzDE1YunUrvd0L8K53vYsXvehFg49whu2999689KUv\nnVTt8uXLOf/882e4o9kxl8YCjmeUzaWxgOMZZXNpLCtXrmTZsmXQ/ls600Yh0JwP3JTkPcAnaILK\n7wC/21NzAXBmkm/R/A9zDnAf8GloJgknuRw4L8l64DHgQuCmqrqtrbk7ybXApUneCcwDLgLGJljh\ntBHgvPPOm8bhTr8kfPWrX2XJkiXbrN1zzz055JBDtlnXBXNpLOB4RtlcGgs4nlE2l8bSY1ambAw9\n0FTV7UneBLwf+BPgHuD0qvpfPTXnJtmd5p4xewE3Aq+rqqd63mo58CxwNbArcA1wSt/HnQh8kGZ1\n06a29vRtd3kd8PMDjG42rKbqFaxfv37bpZIkzVFDDzQAVfV54PPbqDkLOGuC/U8Cp7WPrdU8Aiyb\neof70Df9ZoQ8MewGJEkaulFYti1JkrRdDDQ7mKVLlw67hWkzl8YCjmeUzaWxgOMZZXNpLLNt6F99\nMMraL8i8o1lENaqTtO4FDuC6667jNa95zbCbkSQJgBUrVowvVllSVStm+vM8QyNJkjrPQCNJkjrP\nQCNJkjrPQCNJkjrPQCNJkjrPQCNJkjrPQCNJkjrPQCNJkjrPQCNJkjrPQCNJkjrPQCNJkjrPQCNJ\nkjrPQCNJkjrPQCNJkjrPQCNJkjrPQCNJkjrPQCNJkjrPQCNJkjrPQCNJkjrPQCNJkjrPQCNJkjrP\nQCNJkjrPQCNJkjrPQCNJkjrPQCNJkjrPQCNJkjrPQCNJkjrPQCNJkjrPQCNJkjrPQCNJkjrPQCNJ\nkjrPQCNJkjrPQCNJkjrPQCNJkjrPQCNJkjrPQCNJkjrPQCNJkjrPQCNJkjpv6IEmyXuTbOp7fKOv\n5uwk9yd5Isl1SQ7s279rkouTrEvyWJKrk+zXV7N3kiuTbEiyPsllSfaYjTFKkqSZNfRA0/o6sBBY\n1D7+zfiOJGcApwInA4cBjwPXJpnX8/oLgOOA44GjgRcAn+z7jKuAxcAxbe3RwCUzMBZJkjTLdhl2\nA61nquqhrew7HTinqj4LkOQtwFrgjcAnkswH3g6cUFU3tDUnASuTHFZVtyVZDBwLLKmqO9ua04DP\nJfnDqlozo6OTJEkzalTO0PxMku8l+XaSK5K8CCDJATRnbL4wXlhVjwK3Ake2mw6lCWa9NauA1T01\nRwDrx8NM63qggMNnZkiSJGm2jEKg+QrwNpozKO8ADgD+sZ3fsogmdKzte83adh80l6qeaoPO1moW\nAQ/27qyqZ4GHe2okSVJHDf2SU1Vd2/P060luA74LvBm4ezhd9VsO7Nm3bWn7kCRpxzY2NsbY2Nhm\n2zZs2DCrPQw90PSrqg1JvgkcCPwDEJqzML1naRYC45eP1gDzkszvO0uzsN03XtO/6mlnYJ+emgmc\nDxwyxZFIkrRjWLp0KUuXbv5L/ooVK1iyZMms9TAKl5w2k+S5NGHm/qq6hyZwHNOzfz7NvJeb2013\nAM/01RwE7A/c0m66BdgrycE9H3UMTVi6dWZGIkmSZsvQz9Ak+QDwtzSXmX4C+E/A08D/aksuAM5M\n8i3gXuAc4D7g09BMEk5yOXBekvXAY8CFwE1VdVtbc3eSa4FLk7wTmAdcBIy5wkmSpO4beqABXkhz\nj5jnAQ8BXwaOqKrvA1TVuUl2p7lnzF7AjcDrquqpnvdYDjwLXA3sClwDnNL3OScCH6RZ3bSprT19\nhsYkSZJm0dADTVVtc2ZtVZ0FnDXB/ieB09rH1moeAZZNvUNJkjTqRm4OjSRJ0lQZaCRJUucZaCRJ\nUucZaCRJUucZaCRJUucZaCRJUucZaCRJUucZaCRJUucZaCRJUucZaCRJUucZaCRJUucZaCRJUucZ\naCRJUucZaCRJUucZaCRJUucZaCRJUucZaCRJUucZaCRJUucZaCRJUucZaCRJUucZaCRJUucZaCRJ\nUucZaCRJUucZaCRJUucZaCRJUucZaCRJUucZaCRJUucZaCRJUucZaCRJUucZaCRJUucZaCRJUucZ\naCRJUucZaCRJUucZaCRJUucZaCRJUucZaCRJUucZaCRJUucZaCRJUucZaCRJUucZaCRJUueNXKBJ\n8kdJNiU5r2/72UnuT/JEkuuSHNi3f9ckFydZl+SxJFcn2a+vZu8kVybZkGR9ksuS7DEb45IkSTNn\npAJNklcAJwN39W0/Azi13XcY8DhwbZJ5PWUXAMcBxwNHAy8APtn3EVcBi4Fj2tqjgUumfSCSJGlW\njUygSfJc4Argd4BH+nafDpxTVZ+tqq8Db6EJLG9sXzsfeDuwvKpuqKo7gZOAVyY5rK1ZDBwL/HZV\n3V5VNwOnASckWTTzI5QkSTNlZAINcDHwt1X1xd6NSQ4AFgFfGN9WVY8CtwJHtpsOBXbpq1kFrO6p\nOQJY34adcdcDBRw+rSORJEmzapdhNwCQ5ATg5TTBpN8imtCxtm/72nYfwELgqTbobK1mEfBg786q\nejbJwz01kiSpg4YeaJK8kGb+y2uq6ulh9yNJkrpn6IEGWALsC6xIknbbzsDRSU4Ffg4IzVmY3rM0\nC4Hxy0drgHlJ5vedpVnY7huv6V/1tDOwT0/NViwH9uzbtrR9SJK0YxsbG2NsbGyzbRs2bJjVHkYh\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x113f4e390>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"axes = customer_df.recency.plot(kind='hist')\n",
"axes.set_xlabel('days')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### How Often Do Customers Buy?"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.text.Text at 0x1145e8d10>"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjQAAAF5CAYAAACIpbAsAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAIABJREFUeJzt3XucXXV97//XGzChYAlaJGCVeqHFHC9IggTagrXxQFVq\ntfZYhlIvtLVeoDStv2I9ekT4tSqtBLloKXhEEaa1oJUKBUWttYBQDd4D1YoiYqJIGCgIBPI5f6w1\ndmc7M5nZ2cnsFV/Px2M/yP5+P3vt73evhHnPd112qgpJkqQu22G+ByBJkrSlDDSSJKnzDDSSJKnz\nDDSSJKnzDDSSJKnzDDSSJKnzDDSSJKnzDDSSJKnzDDSSJKnzDDSSJKnzRiLQJDk0yaVJvpNkY5Ln\nT1GzJMmHk9yZ5L+SXJfkMT39C5OcneT2JHcnuTjJnn3beESSC5NMJFmf5Lwku/bVPDbJZUnuSbI2\nyalJRuJzkiRJUxuVH9S7Ap8HXg382JdLJXki8Gngq8BhwFOBU4D7espOB54HvKiteTRwSd+mLgKW\nACva2sOAc3reZwfgcmAn4GDgpcDLgJO3bHqSJGlryqh9OWWSjcALqurSnrZx4IGqeuk0r9kN+D5w\nVFV9qG3bD1gDHFxV1ydZAnwFWFZVN7Q1RwCXAY+pqrVJngNcCuxdVbe3NX8IvBV4VFU9uHVmLUmS\ntsSorNBMK0loVlO+luSKJOuSfCbJb/SULaNZVfn4ZENV3QTcAhzSNh0MrJ8MM62raFaElvfUfGky\nzLSuBBYBTx7itCRJ0hCNfKAB9gQeDpxIczjofwIfAj6Y5NC2Zi+aFZy7+l67ru2brPleb2dVPQTc\n0Vezbopt0FMjSZJGzE7zPYBZmAxd/1hVZ7R//mKSXwReSXNuzbxJ8jPAEcA32fScHkmSNLOdgccB\nV1bVD7ZkQ10INLcDD9KcD9NrDfBL7Z/XAguS7Na3SrO47Zus6b/qaUfgkX01z+h7n8U9fVM5Arhw\n89OQJEnT+B2aC3cGNvKBpqo2JPl3YL++rl8AvtX++XM0oWcFzeGoyZOC9wGubWuuBXZPckDPeTQr\ngADX9dS8PskePefRHA5M0FxhNZVvArz//e9nyZIl087j0ksv5c1vfvPMkx1R73znO1m+fPnmC0fQ\nypUrWbVq1XwPY2icz+januYCzmeUbU9zWbNmDccccwy0P0u3xEgEmvZeMPvShAuAJyTZH7ijqr4N\n/BXwd0k+DXwSeA5wJPBMgKq6K8m7gdOSrAfuBs4Arq6q69uaG5NcCZyb5FXAAuBMYLyqJldfPkoT\nXC5IciKwN83l4WdV1YZphn8fwJIlS1i6dOm0c7z88svZaaef4cEH/2WOn858OJ7mo9kALGWXXXaZ\ncW6jbNGiRZ0d+1Scz+januYCzmeUbU9z6bHFp2yMRKABDqQJKtU+3t62vxc4tqr+MckrgdcD7wBu\nAn6zqq7t2cZK4CHgYmAhcAXwmr73ORo4i+bqpo1t7QmTnVW1McmRwLuAa4B7gPOBNw1jksnDgKcM\nY1Nb2U/TjHO6DCdJ0mgZiUBTVZ9iM1dcVdX5NOFiuv77aZYWjp+h5k7gmM28z7dpVn8kSVJHdOGy\nbUmSpBkZaDSFsfkewNCMjW0/cwHnM8q2p7mA8xll29NchslAoylsP/9Ytrd/+M5ndG1PcwHnM8q2\np7kMk4FGkiR1noFGkiR1noFGkiR1noFGkiR1noFGkiR1noFGkiR1noFGkiR1noFGkiR1noFGkiR1\nnoFGkiR1noFGkiR1noFGkiR1noFGkiR1noFGkiR1noFGkiR1noFGkiR1noFGkiR1noFGkiR1noFG\nkiR1noFGkiR1noFGkiR1noFGkiR1noFGkiR1noFGkiR1noFGkiR13kgEmiSHJrk0yXeSbEzy/Blq\n/6at+aO+9oVJzk5ye5K7k1ycZM++mkckuTDJRJL1Sc5LsmtfzWOTXJbkniRrk5yaZCQ+J0mSNLVR\n+UG9K/B54NVATVeU5IXAcuA7U3SfDjwPeBFwGPBo4JK+mouAJcCKtvYw4Jye7e8AXA7sBBwMvBR4\nGXDy3KckSZK2lZ3mewAAVXUFcAVAkkxVk+RngXcAR9CEjt6+3YBjgaOq6lNt28uBNUkOqqrrkyxp\nX7usqm5oa44HLkvy2qpa2/Y/CXhWVd0OfCnJG4G3Jjmpqh4c+uQlSdIWG5UVmhm1Ied9wKlVtWaK\nkmU04ezjkw1VdRNwC3BI23QwsH4yzLSuolkRWt5T86U2zEy6ElgEPHkIU5EkSVtBJwIN8Drggao6\na5r+vdr+u/ra17V9kzXf6+2sqoeAO/pq1k2xDXpqJEnSiBmJQ04zSbIM+CPggPkey0xWrlzJokWL\nNmkbGxtjbGxsnkYkSdLoGB8fZ3x8fJO2iYmJoW1/5AMN8MvAo4Bv95xesyNwWpI/rqonAGuBBUl2\n61ulWdz20f63/6qnHYFH9tU8o+/9F/f0TWvVqlUsXbp01pOSJOknyVS/5K9evZply5YNZftdOOT0\nPuBpwP49j9uAU2lO4gX4HPAgzdVLACTZD9gHuLZtuhbYPUnvSs8KIMB1PTVPTbJHT83hwATw1eFN\nSZIkDdNIrNC094LZlyZcADwhyf7AHVX1bWB9X/0GYG1VfQ2gqu5K8m6aVZv1wN3AGcDVVXV9W3Nj\nkiuBc5O8ClgAnAmMt1c4AXyUJrhckOREYG/gFOCsqtqwteYvSZK2zEgEGuBA4JM0VxwV8Pa2/b00\nl2P3m+peNSuBh4CLgYU0l4G/pq/maOAsmqubNra1J/xoo1UbkxwJvAu4BrgHOB940wBzkiRJ28hI\nBJr23jGzPvzVnjfT33Y/cHz7mO51dwLHbGbb3waOnO1YJEnS/OvCOTSSJEkzMtBIkqTOM9BIkqTO\nM9BIkqTOM9BIkqTOM9BIkqTOM9BIkqTOM9BIkqTOM9BIkqTOM9BIkqTOM9BIkqTOM9BIkqTOM9BI\nkqTOM9BIkqTOM9BIkqTOM9BIkqTOM9BIkqTOM9BIkqTOM9BIkqTOM9BIkqTOM9BIkqTOM9BIkqTO\nM9BIkqTOM9BIkqTOM9BIkqTOM9BIkqTOM9BIkqTOM9BIkqTOG4lAk+TQJJcm+U6SjUme39O3U5K3\nJflikv9qa96bZO++bSxMcnaS25PcneTiJHv21TwiyYVJJpKsT3Jekl37ah6b5LIk9yRZm+TUJCPx\nOUmSpKmNyg/qXYHPA68Gqq9vF+DpwJuBA4AXAvsBH+6rOx14HvAi4DDg0cAlfTUXAUuAFW3tYcA5\nk51tcLkc2Ak4GHgp8DLg5C2YmyRJ2sp2mu8BAFTVFcAVAEnS13cXcERvW5LjgOuSPKaqbk2yG3As\ncFRVfaqteTmwJslBVXV9kiXtdpZV1Q1tzfHAZUleW1Vr2/4nAc+qqtuBLyV5I/DWJCdV1YNb71OQ\nJEmDGpUVmrnanWYl5872+TKacPbxyYKqugm4BTikbToYWD8ZZlpXtdtZ3lPzpTbMTLoSWAQ8echz\nkCRJQ9K5QJNkIfBW4KKq+q+2eS/ggXY1p9e6tm+y5nu9nVX1EHBHX826KbZBT40kSRoxI3HIabaS\n7AT8A82qyqvneTibWLlyJYsWLdqkbWxsjLGxsXkakSRJo2N8fJzx8fFN2iYmJoa2/c4Emp4w81jg\nV3tWZwDWAguS7Na3SrO47Zus6b/qaUfgkX01z+h768U9fdNatWoVS5cuneVsJEn6yTLVL/mrV69m\n2bJlQ9l+Jw459YSZJwArqmp9X8nngAdprl6afM1+wD7AtW3TtcDuSQ7oed0KIMB1PTVPTbJHT83h\nwATw1eHMRpIkDdtIrNC094LZlyZcADwhyf4057d8l+by66cDRwIPSzK5anJHVW2oqruSvBs4Lcl6\n4G7gDODqqroeoKpuTHIlcG6SVwELgDOB8fYKJ4CP0gSXC5KcCOwNnAKcVVUbtuZnIEmSBjcSgQY4\nEPgkzbkxBby9bX8vzf1nfr1t/3zbnvb5s4B/bdtWAg8BFwMLaS4Df03f+xwNnEVzddPGtvaEyc6q\n2pjkSOBdwDXAPcD5wJuGMktJkrRVjESgae8dM9Phr80eGquq+4Hj28d0NXcCx2xmO9+mWQmSJEkd\n0YlzaCRJkmZioJEkSZ1noJEkSZ1noJEkSZ1noJEkSZ1noJEkSZ1noJEkSZ1noJEkSZ1noJEkSZ1n\noJEkSZ1noJEkSZ1noJEkSZ1noJEkSZ1noJEkSZ1noJEkSZ1noJEkSZ1noJEkSZ1noJEkSZ1noJEk\nSZ1noJEkSZ1noJEkSZ1noJEkSZ1noJEkSZ1noJEkSZ1noJEkSZ1noJEkSZ1noJEkSZ03EoEmyaFJ\nLk3ynSQbkzx/ipqTk9yW5N4kH0uyb1//wiRnJ7k9yd1JLk6yZ1/NI5JcmGQiyfok5yXZta/msUku\nS3JPkrVJTk0yEp+TJEma2qj8oN4V+DzwaqD6O5OcCBwHvAI4CLgHuDLJgp6y04HnAS8CDgMeDVzS\nt6mLgCXAirb2MOCcnvfZAbgc2Ak4GHgp8DLg5C2cnyRJ2op2mu8BAFTVFcAVAEkyRckJwClV9ZG2\n5iXAOuAFwAeS7AYcCxxVVZ9qa14OrElyUFVdn2QJcASwrKpuaGuOBy5L8tqqWtv2Pwl4VlXdDnwp\nyRuBtyY5qaoe3GofgiRJGtiorNBMK8njgb2Aj0+2VdVdwHXAIW3TgTThrLfmJuCWnpqDgfWTYaZ1\nFc2K0PKemi+1YWbSlcAi4MlDmpIkSRqykQ80NGGmaFZkeq1r+wAWAw+0QWe6mr2A7/V2VtVDwB19\nNVO9Dz01kiRpxHQh0EiSJM1oJM6h2Yy1QGhWYXpXTxYDN/TULEiyW98qzeK2b7Km/6qnHYFH9tU8\n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\npnUVzSrU8qHPSpIkDcWcVmiqar7uDvwE4FXA24G/oDmkdEaS+6vqApowUzQrMr3WtX0Ai4EH2qAz\nXc1eNIHtR6rqoSR39NRIkqQRM+iN9ba1HYDrq+qN7fMvJHkK8Erggvkb1n9buXIlixYt2qRtbGyM\nsbGxeRqRJEmjY3x8nPHx8U3aJiaGd1CnK4Hmu8CavrY1wOS5Omtpzu9ZzKarNIuBG3pqFiTZrW+V\nZnHbN1nTf9XTjsAje2qmtGrVKpYuXTpTiSRJP7Gm+iV/9erVLFu2bCjb78pl21cD+/W17Ud7YnBV\n3UwTOFZMdrYnAS8HrmmbPgc82FezH7APcG3bdC2we5IDet5nBU1Yum5Ic5EkSUPWlRWaVcDVSf4c\n+ABNUPl94A96ak4H3pDk68A3gVOAW4EPQ3OScJJ3A6clWQ/cDZwBXF1V17c1Nya5Ejg3yauABcCZ\nwLhXOEmSNLo6EWiq6rNJXgi8FXgjcDNwQlX9XU/NqUl2oblnzO7Ap4HnVNUDPZtaCTwEXAwsBK4A\nXtP3dkcDZ9Fc3bSxrT1ha8xLkiQNRycCDUBVXQ5cvpmak4CTZui/Hzi+fUxXcydwzECDlCRJ86Ir\n59BIkiRNy0AjSZI6z0AjSZI6z0AjSZI6z0AjSZI6z0AjSZI6z0AjSZI6z0AjSZI6z0AjSZI6z0Aj\nSZI6z0AjSZI6z0AjSZI6z0AjSZI6z0AjSZI6z0AjSZI6z0AjSZI6z0AjSZI6z0AjSZI6z0AjSZI6\nz0AjSZI6z0AjSZI6z0AjSZI6z0AjSZI6z0AjSZI6z0AjSZI6z0AjSZI6z0AjSZI6z0AjSZI6r5OB\nJsnrkmxMclpf+8lJbktyb5KPJdm3r39hkrOT3J7k7iQXJ9mzr+YRSS5MMpFkfZLzkuy6LeYlSZIG\n07lAk+QZwCuAL/S1nwgc1/YdBNwDXJlkQU/Z6cDzgBcBhwGPBi7pe4uLgCXAirb2MOCcoU9EkiQN\nTacCTZKHA+8Hfh+4s6/7BOCUqvpIVX0ZeAlNYHlB+9rdgGOBlVX1qaq6AXg58EtJDmprlgBHAL9X\nVZ+tqmuA44Gjkuy19WcoSZIG0alAA5wN/FNVfaK3Mcnjgb2Aj0+2VdVdwHXAIW3TgcBOfTU3Abf0\n1BwMrG/DzqSrgAKWD3UmkiRpaHaa7wHMVpKjgKfTBJN+e9GEjnV97evaPoDFwANt0JmuZi/ge72d\nVfVQkjt6aiRJ0ojpRKBJ8hia81+eXVUb5ns8U1m5ciWLFi3apG1sbIyxsbF5GpEkSaNjfHyc8fHx\nTdomJiaGtv1OBBpgGfAoYHWStG07AoclOQ54EhCaVZjeVZrFwOTho7XAgiS79a3SLG77Jmv6r3ra\nEXhkT82UVq1axdKlS+c6L0mSfiJM9Uv+6tWrWbZs2VC235VzaK4CnkpzyGn/9vFZmhOE96+qb9AE\njhWTL2hPAl4OXNM2fQ54sK9mP2Af4Nq26Vpg9yQH9Lz3CpqwdN3QZyVJkoaiEys0VXUP8NXetiT3\nAD+oqjVt0+nAG5J8HfgmcApwK/Dhdht3JXk3cFqS9cDdwBnA1VV1fVtzY5IrgXOTvApYAJwJjFfV\njCs0kiRp/nQi0EyjNnlSdWqSXWjuGbM78GngOVX1QE/ZSuAh4GJgIXAF8Jq+7R4NnEWzKrSxrT1h\na0xAkiQNR2cDTVX96hRtJwEnzfCa+2nuK3P8DDV3Asds+QglSdK20pVzaCRJkqZloJEkSZ1noJEk\nSZ1noJEkSZ1noJEkSZ1noJEkSZ1noJEkSZ1noJEkSZ1noJEkSZ1noJEkSZ1noJEkSZ1noJEkSZ1n\noJEkSZ1noJEkSZ1noJEkSZ1noJEkSZ1noJEkSZ1noJEkSZ1noJEkSZ1noJEkSZ1noJEkSZ1noJEk\nSZ1noJEkSZ1noJEkSZ1noJEkSZ1noJEkSZ1noJEkSZ3XiUCT5M+TXJ/kriTrknwoyS9MUXdyktuS\n3JvkY0n27etfmOTsJLcnuTvJxUn27Kt5RJILk0wkWZ/kvCS7bu05SpKkwXUi0ACHAmcCy4FnAw8D\nPprkpyYLkpwIHAe8AjgIuAe4MsmCnu2cDjwPeBFwGPBo4JK+97oIWAKsaGsPA84Z/pQkSdKw7DTf\nA5iNqnpu7/MkLwO+BywD/q1tPgE4pao+0ta8BFgHvAD4QJLdgGOBo6rqU23Ny4E1SQ6qquuTLAGO\nAJZV1Q1tzfHAZUleW1Vrt/JUJUnSALqyQtNvd6CAOwCSPB7YC/j4ZEFV3QVcBxzSNh1IE+B6a24C\nbumpORhYPxlmWle177V8a0xEkiRtuc4FmiShOXT0b1X11bZ5L5rQsa6vfF3bB7AYeKANOtPV7EWz\n8vMjVfUQTXDaC0mSNJI6ccipzzuB/wH80nwPRJIkjYZOBZokZwHPBQ6tqu/2dK0FQrMK07tKsxi4\n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\nCJxRVVdW1RqaALRHb0FV3V9Vl1XVHwO/0r7mqczy866q71TV31bVbwGn0ZyPI3WagUbazlXVfTS/\n4b8uyZPa3+RPmaK0f0VitvZpr6r5hSRjwHHA6e17fw24CHhfkhcmeVySg5K8Lslz5vg+7wQe215Z\ntF+S3wBOAt4+wJgfBM5sx7KM5pyZa6pq8hDSJ4ADk/xukn2TnERz+GxGVfWvwKeBS5I8u53vryU5\nfA5j+xrwu+2+Wg68H7h3srO9SuvYJE9O8njgd9v+b83m826vyjq87VsKPIv/DnJSZxlopO6bzUrL\nsTSHmD9L8xv5/x5wO1O95n3ATwHXA2cCq6rqvJ6al7U1fw3cCHwQOJDmcMrs36jqNporrZ4BfJ4m\n4JxLc7LwXN0DvI3mh/+ngbtoruSafK+P0oS+t9HM6+HAe/uHNM22fxP493bbX2m3seM0tVM5luaQ\n0+fa93wHm171dSfNisq/0Zzg+6vAkVU1eQfilzHz570jcBZNiLm8rXnNHMYnjaQ0q8KS9JMhyUtp\nQtcj53sskobHFRpJktR5BhpJktR5HnKSJEmd5wqNJEnqPAONJEnqPAONJEnqPAONJEnqPAONJEnq\nPAONJEnqPAONJEnqPAONJEnqvP8HwS0grsk+qq0AAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x114cee550>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"axes = customer_df.frequency.plot(kind='hist')\n",
"axes.set_xlabel('number of purchases')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### How Much Do Customers Spend?"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.text.Text at 0x11552dbd0>"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAj0AAAF5CAYAAAB0sJvmAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAIABJREFUeJzt3Xm8HFWd9/HPly2OMGwGEpRFFAczLohhVYkoPKKCqOOo\nBFEQHRWRh8FdHxUGZlxgWFQWGVCQLSOCCwoSAXFhkShBQVllEVkSicQQAdlynj+qrnaae2+STt/b\n3anP+/Xql3TV6arfuZV4vzl1TnVKKUiSJK3oVup1AZIkSePB0CNJkhrB0CNJkhrB0CNJkhrB0CNJ\nkhrB0CNJkhrB0CNJkhrB0CNJkhrB0CNJkhrB0CNJkhqh56EnySeSzEryQJK5Sb6d5J+GaXdoknuS\nPJTkoiSbte2fkOS4JPOSLExyTpL129qsk+TMJAuSzE9ycpLV29pslOT8JA8mmZPk8CQ9/zlJkqTl\n0w+/zHcAvgxsC+wMrAr8MMk/DDVI8jHgA8B7gG2AB4GZSVZrOc4xwK7Am4BpwNOBc9vOdRYwBdip\nbjsNOLHlPCsBFwCrANsBewP7AId2paeSJKln0m9fOJpkIvBHYFop5bJ62z3AEaWUo+v3awJzgb1L\nKWfX7+8D9iilfLtuszlwA7BdKWVWkinAb4GppZRr6ja7AOcDG5ZS5iR5DXAesEEpZV7d5r3A54H1\nSimPj9OPQZIkdVk/jPS0WxsowP0ASTYFJgOXDDUopTwAXAVsX2/aimp0prXNTcCdLW22A+YPBZ7a\nxfW5tm1pc91Q4KnNBNYCnteFvkmSpB7pq9CTJFS3qS4rpVxfb55MFUzmtjWfW+8DmAQ8WoehkdpM\nphpB+ptSyhNU4aq1zXDnoaWNJEkaQKv0uoA2xwP/DLy014UsrSRPA3YB7gD+2ttqJEkaKE8BngnM\nLKX8aaxP1jehJ8mxwGuBHUop97bsmgOEajSndRRmEnBNS5vVkqzZNtozqd431KZ9NdfKwLptbbZu\nK21Sy77h7AKcOXLPJEnSEryNarHRmOqL0FMHntcDLy+l3Nm6r5Rye5I5VCuurq3br0k1D+e4utnV\nwON1m9aJzBsDV9ZtrgTWTrJly7yenagC1VUtbT6ZZGLLvJ5XAQuAodtt7e4AOOOMM5gyZcqyd74P\nHXTQQRx99NG9LqMrVqS+gP3pZytSX8D+9LMVqS833HADe+21F9S/S8daz0NPkuOB6cDuwINJhkZW\nFpRShm4XHQN8KsnvqH4whwF3Ad+FamJzkq8CRyWZDywEvgRcXkqZVbe5MclM4KQk+wGrUS2Vn1FK\nGRrF+SFVuDm9Xia/QX2uY0spj43Qhb8CTJkyhRe/+MXL/wPpA2uttZZ96VP2p3+tSH0B+9PPVqS+\ntBiX6SE9Dz3A+6gmKv+4bfs7gdMASimHJ3kq1TN11gZ+BrymlPJoS/uDgCeAc4AJwIXA/m3H3BM4\nlmrV1qK67YFDO0spi5LsBpwAXEH1PKBTgYOXs4+SJKnHeh56SilLtYKslHIIcMgo+x8BDqhfI7X5\nM7DXEs7zB2C3palJkiQNjr5asi5JkjRWDD16kunTp/e6hK5ZkfoC9qefrUh9AfvTz1akvoy3vvsa\nikGT5MXA1VdfffWKOLFMkqQxM3v2bKZOnQrVV0TNHuvzOdIjSZIawdAjSZIawdAjSZIawdAjSZIa\nwdAjSZIawdAjSZIawdAjSZIawdAjSZIawdAjSZIawdAjSZIawdAjSZIawdAjSZIawdAjSZIawdAj\nSZIawdAjSZIawdAjSZIawdAjSZIawdAjSZIaYZVeF7CimDVrFvPnz+91Gctk5ZVXZtq0aay0ktlX\nkrTiM/R0yX777dfrEjpy5JFH8sEPfrDXZUiSNOYMPV1zOvCyXhexTFZZZUfmzp3b6zIkSRoXhp6u\nmQw8s9dFLJNk1V6XIEnSuHEyhyRJagRDjyRJagRDjyRJagRDjyRJagRDjyRJagRDjyRJagRDjyRJ\nagRDjyRJagRDjyRJagRDjyRJagRDjyRJagRDjyRJagRDjyRJagRDjyRJagRDjyRJagRDjyRJagRD\njyRJagRDjyRJagRDjyRJagRDjyRJagRDjyRJagRDjyRJagRDjyRJagRDjyRJagRDjyRJagRDjyRJ\nagRDjyRJagRDjyRJagRDjyRJagRDjyRJagRDjyRJagRDjyRJagRDjyRJagRDjyRJagRDjyRJagRD\njyRJagRDjyRJagRDjyRJagRDjyRJagRDjyRJagRDjyRJagRDjyRJaoS+CD1JdkhyXpK7kyxKsnvb\n/lPq7a2vC9raTEhyXJJ5SRYmOSfJ+m1t1klyZpIFSeYnOTnJ6m1tNkpyfpIHk8xJcniSvvg5SZKk\nzvXLL/PVgV8B7wfKCG1+AEwCJtev6W37jwF2Bd4ETAOeDpzb1uYsYAqwU912GnDi0M463FwArAJs\nB+wN7AMc2lGvJElS31il1wUAlFIuBC4ESJIRmj1SSrlvuB1J1gT2BfYopfyk3vZO4IYk25RSZiWZ\nAuwCTC2lXFO3OQA4P8mHSylz6v3PBV5RSpkHXJfk08DnkxxSSnm8a52WJEnjql9GepbGjknmJrkx\nyfFJ1m3ZN5UqwF0ytKGUchNwJ7B9vWk7YP5Q4KldTDWytG1Lm+vqwDNkJrAW8Lyu9kaSJI2rQQk9\nPwDeAbwS+CjwcuCCllGhycCjpZQH2j43t9431OaPrTtLKU8A97e1mTvMMWhpI0mSBlBf3N5aklLK\n2S1vf5vkOuBWYEfg0p4U9SSfBr7Utm06T556JElS88yYMYMZM2Ystm3BggXjWsNAhJ52pZTbk8wD\nNqMKPXOA1ZKs2TbaM6neR/2/7au5VgbWbWuzddvpJrXsG8VhwM7L1A9Jkppi+vTpTJ+++EDA7Nmz\nmTp16rjVMCi3txaTZEPgacC99aargcepVmUNtdkc2Bi4st50JbB2ki1bDrUTEOCqljYvSDKxpc2r\ngAXA9V3uhiRJGkd9MdJTPytnM6oAAvCsJFtQzbe5HziYavn5nLrdF4CbqSYZU0p5IMlXgaOSzAcW\nUt1ruryUMqtuc2OSmcBJSfYDVgO+DMyoV24B/JAq3Jye5GPABlRDOMeWUh4by5+BJEkaW30ReoCt\nqG5Tlfp1ZL3961TP7nkh1UTmtYF7qMLOZ9qCyEHAE8A5wASqJfD7t51nT+BYqlVbi+q2Bw7tLKUs\nSrIbcAJwBfAgcCpV6JIkSQOsL0JP/Wyd0W61vXopjvEIcED9GqnNn4G9lnCcPwC7Lel8kiRpsAzk\nnB5JkqRlZeiRJEmNYOiRJEmNYOiRJEmNYOiRJEmNYOiRJEmNYOiRJEmNYOiRJEmNYOiRJEmNYOiR\nJEmNYOiRJEmNYOiRJEmNYOiRJEmNYOiRJEmNYOiRJEmNYOiRJEmNYOiRJEmNYOiRJEmNYOiRJEmN\nYOiRJEmNYOiRJEmNYOiRJEmNYOiRJEmNYOiRJEmNYOiRJEmNYOiRJEmNYOiRJEmNYOiRJEmNYOiR\nJEmNYOiRJEmNYOiRJEmNYOiRJEmNYOiRJEmNYOiRJEmNYOiRJEmNYOiRJEmNYOiRJEmNYOiRJEmN\n0FHoSfL2JE/pdjGSJEljpdORnqOBOUlOTLJNNwuSJEkaC52GnqcD/wZsCFye5DdJPpRkve6VJkmS\n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\nD3yrK5VJkiR1Uaeh50PAusAc4B+AHwG3Uc3v+eQon5MkSeqJTh9OOB94RZKXA1tQ3eqaDcwcZp6P\nJElSzy1z6EmyKvB94AOllJ8AP+l6VZIkSV22zLe3SimPAVMBR3QkSdLA6HROz5nAO7tZiCRJ0ljq\n9Lu3CvCBJDsDvwQeXGxnKR9d3sIkSZK6qdPQMxW4tv7vF7bt87aXJEnqO8sUepI8C7i9lLLDGNUj\nSZI0JpZ1Ts8twHpDb5J8I8mk7pYkSZLUfcsaetL2/rXA6l2qRZIkacx0unpLkiRpoCxr6Ck8eaKy\nE5clSVLfW9bVWwFOTfJI/f4pwFeStC9Z/5duFCdJktQtyxp6vt72/oxuFSJJkjSWlin0lFJ8CrMk\nSRpITmSWJEmNYOiRJEmNYOiRJEmNYOiRJEmNYOiRJEmNYOiRJEmNYOiRJEmNYOiRJEmNYOiRJEmN\nYOiRJEmNYOiRJEmNYOiRJEmNYOiRJEmNYOiRJEmNYOiRJEmNYOiRJEmNYOiRJEmNYOiRJEmNYOiR\nJEmNYOiRJEmNYOiRJEmNYOiRJEmNYOiRJEmNYOiRJEmNYOiRJEmNYOiRJEmNYOiRJEmNYOiRJEmN\nYOiRJEmNYOiRJEmNYOiRJEmNYOiRJEmNYOiRJEmNYOiRJEmNMBChJ8nBSRa1va5va3NoknuSPJTk\noiSbte2fkOS4JPOSLExyTpL129qsk+TMJAuSzE9ycpLVx6OPkiRpbA1E6Kn9BpgETK5fLxvakeRj\nwAeA9wDbAA8CM5Os1vL5Y4BdgTcB04CnA+e2neMsYAqwU912GnDiGPRFkiSNs1V6XcAyeLyUct8I\n+w4EDiulfB8gyTuAucAbgLOTrAnsC+xRSvlJ3eadwA1JtimlzEoyBdgFmFpKuaZucwBwfpIPl1Lm\njGnvJEnSmBqkkZ7nJLk7ya1JzkiyEUCSTalGfi4ZalhKeQC4Cti+3rQVVcBrbXMTcGdLm+2A+UOB\np3YxUIBtx6ZLkiRpvAxK6Pk5sA/VSMz7gE2Bn9bzbSZTBZO5bZ+ZW++D6rbYo3UYGqnNZOCPrTtL\nKU8A97e0kSRJA2ogbm+VUma2vP1NklnA74G3ADf2pqp2nwa+1LZtev2SJKnZZsyYwYwZMxbbtmDB\ngnGtYSBCT7tSyoIkNwObAT8GQjWa0zraMwkYulU1B1gtyZptoz2T6n1DbdpXc60MrNvSZhSHATsv\nY08kSWqG6dOnM3364gMBs2fPZurUqeNWw6Dc3lpMkjWoAs89pZTbqULJTi3716Sah3NFvelq4PG2\nNpsDGwNX1puuBNZOsmXLqXaiClRXjU1PJEnSeBmIkZ4kRwDfo7ql9QzgP4DHgP+tmxwDfCrJ74A7\nqIZd7gK+C9XE5iRfBY5KMh9YSHUv6vJSyqy6zY1JZgInJdkPWA34MjDDlVuSJA2+gQg9wIZUz9B5\nGnAfcBmwXSnlTwCllMOTPJXqmTprAz8DXlNKebTlGAcBTwDnABOAC4H9286zJ3As1aqtRXXbA8eo\nT5IkaRwNROgppSxxNnAp5RDgkFH2PwIcUL9GavNnYK9lr1CSJPW7gZzTI0mStKwMPZIkqREMPZIk\nqREMPZIkqREMPZIkqREMPZIkqREMPZIkqREMPZIkqREMPZIkqREMPZIkqREMPZIkqREMPZIkqREM\nPZIkqREMPZIkqREMPZIkqREMPZIkqREMPZIkqREMPZIkqREMPZIkqREMPZIkqREMPZIkqREMPZIk\nqREMPZIkqREMPZIkqREMPZIkqREMPZIkqREMPZIkqREMPZIkqREMPZIkqREMPZIkqREMPZIkqREM\nPZIkqREMPZIkqREMPZIkqREMPZIkqREMPZIkqREMPZIkqREMPZIkqREMPZIkqREMPZIkqREMPZIk\nqREMPZIkqREMPZIkqREMPZIkqREMPZIkqREMPZIkqREMPZIkqREMPZIkqREMPZIkqREMPZIkqREM\nPZIkqREMPZIkqREMPZIkqREMPZIkqREMPZIkqREMPZIkqREMPZIkqREMPZIkqREMPZIkqREMPZIk\nqREMPZIkqREMPZIkqREMPZIkqREMPZIkqREMPZIkqREMPZIkqREMPcNIsn+S25M8nOTnSbbudU3j\nacaMGb0uoWtWpL6A/elnK1JfwP70sxWpL+PN0NMmyVuBI4GDgS2BXwMzk0zsaWHjaEX6C7Ui9QXs\nTz9bkfoC9qefrUh9GW+Gnic7CDixlHJaKeVG4H3AQ8C+vS1LkiQtj1V6XUA/SbIqMBX47NC2UkpJ\ncjGwfc8KG0MPPPAAs2fPXmzbggULnrSt30ycOJGNN96412VIkgaIoWdxE4GVgblt2+cCm4/+0VuA\ndcekqLGyaNFfOOmkr/GVr3zlSfumTp3ag4qW3oQJT+Hcc89hgw02GLVdPwa4Rx55hAkTJnT02V72\n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\nFAxpNq9rAAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1159734d0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"axes = customer_df.amount.plot(kind='hist')\n",
"axes.set_xlabel('average $$$ spent')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Try increasing the number of bins to get a better view..."
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.text.Text at 0x1155c3b90>"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAj0AAAF5CAYAAAB0sJvmAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAIABJREFUeJzt3Xu4XVV97//3BzCh4EGggQSrqBSLqRaEjVxqoWr4SRW0\nWo9KKN7QY71AKafWS48ohZ5qsSIiaDlgRbnsilALCiUCWkVu0QTFSsAbNCIkGAibyCUBMn5/zLlh\nZbJ3Litr771W5vv1POthrzm/a84x1kzYn4w5xloppSBJkrSp22yqGyBJkjQZDD2SJKkVDD2SJKkV\nDD2SJKkVDD2SJKkVDD2SJKkVDD2SJKkVDD2SJKkVDD2SJKkVDD2SJKkV+iL0JDkgySVJfpVkdZJX\nr6X2n+uav2xsn57k9CTLkqxIcmGSHRs12yU5L8lIkuVJzkqydaPmmUkuTfJAkiVJTkrSF++TJEnq\nXr/8Mt8a+AHwHmDcLwNL8lpgX+BXY+w+BTgEeB1wIPB04KJGzfnAbGBOXXsgcEbH8TcDLgO2APYD\n3gK8FThhw7skSZL6SfrtC0eTrAZeU0q5pLH9d4DrgIOpgsmnSimn1vu2AX4NHFZK+Wq9bTdgEbBf\nKWV+ktnAj4GhUsqNdc3BwKXAM0opS5K8ArgE2KmUsqyu+Qvg48AOpZRHJ7j7kiRpgvTLSM9aJQnw\nJeCkUsqiMUqGqEZnrhrdUEq5FVgM7F9v2g9YPhp4aldSjSzt21Hzo9HAU5sHPA14fg+6IkmSpshA\nhB7gg8CqUspp4+yfVe+/v7F9ab1vtObuzp2llMeAexs1S8c4Bh01kiRpAG0x1Q1YlyRDwF8Ce051\nW8aS5LepbrndDjw8ta2RJGmgbAk8G5hXSrlnok/W96EH+CNgB+CX1V0uADYHTk7yV6WUXYAlwLQk\n2zRGe2bW+6j/21zNtTmwfaPmRY3zz+zYN5aDgfM2qEeSJKnTn1MtNppQgxB6vgRc0dj2jXr7F+rn\nC4BHqVZldU5k3plq8jP1f7dNsmfHvJ45QIAbOmr+NsmMjnk9LwdGgJvHad/tAOeeey6zZ8/upn99\n59hjj+VTn/rUVDejJzalvoD96WebUl/A/vSzTakvixYt4ogjjoD6d+lE64vQU39Wzq5UAQRglyR7\nAPeWUn4JLG/UPwIsKaX8FKCUcn+Sz1ON/iwHVgCnAteUUubXNbckmQecmeTdwDTgM8BwKWV0FOcb\nVOHmnCQfAHYCTgROK6U8Mk7zHwaYPXs2e+2110a/F/3gaU97mn3pU/anf21KfQH70882pb50mJTp\nIX0ReoC9gW9RraQqwCfr7V8Ejhyjfqx19scCjwEXAtOBy4H3NmoOB06jWrW1uq495vGDlrI6yaHA\n54BrgQeAs4GPdtEnSZLUR/oi9JRSvs0GrCSr5/E0t60Ejq4f473uPuCIdRz7l8Ch69sWSZI0GAZl\nybokSdJGMfToSebOnTvVTeiZTakvYH/62abUF7A//WxT6stk67uvoRg0SfYCFixYsGBTnFgmSdKE\nWbhwIUNDQ1B9RdTCiT6fIz2SJKkVDD2SJKkVDD2SJKkVDD2SJKkVDD2SJKkVDD2SJKkVDD2SJKkV\nDD2SJKkVDD2SJKkVDD2SJKkVDD2SJKkVDD2SJKkVDD2SJKkVDD2SJKkVDD2SJKkVDD2SJKkVDD2S\nJKkVDD2SJKkVtpjqBmwqVq1axcqVKx9/Pm3aNJJMYYskSVInR3p6ZP/992fLLbd8/PHhD39kqpsk\nSZI6ONLTMx8AXlD/fBrXX3/9VDZGkiQ1GHp65qD6AfB14J4pbIskSWry9pYkSWoFQ48kSWoFQ48k\nSWoFQ48kSWoFQ48kSWoFQ48kSWoFQ48kSWoFQ48kSWqFvgg9SQ5IckmSXyVZneTVHfu2SPKPSW5K\n8pu65otJdmocY3qS05MsS7IiyYVJdmzUbJfkvCQjSZYnOSvJ1o2aZya5NMkDSZYkOSlJX7xPkiSp\ne/3yy3xr4AfAe4DS2LcV8ELg74A9gdcCuwEXN+pOAQ4BXgccCDwduKhRcz4wG5hT1x4InDG6sw43\nl1F9UvV+wFuAtwInbETfJElSH+iLr6EopVwOXA6QxleTl1LuBw7u3JbkKOCGJM8opdyRZBvgSOCw\nUsq365q3AYuS7FNKmZ9kdn2coVLKjXXN0cClSd5XSllS738e8NJSyjLgR0mOAz6e5PhSyqMT9y5I\nkqSJ1C8jPRtqW6oRofvq50NUAe6q0YJSyq3AYmD/etN+wPLRwFO7sj7Ovh01P6oDz6h5wNOA5/e4\nD5IkaRINXOhJMh34OHB+KeU39eZZwKp6VKjT0nrfaM3dnTtLKY8B9zZqlo5xDDpqJEnSABqo0JNk\nC+ArVKMz75ni5kiSpAHSF3N61kdH4Hkm8LKOUR6AJcC0JNs0Rntm1vtGa5qruTYHtm/UvKhx6pkd\n+9biOODU+ucF3HTTKoaHh5k7d+46eiZJ0qZveHiY4eHhNbaNjIxMahsGIvR0BJ5dqCYZL2+ULAAe\npVqV9dX6NbsBOwPX1TXXAdsm2bNjXs8cIMANHTV/m2RGx7yelwMjwM1rb+WJwEH1z4ex++73GHgk\nSarNnTv3Sb8XFy5cyNDQ0KS1oS9CT/1ZObtSBRCAXZLsQTXf5i6qpecvBA4FnpJkdPTl3lLKI6WU\n+5N8Hjg5yXJgBdWwyzWllPkApZRbkswDzkzybmAa8BlguF65BfANqnBzTpIPADtRpZnTSimPTOR7\nIEmSJlZfhB5gb+BbVHN1CvDJevsXqT6f51X19h/U21M/fynwnXrbscBjwIXAdKol8O9tnOdw4DSq\nVVur69pjRneWUlYnORT4HHAt8ABwNvDRnvRSkiRNmb4IPfVn66xtUvU6J1yXUlYCR9eP8WruA45Y\nx3F+STWiJEmSNiEDtXpLkiSpW4YeSZLUCoYeSZLUCoYeSZLUCoYeSZLUCoYeSZLUCoYeSZLUCoYe\nSZLUCoYeSZLUCoYeSZLUCoYeSZLUCoYeSZLUCoYeSZLUCoYeSZLUCoYeSZLUCoYeSZLUCoYeSZLU\nCoYeSZLUCoYeSZLUCoYeSZLUCoYeSZLUCoYeSZLUCoYeSZLUCoYeSZLUCoYeSZLUCoYeSZLUCoYe\nSZLUCoYeSZLUCoYeSZLUCoYeSZLUCoYeSZLUCoYeSZLUCoYeSZLUCoYeSZLUCn0RepIckOSSJL9K\nsjrJq8eoOSHJnUkeTHJFkl0b+6cnOT3JsiQrklyYZMdGzXZJzksykmR5krOSbN2oeWaSS5M8kGRJ\nkpOS9MX7JEmSutcvv8y3Bn4AvAcozZ1JPgAcBbwT2Ad4AJiXZFpH2SnAIcDrgAOBpwMXNQ51PjAb\nmFPXHgic0XGezYDLgC2A/YC3AG8FTtjI/kmSpCm2xVQ3AKCUcjlwOUCSjFFyDHBiKeXrdc2bgaXA\na4ALkmwDHAkcVkr5dl3zNmBRkn1KKfOTzAYOBoZKKTfWNUcDlyZ5XyllSb3/ecBLSynLgB8lOQ74\neJLjSymPTtibIEmSJlS/jPSMK8lzgFnAVaPbSin3AzcA+9eb9qYKcJ01twKLO2r2A5aPBp7alVQj\nS/t21PyoDjyj5gFPA57foy5JkqQp0PehhyrwFKqRnU5L630AM4FVdRgar2YWcHfnzlLKY8C9jZqx\n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\n+vkP61ts7wLOmYDzSZKkTUy3oedrwHFJ3lg/L0l+B/g48G89adma7qJaEt9pEfBn9c9LgFCN5nSO\n9swEbuyomZZkm8Zoz8x632hNczXX5sD2HTXjOI7q44sAFnDTTasYHh5m7ty5a3+ZJEktMDw8zPDw\n8BrbRkZGJrUN3Yaev6YKN0uA3wK+SbUS6nvA367ldd26hurLTDvtRj2ZuZRyW5IlVCuuboJqdRnV\nPJzT6/oFwKN1zVfrmt2AnXniS1OvA7ZNsmfHvJ45VIHqhrU38UTgoPrnw9h993sMPJIk1ebOnfuk\n34sLFy5kaGho0trQ7YcTLgdemuSPgT2obnUtBOaNMc+nFz4FXJPkQ8AFVGHmHVSfAD3qFODDSX4G\n3E6VQu4ALq7bfH+SzwMnJ1kOrKAamrmmlDK/rrklyTzgzCTvBqYBnwGGXbklSdJg2+DQk+QpwNeB\no+ql39/ueasaSinfT/JaqttnxwG3AceUUv61o+akJFtRfabOtsDVwCtKKas6DnUs8BhwITAduBx4\nb+N0hwOnUa3aWl3XHjMR/ZIkSZNng0NPKeWRJENUq6UmTSnlMuCyddQcDxy/lv0rgaPrx3g19wFH\ndNVISZLUt7pdsn4e8LZeNkSSJGkidTuRuQBHJTkI+D7VVz48sbOU929swyRJknqp29AzRL1KCti9\nsW9Sb3tJkiStjw0KPUl2AW4rpRwwQe2RJEmaEBs6p+enwA6jT5J8OcnM3jZJkiSp9zY09KTx/JXA\n1j1qiyRJ0oTpdvWWJEnSQNnQ0FN48kRlJy5LkqS+t6GrtwKcnWRl/XxL4J+TNJes/9mTXilJkjSF\nNjT0fLHx/NxeNUSSJGkibVDoKaX4KcySJGkgOZFZkiS1gqFHkiS1gqFHkiS1gqFHkiS1gqFHkiS1\ngqFHkiS1gqFHkiS1gqFHkiS1gqFHkiS1gqFHkiS1gqFHkiS1gqFHkiS1gqFHkiS1gqFHkiS1gqFH\nkiS1gqFHkiS1gqFHkiS1gqFHkiS1gqFHkiS1gqFHkiS1gqFHkiS1gqFHkiS1wkCGniQfTLI6ycmN\n7SckuTPJg0muSLJrY//0JKcnWZZkRZILk+zYqNkuyXlJRpIsT3JWkq0no1+SJGniDFzoSfIi4J3A\nDxvbPwAcVe/bB3gAmJdkWkfZKcAhwOuAA4GnAxc1TnE+MBuYU9ceCJzR845IkqRJNVChJ8lTgXOB\ndwD3NXYfA5xYSvl6KeW/gDdThZrX1K/dBjgSOLaU8u1Syo3A24AXJ9mnrpkNHAy8vZTy/VLKtcDR\nwGFJZk18DyVJ0kQZqNADnA58rZTyzc6NSZ4DzAKuGt1WSrkfuAHYv960N7BFo+ZWYHFHzX7A8joQ\njboSKMC+Pe2JJEmaVFtMdQPWV5LDgBdShZemWVTBZGlj+9J6H8BMYFUdhsarmQXc3bmzlPJYkns7\naiRJ0gAaiNCT5BlU83EOKqU8MtXtkSRJg2cgQg8wBOwALEySetvmwIFJjgKeB4RqNKdztGcmMHqr\nagkwLck2jdGemfW+0Zrmaq7Nge07asZxHHBq/fMCbrppFcPDw8ydO3d9+yhJ0iZreHiY4eHhNbaN\njIxMahtSSpnUE3ajXjL+rMbms4FFwMdLKYuS3Al8opTyqfo121AFoDeXUr5SP/81cFgp5at1zW71\nMfYrpcxP8jzgx8Deo/N6krwcuAx4RinlScEnyV7AArgCOKjeehgve9k9XHXVFT18FyRJ2rQsXLiQ\noaEhgKFSysKJPt9AjPSUUh4Abu7cluQB4J5SyqJ60ynAh5P8DLgdOBG4A7i4Psb9ST4PnJxkObCC\namjmmlLK/LrmliTzgDOTvBuYBnwGGB4r8EiSpMExEKFnHGsMUZVSTkqyFdVn6mwLXA28opSyqqPs\nWOAx4EJgOnA58N7GcQ8HTqNatbW6rj1mIjogSZImz8CGnlLKy8bYdjxw/Fpes5Lqc3eOXkvNfcAR\nG99CSZLUTwbtc3okSZK6YuiRJEmtMLC3t/rdww8/zMKFa05EnzFjBjvvvPMUtUiSpHYz9EyIB7j+\n+utHl+E9bsstt+LWWxcZfCRJmgLe3poQK1m9+lGq70ZdUD/O5eGHH2TZsmVT2zRJklrKkZ4JNRvY\na6obIUmScKRHkiS1hKFHkiS1gqFHkiS1gqFHkiS1gqFHkiS1gqFHkiS1gqFHkiS1gqFHkiS1gqFH\nkiS1gqFHkiS1gqFHkiS1gqFHkiS1gqFHkiS1gqFHkiS1gqFHkiS1gqFHkiS1gqFHkiS1gqFHkiS1\ngqFHkiS1gqFHkiS1gqFHkiS1gqFHkiS1gqFHkiS1gqFHkiS1gqFHkiS1gqFHkiS1gqFHkiS1gqFH\nkiS1wkCEniQfSjI/yf1Jlib5apLfG6PuhCR3JnkwyRVJdm3sn57k9CTLkqxIcmGSHRs12yU5L8lI\n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\nRK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x115973650>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"axes = customer_df.amount.plot(kind='hist', bins=100)\n",
"axes.set_xlabel('average $$$ spent')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Normalize Data for Analysis\n",
"\n",
"Take the log of average amount spent for better visualization."
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.text.Text at 0x116e696d0>"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAicAAAF5CAYAAABEPIrHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAIABJREFUeJzt3X+cVmWd//HX2x9AaIBmglaUpRF9LZMx0C1x+9Jq5laW\nu+Uo+StzNXXZ2fymbpqsbL/om0P+qPyqZf4aM8zMLFlR1xRJVsd0y4E0MfIHKAkjYaLC5/vHdY0e\nTsMwc3MP93Hm/Xw87gfc53zuc65zz8D9vq9zXecoIjAzMzOrii0a3QAzMzOzIocTMzMzqxSHEzMz\nM6sUhxMzMzOrFIcTMzMzqxSHEzMzM6sUhxMzMzOrFIcTMzMzqxSHEzMzM6sUhxMzMzOrlEqEE0nb\nSpol6VFJz0m6U9JepZqzJT2R198sadfS+qGSLpC0XNIqSbMl7Viq2U7SlZI6Ja2QdLGkbTbHMZqZ\nmVnvVCKcAJcAU4DDgd2Bm4G5knYCkHQqcBJwHDARWA3MkTSksI1ZwEHAIcBkYGfg2tJ+rgLG530d\nlOsu7J9DMjMzs1qo0Tf+kzQMWAV8JCJuKiy/B/h5RHxJ0hPANyKiNa8bASwDjoyIa/Lzp4FDI+K6\nXDMO6AD2jogFksYDvwWaIuK+XHMAcCPwxohYurmO2czMzDasCj0nWwFbAmtKy/8CvF/SLsAY4Jau\nFRHxLHA3sE9etFfeTrFmEbCkULM3sKIrmGRzgQAm1etgzMzMbNM0PJxExJ+B+cCZknaStIWkqaRQ\nsRMpmASpp6RoWV4HMBp4IYeWDdWMAZ4q7Xst8EyhxszMzBpsq0Y3IJsKfA94HHgJaCeND2lqZKMk\nvQ44AHgUeL6RbTEzM3uVGQa8BZgTEX/qywsrEU4iYjHwAUmvAUZExDJJVwOPAEsBkXpHir0no4Gu\nUzRLgSGSRpR6T0bndV015dk7WwLbF2rKDgCurPnAzMzM7HBSh0OvVSKcdImIvwB/kbQdKRicEhGL\nJS0lzbB5AF4eEDsJuCC/9F5Sj8sUoDggdizplBH5z1GS9iyMO5lCCj53b6BJjwJcccUVjB8/vl6H\nWUktLS20trY2uhn9zsc58AyWY/VxDiyD4Tg7OjqYOnUq5M/SvqhEOJG0PykkLAJ2A2YCDwKX5pJZ\nwBmSHiYd5AzgMeB6SANkJV0CnCNpBWn2z7nAvIhYkGsWSpoDXCTpBGAIcB7Q1sNMnecBxo8fz4QJ\nE+p6zFUzcuTIAX+M4OMciAbLsfo4B5bBcpxZn4dFVCKcACOBrwJvIA1QnQ2ckQesEhEzJQ0nXZNk\nFHAHcGBEvFDYRguwNr92KHATcGJpP4cB55Nm6azLtdP66ZjMzMysBpUIJxHxI+BHG6mZDkzvYf0a\n4OT82FDNStLgWzMzM6uohk8lNjMzMytyODEAmpubG92EzcLHOfAMlmP1cQ4sg+U4a9Xwy9dXmaQJ\nwL333nvvYBq4ZGZmtsna29tpamqCdNuY9r681j0nZmZmVikOJ2ZmZlYpDidmZmZWKQ4nZmZmVikO\nJ2ZmZlYpDidmZmZWKQ4nZmZmVikOJ2ZmZlYpDidmZmZWKQ4nZmZmVikOJ2ZmZlYpDidmZmZWKQ4n\nZmZmVikOJ2ZmZlYpDidmZmZWKQ4nZmZmVikOJ2ZmZlYpDidmZmZWKQ4nZmZmVikOJ2ZmZlYpDQ8n\nkraQNEPSI5Kek/SwpDO6qTtb0hO55mZJu5bWD5V0gaTlklZJmi1px1LNdpKulNQpaYWkiyVt09/H\naGZmZr3X8HACnAb8E/A54B3AF4AvSDqpq0DSqcBJwHHARGA1MEfSkMJ2ZgEHAYcAk4GdgWtL+7oK\nGA9MybWTgQvrf0hmZmZWq60a3QBgH+D6iLgpP18i6TBSCOkyDZgRET8DkHQEsAw4GLhG0gjgGODQ\niLg91xwNdEiaGBELJI0HDgCaIuK+XHMycKOkUyJiaf8fqjXSkiVLWL58eaOb0a0ddtiBsWPHNroZ\nZmaVUIVwchfwWUm7RcRDkvYA3ge0AEjaBRgD3NL1goh4VtLdpGBzDbAX6ViKNYskLck1C4C9gRVd\nwSSbCwQwCbi+/w7RGm3JkiWMGzee559/rtFN6dawYcNZtKjDAcXMjGqEk68BI4CFktaSTjV9MSKu\nzuvHkALEstLrluV1AKOBFyLi2R5qxgBPFVdGxFpJzxRqbIBavnx5DiZXkM7sVUkHzz8/leXLlzuc\nmJlRjXDyKeAw4FDgQeA9wLckPRERlze0ZTYAjQcmNLoRZmbWgyqEk5nAVyPiR/n5byW9BTgduBxY\nCojUO1LsPRkNdJ2iWQoMkTSi1HsyOq/rqinP3tkS2L5Q062WlhZGjhy53rLm5maam5t7cXhmZmYD\nW1tbG21tbest6+zsrHl7VQgnw4G1pWXryDOJImKxpKWkGTYPAOQBsJOAC3L9vcBLuea6XDMOGAvM\nzzXzgVGS9iyMO5lCCj5399TA1tZWJkzwt20zM7PudPeFvb29naamppq2V4VwcgNwhqTHgN+S+txb\ngIsLNbNyzcPAo8AM4DHyINY8QPYS4BxJK4BVwLnAvIhYkGsWSpoDXCTpBGAIcB7Q5pk6ZmZm1VGF\ncHISKWxcQDrt8gTwnbwMgIiYKWk46Zoko4A7gAMj4oXCdlpIPTCzgaHATcCJpX0dBpxPmqWzLtdO\nq/8hmZmZWa0aHk4iYjXwr/nRU910YHoP69cAJ+fHhmpWAlNraaeZmZltHlW4QqyZmZnZyxxOzMzM\nrFIcTszMzKxSHE7MzMysUhxOzMzMrFIcTszMzKxSHE7MzMysUhxOzMzMrFIcTszMzKxSHE7MzMys\nUhxOzMzMrFIcTszMzKxSHE7MzMysUhxOzMzMrFIcTszMzKxSHE7MzMysUhxOzMzMrFIcTszMzKxS\nHE7MzMysUhxOzMzMrFIcTszMzKxSHE7MzMysUhxOzMzMrFIcTszMzKxSGh5OJC2WtK6bx3mFmrMl\nPSHpOUk3S9q1tI2hki6QtFzSKkmzJe1YqtlO0pWSOiWtkHSxpG0213GamZlZ7zQ8nAB7AWMKj78D\nArgGQNKpwEnAccBEYDUwR9KQwjZmAQcBhwCTgZ2Ba0v7uQoYD0zJtZOBC/vliMzMzKxmWzW6ARHx\np+JzSR8Bfh8Rd+RF04AZEfGzvP4IYBlwMHCNpBHAMcChEXF7rjka6JA0MSIWSBoPHAA0RcR9ueZk\n4EZJp0TE0v4/UjMzM+uNKvScvEzS1sDhwCX5+S6k3pRbumoi4lngbmCfvGgvUsgq1iwClhRq9gZW\ndAWTbC6ph2ZSfxyLmZmZ1aZS4QT4ODAS+EF+PoYUIJaV6pbldQCjgRdyaNlQzRjgqeLKiFgLPFOo\nMTMzswpo+GmdkmOAX1TtNEtLSwsjR45cb1lzczPNzc0NapGZmVl1tLW10dbWtt6yzs7OmrdXmXAi\naSzwQdJYki5LAZF6R4q9J6OB+wo1QySNKPWejM7rumrKs3e2BLYv1GxQa2srEyZM6P3BmJmZDSLd\nfWFvb2+nqamppu1V6bTOMaQA8vOuBRGxmBQepnQtywNgJwF35UX3Ai+VasYBY4H5edF8YJSkPQv7\nm0IKPnfX+0DMzMysdpXoOZEk4Cjg0ohYV1o9CzhD0sPAo8AM4DHgekgDZCVdApwjaQWwCjgXmBcR\nC3LNQklzgIsknQAMAc4D2qp2CsnMzGywq0Q4IZ3OeRPw/fKKiJgpaTjpmiSjgDuAAyPihUJZC7AW\nmA0MBW4CTixt6jDgfNIsnXW5dlp9D8PMzMw2VSXCSUTcDGzZw/rpwPQe1q8BTs6PDdWsBKbW3Egz\nMzPbLKo05sTMzMzM4cTMzMyqxeHEzMzMKsXhxMzMzCrF4cTMzMwqxeHEzMzMKsXhxMzMzCrF4cTM\nzMwqxeHEzMzMKsXhxMzMzCrF4cTMzMwqxeHEzMzMKsXhxMzMzCrF4cTMzMwqxeHEzMzMKsXhxMzM\nzCrF4cTMzMwqxeHEzMzMKsXhxMzMzCrF4cTMzMwqxeHEzMzMKsXhxMzMzCrF4cTMzMwqpRLhRNLO\nki6XtFzSc5LulzShVHO2pCfy+psl7VpaP1TSBXkbqyTNlrRjqWY7SVdK6pS0QtLFkrbZHMdoZmZm\nvdPwcCJpFDAPWAMcAIwHPg+sKNScCpwEHAdMBFYDcyQNKWxqFnAQcAgwGdgZuLa0u6vy9qfk2snA\nhXU/KDMzM6vZVo1uAHAasCQiji0s+0OpZhowIyJ+BiDpCGAZcDBwjaQRwDHAoRFxe645GuiQNDEi\nFkgaTwo/TRFxX645GbhR0ikRsbQfj9HMzMx6qeE9J8BHgHskXSNpmaR2SS8HFUm7AGOAW7qWRcSz\nwN3APnnRXqSgVaxZBCwp1OwNrOgKJtlcIIBJdT8qMzMzq0kVwslbgROARcD+wHeAcyV9Oq8fQwoQ\ny0qvW5bXAYwGXsihZUM1Y4CniisjYi3wTKHGzMzMGqwKp3W2ABZExJn5+f2SdgeOBy5vXLPMzMys\nEaoQTp4EOkrLOoBP5L8vBUTqHSn2nowG7ivUDJE0otR7Mjqv66opz97ZEti+UNOtlpYWRo4cud6y\n5uZmmpube3qZmZnZoNDW1kZbW9t6yzo7O2veXhXCyTxgXGnZOPKg2IhYLGkpaYbNAwB5AOwk4IJc\nfy/wUq65LteMA8YC83PNfGCUpD0L406mkILP3T01sLW1lQkTJvRUYmZmNmh194W9vb2dpqammrZX\nhXDSCsyTdDpwDSl0HAt8tlAzCzhD0sPAo8AM4DHgekgDZCVdApwjaQWwCjgXmBcRC3LNQklzgIsk\nnQAMAc4D2jxTx8zMrDoaHk4i4h5JHwe+BpwJLAamRcTVhZqZkoaTrkkyCrgDODAiXihsqgVYC8wG\n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\nmZnZIOVwYmZmZpXicGJmZmaV4nBiZmZmleJwYmZmZpXicGJmZmaV4nBiZmZmleJwYmZmZpXicGJm\nZmaV4nBiZmZmldLwy9fbwLFkyRKWL1/e6GZ0q6Ojo9FNMDOzXnI4sbpYsmQJ48aN5/nnn2t0U8zM\n7FXO4cTqYvny5TmYXAGMb3RzuvFz4MxGN8LMzHrB4cTqbDwwodGN6IZP65iZvVp4QKyZmZlVisOJ\nmZmZVYrDiZmZmVWKw4mZmZlVisOJmZmZVYrDiZmZmVWKw4mZmZlVisOJmZmZVYrDiZmZmVVKw8OJ\npNMlLZD0rKRlkq6T9PZu6s6W9ISk5yTdLGnX0vqhki6QtFzSKkmzJe1YqtlO0pWSOiWtkHSxpG36\n+xjNzMys9xoeToB9gfOAScAHga2B/5T0mq4CSacCJwHHAROB1cAcSUMK25kFHAQcAkwGdgauLe3r\nKtL11afk2snAhfU/JDMzM6tVw++tExEfLj6XdBTwFNAE3JkXTwNmRMTPcs0RwDLgYOAaSSOAY4BD\nI+L2XHM00CFpYkQskDQeOABoioj7cs3JwI2STomIpf18qGZmZtYLVeg5KRsFBPAMgKRdgDHALV0F\nEfEscDewT160FyloFWsWAUsKNXsDK7qCSTY372tSfxyImZmZ9V2lwokkkU7P3BkRD+bFY0gBYlmp\nfFleBzAaeCGHlg3VjCH1yLwsItaSQtAYzMzMrBIaflqn5NvAO4H3NbohZmZm1hiVCSeSzgc+DOwb\nEU8WVi0FROodKfaejAbuK9QMkTSi1HsyOq/rqinP3tkS2L5Q062WlhZGjhy53rLm5maam5t7cWRm\nZmYDW1tbG21tbest6+zsrHl7lQgnOZh8DNgvIpYU10XEYklLSTNsHsj1I0jjRC7IZfcCL+Wa63LN\nOGAsMD/XzAdGSdqzMO5kCin43N1T+1pbW5kwYcImHaOZmdlA1d0X9vb2dpqammraXsPDiaRvA83A\nR4HVkkbnVZ0R8Xz++yzgDEkPA48CM4DHgOshDZCVdAlwjqQVwCrgXGBeRCzINQslzQEuknQCMIQ0\nhbnNM3XMzMyqo+HhBDieNOD1v0rLjwYuA4iImZKGk65JMgq4AzgwIl4o1LcAa4HZwFDgJuDE0jYP\nA84nzdJZl2un1fFYzMzMbBM1PJxERK9mDEXEdGB6D+vXACfnx4ZqVgJT+9ZCMzMz25wqNZXYzMzM\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x116fa56d0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import numpy as np\n",
"\n",
"normalized_df = customer_df.copy()\n",
"normalized_df.amount = normalized_df.amount.map(lambda amount: np.log(amount)) # take log of amount spent\n",
"normalized_df = normalized_df.set_index('customer_id')\n",
"\n",
"axes = normalized_df.amount.plot(kind='hist')\n",
"axes.set_xlabel('log of average money $$$ spent')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Zero-Center Data and Put on Same Scale"
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>amount</th>\n",
" <th>frequency</th>\n",
" <th>recency</th>\n",
" </tr>\n",
" <tr>\n",
" <th>customer_id</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>-0.235795</td>\n",
" <td>-0.606892</td>\n",
" <td>2.381979</td>\n",
" </tr>\n",
" <tr>\n",
" <th>80</th>\n",
" <td>0.894362</td>\n",
" <td>1.436086</td>\n",
" <td>-0.841507</td>\n",
" </tr>\n",
" <tr>\n",
" <th>90</th>\n",
" <td>1.523819</td>\n",
" <td>2.457576</td>\n",
" <td>-0.457759</td>\n",
" </tr>\n",
" <tr>\n",
" <th>120</th>\n",
" <td>-0.764025</td>\n",
" <td>-0.606892</td>\n",
" <td>0.136820</td>\n",
" </tr>\n",
" <tr>\n",
" <th>130</th>\n",
" <td>0.429695</td>\n",
" <td>-0.266396</td>\n",
" <td>1.587666</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" amount frequency recency\n",
"customer_id \n",
"10 -0.235795 -0.606892 2.381979\n",
"80 0.894362 1.436086 -0.841507\n",
"90 1.523819 2.457576 -0.457759\n",
"120 -0.764025 -0.606892 0.136820\n",
"130 0.429695 -0.266396 1.587666"
]
},
"execution_count": 50,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"normalized_df = (normalized_df - normalized_df.mean()) / normalized_df.std()\n",
"\n",
"normalized_df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Run a Hierarchical Segmentation\n",
"\n",
"Take a 10% sample of the data."
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"((1842, 3), (1841, 4))"
]
},
"execution_count": 53,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from scipy.cluster.hierarchy import linkage\n",
"\n",
"sample_idxs = np.arange(1, len(normalized_df), step=10)\n",
"sample_df = normalized_df.iloc[sample_idxs]\n",
"X = np.array(sample_df)\n",
"\n",
"Z = linkage(X, method='ward')\n",
"\n",
"X.shape, Z.shape"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Plot Dendrogram\n",
"\n",
"Only show the last 12 clusters..."
]
},
{
"cell_type": "code",
"execution_count": 55,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAB9EAAANoCAYAAAB3LBpMAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAIABJREFUeJzs3Xm0pVV95+HvD3AGCqENdNQoCmi54tCFiqgxGowGTaed\nSFsRx4hTnEAjGlBQHDFaqDGKIxq0FIeIEpeoOCE2KJYt2pZSIIUjiAwlIgjC7j/effHUqXNroIZz\nufU8a9W61DudfYbLWvA5e7/VWgsAAAAAAAAAkGwz7QEAAAAAAAAAwFwhogMAAAAAAABAJ6IDAAAA\nAAAAQCeiAwAAAAAAAEAnogMAAAAAAABAJ6IDAAAAAAAAQCeiAwAAAAAAAEAnogMAAAAAAABAJ6ID\nAAAAAAAAQCeiAwAAzANVtbKq3jftcdwQVXWHqrquqg5Zj2OPrKrrNuNYjquq8zbxNf+yP78Hbcrr\nbilV9ZWq+vK0xzHXVNVT+vv6Z9MeCwAAAJuWiA4AADDHVNWTe5xbNMv+r1TVWWObr0vSNv/opq5l\neK6b8/rr/TpW1aOr6rNVdVFV/b6qfl5VH62qh0y47mZRVftW1RFVteNmeojN/ZrPqn855Lr+59qq\nurSqzqqqY6vqvtMY04gN+qwAAABw47HdtAcAAADARGuLc5P23SVTCp1b2FFJXjftQSRJVb0/yZOT\nLEvypiQXJPnvSR6d5ItV9YDW2ulbYCj3T/KKJO9P8pvNcP2/3gzXXF8tyXeS/GuSSrJDkoVJDkhy\nUFW9ubX24imODwAAgHlIRAcAAJgHWmvXbKprVdW2SbbZmGtuimtM0lq7LsnVm/KaN0RVvThDQJ8U\ncV9XVU9I8octNZzNctGqW7TWrmytbannMZuft9aWjm6oqkOTfDjJIVW1orV27HSGtm5VdfPW2lVb\n6LFu2Vr73ZZ4LAAAgPnMcu4AAADzwKR7olfVgqo6pqp+UlVXVdWKqnpJVdXIMdffj7yqXlBV5yS5\nKsnCqrpJVb2qqs6sqsuq6rdV9bWqevDY48x6jb7/Zv1e5j+qqiur6hdV9Ymq2n3C8zioqs7p4/1m\nVd17bP/Ee6JX1YFVdUZVXVFVl1TVV6vqoSP7/66qTurLrV/VH+Pwqtrg/y6uqpsneWmSHyT550nH\ntNY+1Fo7cy3XmHgP+75U/5fGtj2vqr4/8ty+VVWP7/uOSHJ0P3Rm6fNrR+/T3V+bM6vqd1V1cVUt\nrarbTXjcs6pqUX+Pr0jymkljGrnH+wFVdVhV/bS/r1+sqjtPeE7/VFXn9sc/vaoeOOl5bojW2u+T\nPCnJJUkOG3u8qqoX9tfsyqq6oKreWVU7jR23sqo+XVUP6J+dK/s4nzjhOdytqr7Un8NPq+qwTPh/\nKiPXfFh/n65M8oy+b9uqevnI5/u8qnpNVd10wviP7J/VK6rqlKpaOP6ZqT/e9uFBVfXvVXVhkp/2\nfX/Wt/2wj/nXVXVCVd1h7LFmrvGAqnprVf2qhiXz31lV29Xw75AP9s/dJVX1hg17pwAAAG6czEQH\nAACYuxZU1S5j2yrJTSYcu9oS71V1iyRfy7C8+DszxLX7Z1gKfbckh4yd/7QkN0tybJLfZ4iTO/bt\nS5O8K8NS2v+Y5HNVdd/W2vh92de4Ro/U/5XkIf06x/Tr/HWSP09y3sj5T0iyfR9vS3Jokk9U1Z1a\na9eOPM/x53pEkiOSnJbk5Rlmqu+T5K+SfLEf9pQkl2dYdv23fd+r+lgOzYZ5YJKdM8xCv6H3xJ7t\nvPHndlCStyQ5IcNrd/Mk98jw/D6S5JNJ9kry+CQvSHJxP/Wifv5hGZ7nR5K8O8ltkjw/yVer6n+0\n1maWf29J/luSz/ZjP5jkwnWM9aVJrk3yxiQLMryOxyfZd2T8z07ytiRfTfLmJHdM8qkkl6YH3xuq\ntXZFVf1nkqdV1cLW2vK+610ZAvv7Mrx2uyd5XpJ71bDE/uhnac8kH0vy3iTHZfgMv7+qzpy5XlXt\nmuQrGaL5a5P8LkMYnzS7vCW5a4ZZ8sf2sfyo73tvH9cJGZan3yfJy/rxjx25xuszfDnjxCSfT3LP\nJCdn+N2a5N+T/CrJK5Pcqm+7T5L7Zfid+1mG1/05Sb5cVXebMDP+bUl+meG2APdLclCSyzL8O+P8\nPs5HJHlxVX2vtXb8LGMBAACYF0R0AACAuamSnLKW/d9fx/kvyhAP79Va+3Hf9u6q+mWGEPam1trP\nR46/bZI7t9YuuX4AVZXkjqPLeVfVuzNEwedlCG1ZxzWemiFYv7C19taRY4/Omm6fZI+ZsFtVZ2cI\nrg/PEHfX0Gc+vzzJJ1prB4zs+rexQxf32csz3lVVlyZ5TlUdvoHLzi/MEEvX9R5sCo9I8v3W2uMn\n7Wytfa+qlmWI6Ce21n4ys6/PRj8yyb+01t4wsv2TSf5vhqj6+pHL7Zrkma2196zn2G6W5J4zUbqq\n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\nAACgiOgAAAAAAAAAUER0AAAAAAAAACgiOgAAAAAAAAAUER0AAAAAAAAAiogOAAAAAAAAAEVEBwAA\nAKnJvPwAABa3SURBVAAAAIAiogMAAAAAAABAEdEBAAAAAAAAoIjoAAAAAAAAAFBEdAAAAAAAAAAo\nIjoAAAAAAAAAFBEdAAAAAAAAAIqIDgAA8H/bu/eoO+r63uPvDwQIhOAFhKJWLh5FQEAQSlHkohYU\nqLVKORaqWMs5KFUpLbZWu0rR9hxiW2rqQVREEAUVi6BIIedwES/lIiQQkFhqRSN3RAvhtijx2z/2\nPHa7m0A45Nm/nWfer7We9cyemWfvT7K+a2bPfGd+I0mSJEmSJHVsokuSJEmSJEmSJEmS1LGJLkmS\nJEmSJEmSJElSxya6JEmSJEmSJEmSJEkdm+iSJEmSJEmSJEmSJHVsokuSJEmSJEmSJEmS1LGJLkmS\nJEmSJEmSJElSxya6JEmSJEmSJEmSJEkdm+iSJEmSJEmSJEmSJHVsokuSJEmSJEmSJEmS1LGJLkmS\nJEmSJEmSJElSxya6JEmSJEmSJEmSJEkdm+iSJEmSJEmSJEmSJHVsokuSJEmSJEmSJEmS1LGJLkmS\nJEmSJEmSJElSxya6JEmSJEmSJEmSJEkdm+iSJEmSJEmSJEmSJHVsokuSJEmSJEmSJEmS1LGJLkmS\nJEmSJEmSJElSZ41qoif5/SS3JHk4yZVJdmudSZIkSZIkSZIkSZI0c6wxTfQk/x34W+A4YGfgemBB\nkk2aBpMkSZIkSZIkSZIkzRhrTBMdOAb4eFWdUVXfBd4OPAS8rW0sSZIkSZIkSZIkSdJMsUY00ZOs\nA7wUuGRqXlUVcDGwR6tckiRJkiRJkiRJkqSZZVbrAKtoE2Bt4K6R+XcB26xg/dkAS5YsmeZYM9eS\ne5bA7bBk8RK4o3Ua9ZE1qElgHao1a1CTwDpUa9agJsLU+QXPM6gVa1ATYMmDD8LNN7Nk7bVhzpzW\ncdRD1qAmgXWo1qzBp26ofzz78dbL4IbuyZZkc+A2YI+qumpo/jxgr6raY2T9Q4Ezx5tSkiRJkiRJ\nkiRJkrQGOKyqzlrZwjXlTvQfA8uBzUbmbwbcuYL1FwCHAT8AHpnWZJIkSZIkSZIkSZKkNcFsYEsG\n/eSVWiPuRAdIciVwVVUd3b0OsBT4+6r666bhJEmSJEmSJEmSJEkzwppyJzrAicDpSa4FrgaOATYA\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x113995c50>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"from scipy.cluster.hierarchy import dendrogram\n",
"\n",
"# calculate full dendrogram\n",
"plt.figure(figsize=(25, 10))\n",
"plt.title('Hierarchical Clustering Dendrogram')\n",
"plt.xlabel('Sample Index')\n",
"plt.ylabel('Distance')\n",
"\n",
"dendrogram(Z, truncate_mode='lastp', p=12, leaf_rotation=90., leaf_font_size=8.)\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Cluster Assignment Distribution"
]
},
{
"cell_type": "code",
"execution_count": 57,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.text.Text at 0x1196306d0>"
]
},
"execution_count": 57,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAhoAAAF9CAYAAABCoMFZAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAIABJREFUeJzt3XuUXWV9//H3lwKJwSZYIwEvIygaB60sM8rlp1wsCqhL\nq8ULoxSFn6Uo+KOp/YlaFITVqqiEhYKl/hDF6LQURNQCUcGiXCpCqDeGIBA4CiRwBCdImITL9/fH\n3iMnh5nJ5OTsOedM3q+1zkrOfp79zPeEkPnMs5/97MhMJEmSqrBVpwuQJEkzl0FDkiRVxqAhSZIq\nY9CQJEmVMWhIkqTKGDQkSVJlDBqSJKkyBg1JklQZg4YkSaqMQUOSJFWm40EjIo6OiJ9FxEj5uiYi\nDm5oPzciHm96XdI0xqyIODMi6hHxYERcEBE7TP+nkSRJjToeNIDfAMcDi4AB4Arg4ojob+hzKbAA\n2LF8DTaNcTrwBuAQYF/gmcCF1ZYtSZI2JrrxoWoR8TvgHzLz3Ig4F5iXmX81Qd+5wH3AoZl5UXls\nITAM7JWZ101X3ZIkaUPdMKPxRxGxVUQcCswBrmlo2j8iVkfEzRFxVkT8WUPbALA1cPnYgcxcAdSA\nvaejbkmSNL6tO10AQES8BLgWmA08CLylDAtQXDa5EFgJPB/4JHBJROydxXTMjsD6zFzTNOzqsk2S\nJHVIVwQN4GZgd2Ae8FbgvIjYNzNvzszzG/r9KiJ+AdwG7A/8sNUvGBFPBw4C7gBGWx1HkqQt0Gxg\nZ2BZZv5uso5dETQy81Hg9vLtjRGxB3Ac8L5x+q6MiDqwK0XQWAVsGxFzm2Y1FpRtEzkI+Ho76pck\naQv1LuAbk3XoiqAxjq2AWeM1RMSzgacD95SHbgAeBQ4AGheD9lFcjpnIHQBLly6lv79/km6tWbx4\nMUuWLGn7uNOhV2vv1bqhd2vv1bqhd2vv1bqhd2vv1bqhutqHh4c57LDDoPxeOpmOB42I+GeKdRg1\n4E8p0tF+wIERsR1wIsUajVUUsxifBm4BlgFk5pqIOAc4LSIeoFjjcQZw9UbuOBkF6O/vZ9GiRW3/\nXPPmzatk3OnQq7X3at3Qu7X3at3Qu7X3at3Qu7X3at0wLbVvdOlBx4MGsAPwVWAnYAT4OXBgZl4R\nEbOBlwKHA9sDd1MEjI9n5iMNYywGHgMuoJgJuQw4Zto+gSRJGlfHg0ZmvneStlHg4InaG/qtAz5Q\nviRJUpfoeNCQJPWmWq1GvV6fcv+RkRGWL18+5f7z58+nr6+vldLURQwaFRkcbN4lvXf0au29Wjf0\nbu29Wjf0bu3dUnetVmPhwn5GR9du0nkDAwNT7jt79hxWrBjueNjolj/zVnRD7V25Bfl0iIhFwA03\n3HBDzy7ykaROWb58eRkalgLtv3OveIrEYfhvdHd64r8/A5k56TSVMxqSpM3QT/FMTGl8XfWsE0mS\nNLMYNCRJUmUMGpIkqTIGDUmSVBmDhiRJqoxBQ5IkVcagIUmSKmPQkCRJlTFoSJKkyhg0JElSZQwa\nkiSpMgYNSZJUGYOGJEmqjEFDkiRVxqAhSZIqY9CQJEmVMWhIkqTKGDQkSVJlDBqSJKkyBg1JklQZ\ng4YkSaqMQUOSJFXGoCFJkipj0JAkSZUxaEiSpMoYNCRJUmW27nQBkrSlq9Vq1Ov1SsaeP38+fX19\nlYwtTYVBQ5I6qFarsXBhP6OjaysZf/bsOaxYMWzYUMcYNCSpg+r1ehkylgL9bR59mNHRw6jX6wYN\ndUzHg0ZEHA28D9i5PPQr4OTMvKyhz8nAe4HtgauB92XmrQ3ts4DTgHcAs4BlwPsz897p+AyStPn6\ngUWdLkJqu25YDPob4HiK/8MGgCuAiyOiHyAijgeOBY4C9gAeApZFxLYNY5wOvAE4BNgXeCZw4XR9\nAEmSNL6Oz2hk5n82HTohIt4H7AUMA8cBp2TmdwEi4nBgNfBm4PyImAscCRyamVeWfY4AhiNij8y8\nbpo+iiRJatINMxp/FBFbRcShwBzgmojYBdgRuHysT2auAX4C7F0eejlFYGrsswKoNfSRJEkd0PEZ\nDYCIeAlwLTAbeBB4S2auiIi9gaSYwWi0miKAACwA1pcBZKI+kiSpA7oiaAA3A7sD84C3AudFxL6d\nLUmSJG2urggamfkocHv59saI2INibcapQFDMWjTOaiwAbix/vwrYNiLmNs1qLCjbJrV48WLmzZu3\nwbHBwUEGBwdb+SiSJM0oQ0NDDA0NbXBsZGRkyud3RdAYx1bArMxcGRGrgAOAnwOUiz/3BM4s+94A\nPFr2uajssxDoo7gcM6klS5awaJG3lEmSNJ7xfvhevnw5AwMDUzq/40EjIv4ZuJRi8eafAu8C9gMO\nLLucTnEnyq3AHcApwG+Bi6FYHBoR5wCnRcQDFGs8zgCu9o4TSZI6q+NBA9gB+CqwEzBCMXNxYGZe\nAZCZp0bEHOBsig27fgy8LjPXN4yxGHgMuIBiw67LgGOm7RNIkqRxdTxoZOZ7p9DnJOCkSdrXAR8o\nX5IkqUt01T4akiRpZun4jIYkSZqaWq1GvV6vbPz58+e3/QF8Bg1JknpArVZj4cL+8mm/1Zg9ew4r\nVgy3NWwYNCRJ6gH1er0MGUspnvbbbsOMjh5GvV43aEiStOXqp3jgeW9wMagkSaqMQUOSJFXGoCFJ\nkipj0JAkSZUxaEiSpMoYNCRJUmUMGpIkqTIGDUmSVBmDhiRJqoxBQ5IkVcagIUmSKmPQkCRJlTFo\nSJKkyhg0JElSZQwakiSpMgYNSZJUGYOGJEmqjEFDkiRVxqAhSZIqY9CQJEmVMWhIkqTKGDQkSVJl\nDBqSJKkyBg1JklQZg4YkSaqMQUOSJFXGoCFJkiqzdacLUPVqtRr1er2y8efPn09fX19l40uSepdB\nY4ar1WosXNjP6Ojayr7G7NlzWLFi2LAhSXqSjgeNiPgI8BbgRcDDwDXA8Zl5S0Ofc4F3N516WWa+\nvqHPLOA04B3ALGAZ8P7MvLfaT9Dd6vV6GTKWAv0VfIVhRkcPo16vGzQkSU/S8aAB7AN8Hrieop5P\nAt+LiP7MfLih36XAe4Ao369rGud04HXAIcAa4EzgwnJ80Q8s6nQRkqQtTMeDRuOsBEBEvAe4FxgA\nrmpoWpeZ9403RkTMBY4EDs3MK8tjRwDDEbFHZl5XRe2SJGlyHQ8a49geSOD+puP7R8Rq4AHgCuCE\nzBzrM0DxWS4f65yZKyKiBuwNGDSkGc5Fz1J36qqgERFBcQnkqsy8qaHpUorLICuB51NcXrkkIvbO\nzAR2BNZn5pqmIVeXbZJmMBc9S92rq4IGcBawG/DKxoOZeX7D219FxC+A24D9gR9uzhdcvHgx8+bN\n2+DY4OAgg4ODmzOspGnkomepOkNDQwwNDW1wbGRkZMrnd03QiIgvAK8H9snMeybrm5krI6IO7EoR\nNFYB20bE3KZZjQVl24SWLFnCokUukpRmBhc9S+023g/fy5cvZ2BgYErnd8XOoGXI+Evg1ZlZm0L/\nZwNPB8YCyQ3Ao8ABDX0WAn3AtW0vWJIkTUnHZzQi4ixgEHgT8FBELCibRjJzNCK2A06kWKOximIW\n49PALRR7ZZCZayLiHOC0iHgAeBA4A7jaO04kSeqcjgcN4GiKu0z+q+n4EcB5wGPAS4HDKe5IuZsi\nYHw8Mx9p6L+47HsBxYZdlwHHVFm4JEmaXMeDRmZOevkmM0eBg6cwzjrgA+VLkiR1ga5YoyFJkmYm\ng4YkSaqMQUOSJFXGoCFJkipj0JAkSZUxaEiSpMoYNCRJUmUMGpIkqTIGDUmSVBmDhiRJqoxBQ5Ik\nVcagIUmSKmPQkCRJlTFoSJKkyhg0JElSZQwakiSpMgYNSZJUGYOGJEmqjEFDkiRVxqAhSZIqY9CQ\nJEmVMWhIkqTKGDQkSVJlDBqSJKkyBg1JklQZg4YkSaqMQUOSJFWmpaAREX8dEbPbXYwkSZpZWp3R\nWAKsioizI2KPdhYkSZJmjlaDxjOBvwGeDVwdEb+MiA9GxDPaV5okSep1LQWNzFyfmf+RmW8A+oCv\nAf8b+G1EfDMi3hAR0c5CJUlS79nsxaCZeQ/wA+CHQAIvB4aAX0fEPps7viRJ6l0tB42ImB8RfxcR\nPwOuBnYA3gw8F3gW8C3gvLZUKUmSelKrd51cBNwFHE1x2eQ5mfm2zLwsCw8Cp1KEjo2N9ZGIuC4i\n1kTE6oi4KCJeOE6/kyPi7ohYGxHfj4hdm9pnRcSZEVGPiAcj4oKI2KGVzydJktqj1RmNNcBrMvNF\nmfnZzLxvnD73AS+Ywlj7AJ8H9gReA2wDfC8injLWISKOB44FjgL2AB4ClkXEtg3jnA68ATgE2Jdi\nweqFm/rBJElS+2zdykmZ+e4p9Engtin0e33j+4h4D3AvMABcVR4+DjglM79b9jkcWE1xqeb8iJgL\nHAkcmplXln2OAIYjYo/MvG6KH02SJLVRq5dOlkTEMeMcPyYiPreZNW1Psaj0/nLMXYAdgcvHOmTm\nGuAnwN7loZdThKbGPiuAWkMfSZI0zVq9dPI24Jpxjv838I5WiylviT0duCozbyoP70gRPFY3dV9d\ntgEsANaXAWSiPpIkaZq1dOkEmE+xTqPZSNnWqrOA3YBXbsYYkiSpS7QaNG4DDqIIBo0OAla2MmBE\nfAF4PbBPuTfHmFVAUMxaNM5qLABubOizbUTMbZrVWFC2TWjx4sXMmzdvg2ODg4MMDg628jEkSZpR\nhoaGGBoa2uDYyMjIlM9vNWicDpweEU8HriiPHQB8CPiHTR2sDBl/CeyXmbXGtsxcGRGryvF/Xvaf\nS3GXyplltxuAR8s+F5V9FlLsWnrtZF97yZIlLFq0aFNLliRpizDeD9/Lly9nYGBgSue3etfJl8qn\nt34U+ER5+LfA/8nML2/KWBFxFjAIvAl4KCIWlE0jmTla/v504ISIuBW4Azil/HoXl/WsiYhzgNMi\n4gHgQeAM4GrvOJEkqXNandEgMz8PfD4idgIezszftzjU0RSLPf+r6fgRlDuLZuapETEHOJvirpQf\nA6/LzPUN/RcDjwEXALOAy4An3RkjSZKmT8tBY0zTeopWzp/SnS+ZeRJw0iTt64APlC9JktQFWt1H\n4xkRcW5E1CJiNCLWN77aXaQkSepNrc5ofAV4PvAZ4B6KSx+SJEkbaDVo7Avsm5k3brSnJEnaYrW6\nM+hvcRZDkiRtRKtBYzHwyYh4djuLkSRJM0url06+BvwpcGdErAEeaWzMzB02tzBJktT7Wg0aH25r\nFZIkaUZqdWfQc9pdiCRJmnlaXaNBROwcESdFxNciYofy2IER0d++8iRJUi9rdcOufYBfAfsBbwee\nWjYNACe3pzRJktTrWp3R+DRwUma+GmjcCfRyYK/NrkqSJM0IrQaNl1I8vKzZvcAzWi9HkiTNJK0G\njRFgx3GO7w7c1Xo5kiRpJmk1aPw78KmIeAblDqERsSfwOWBpm2qTJEk9rtWg8RHgduBuioWgNwHX\nAD8FTmlPaZIkqde1uo/GOuCIiDgZ+HOKsLE8M29uZ3GSJKm3tbozKACZuRJY2aZaJEnSDNNS0IiI\nf52sPTOPaq0cSZI0k7Q6o7FT0/ttgBdTPGjtR5tVkSRJmjFaXaPxxuZjEbE18C8UC0MlSZJaf9ZJ\ns8x8FPgM8H/bNaYkSeptbQsapV0oLqNIkiS1vBj01OZDFOs23oQbdkmSpFKri0H3bnr/OHAf8GHg\nS5tVkSRJmjFaXQy6T7sLkSRJM0+712hIkiT9UatrNH5K+TC1jcnMPVr5GpIkqfe1ukbjh8DfArcA\n15bH9gIWAmcD6za/NEmS1OtaDRrbA2dm5kcbD0bEPwELMvO9m12ZBNRqNer1eiVjz58/n76+vkrG\nliQVWg0abwdeMc7xrwDXAwYNbbZarcbChf2Mjq6tZPzZs+ewYsWwYUOSKtRq0FhHcank103H98LL\nJmqTer1ehoylQH+bRx9mdPQw6vW6QUOSKtRq0DgDODsiXgZcVx7bE/gb4JPtKEx6Qj+wqNNFSJJa\n0Oo+Gv8UESuB43jiMskwcFRmfqNdxUmSpN7W8j4amfmNzNwzM+eWrz1bDRkRsU9EfDsi7oqIxyPi\nTU3t55bHG1+XNPWZFRFnRkQ9Ih6MiAsiYodWP58kSdp8LQeNiJgbEe+JiJMj4mnlsd0jYqcWhtsO\n+B/g/Uy8P8elwAJgx/I12NR+OvAG4BBgX+CZwIUt1CJJktqk1Q27XgL8AFgLPIfibpMHgHcAzwLe\nvSnjZeZlwGXl2DFBt3WZed8E9cwFjgQOzcwry2NHAMMRsUdmXjfeeZIkqVqtzmgsAb4BPB8YbTj+\nnxSzCVXYPyJWR8TNEXFWRPxZQ9sARWi6fOxAZq4Aajz5AXCSJGmatHrXySuA92VmNk1A3EXxuPh2\nu5TiMshKinDzSeCSiNg7M5PiUsr6zFzTdN7qsk2SJHVAq0HjEeCp4xzfFWj7No6ZeX7D219FxC+A\n24D9KbZDlyRJXajVoPEd4GMR8Y7yfUbEs4BPAd9sS2WTyMyVEVGnCDY/BFYB20bE3KZZjQVl24QW\nL17MvHnzNjg2ODjI4GDzWlNJkrY8Q0NDDA0NbXBsZGRkyue3GjQ+SBEoVgFPAa6guMvjp8BHJzmv\nLSLi2cDTgXvKQzcAjwIHABeVfRYCfTzx0LdxLVmyhEWL3AxKkqTxjPfD9/LlyxkYGJjS+a1u2PUA\n8OqI2A/YneIyynJgWblmYpNExHYUsxNjCz6eFxG7A/eXrxMp1misKvt9muLJscvKetZExDnAaRHx\nAPAgxe6lV3vHiSRJnbPJQSMitgG+Cxxb3kp6ZRvqeDnFJZAsX58rj3+VYm+NlwKHUzw19m6KgPHx\nzHykYYzFwGPABcAsittlj2lDbZIkqUWbHDQy85GIGGDijbU2WRlYJrvV9uApjLEO+ED5kiRJXaDV\nfTS+DhzRzkIkSdLM0+pi0ASOjYjXANcDD23QmPmhzS1MkiT1vlaDxgDw8/L3L21qa9slFUmS1Ns2\nKWhExPOAlZm5T0X1SJKkGWRT12j8GnjG2JuI+PeIWNDekiRJ0kyxqUGj+cmqr6d4xLskSdKTtHrX\niSRJ0kZtatAY21Cr+ZgkSdKTbOpdJwF8JSLWle9nA/8SEc23t/5VO4qTJEm9bVODxleb3i9tVyGS\nJGnm2aSgkZnuBipJkqbMxaCSJKkyBg1JklQZg4YkSaqMQUOSJFXGoCFJkipj0JAkSZUxaEiSpMoY\nNCRJUmUMGpIkqTIGDUmSVBmDhiRJqoxBQ5IkVcagIUmSKmPQkCRJlTFoSJKkyhg0JElSZQwakiSp\nMgYNSZJUGYOGJEmqjEFDkiRVxqAhSZIqY9CQJEmV6YqgERH7RMS3I+KuiHg8It40Tp+TI+LuiFgb\nEd+PiF2b2mdFxJkRUY+IByPigojYYfo+hSRJatYVQQPYDvgf4P1ANjdGxPHAscBRwB7AQ8CyiNi2\nodvpwBuAQ4B9gWcCF1ZbtiRJmszWnS4AIDMvAy4DiIgYp8txwCmZ+d2yz+HAauDNwPkRMRc4Ejg0\nM68s+xwBDEfEHpl53TR8DEmS1KRbZjQmFBG7ADsCl48dy8w1wE+AvctDL6cITY19VgC1hj6SJGma\ndX3QoAgZSTGD0Wh12QawAFhfBpCJ+kiSpGnWC0FDkiT1qK5Yo7ERq4CgmLVonNVYANzY0GfbiJjb\nNKuxoGyb0OLFi5k3b94GxwYHBxkcHNzcuiVJ6nlDQ0MMDQ1tcGxkZGTK53d90MjMlRGxCjgA+DlA\nufhzT+DMstsNwKNln4vKPguBPuDaycZfsmQJixYtqqZ4SZJ63Hg/fC9fvpyBgYEpnd8VQSMitgN2\npZi5AHheROwO3J+Zv6G4dfWEiLgVuAM4BfgtcDEUi0Mj4hzgtIh4AHgQOAO42jtOJEnqnK4IGhR3\njfyQYtFnAp8rj38VODIzT42IOcDZwPbAj4HXZeb6hjEWA48BFwCzKG6XPWZ6ypckSePpiqBR7n0x\n6cLUzDwJOGmS9nXAB8qXJEkTqtVq1Ov1SsaeP38+fX19lYzdi7oiaEiSNF1qtRoLF/YzOrq2kvFn\nz57DihXDho2SQUOStEWp1+tlyFgK9Ld59GFGRw+jXq8bNEoGDUnSFqof8K7DqrlhlyRJqoxBQ5Ik\nVcagIUmSKmPQkCRJlTFoSJKkyhg0JElSZQwakiSpMgYNSZJUGYOGJEmqjEFDkiRVxqAhSZIqY9CQ\nJEmVMWhIkqTKGDQkSVJlDBqSJKkyBg1JklQZg4YkSaqMQUOSJFXGoCFJkipj0JAkSZUxaEiSpMoY\nNCRJUmUMGpIkqTIGDUmSVBmDhiRJqoxBQ5IkVWbrThcgqbvUajXq9XolY8+fP5++vr5KxpbUnQwa\nkv6oVquxcGE/o6NrKxl/9uw5rFgxbNiQtiAGDUl/VK/Xy5CxFOhv8+jDjI4eRr1eN2hIWxCDhqRx\n9AOLOl2EpBnAxaCSJKkyPRE0IuLEiHi86XVTU5+TI+LuiFgbEd+PiF07Va8kSSr0RNAo/RJYAOxY\nvl411hARxwPHAkcBewAPAcsiYtsO1ClJkkq9tEbj0cy8b4K244BTMvO7ABFxOLAaeDNw/jTVJ0mS\nmvTSjMYLIuKuiLgtIpZGxHMAImIXihmOy8c6ZuYa4CfA3p0pVZIkQe8Ejf8G3gMcBBwN7AL8KCK2\nowgZSTGD0Wh12SZJkjqkJy6dZOayhre/jIjrgDuBtwM3b87YixcvZt68eRscGxwcZHBwcHOGlSRp\nRhgaGmJoaGiDYyMjI1M+vyeCRrPMHImIW4Bdgf8CgmKhaOOsxgLgxo2NtWTJEhYtcr8AtVeV23iD\nW3lLmj7j/fC9fPlyBgYGpnR+TwaNiHgqRcj4amaujIhVwAHAz8v2ucCewJmdq1Jbqqq38Qa38pbU\nO3oiaETEZ4DvUFwueRbwCeAR4N/KLqcDJ0TErcAdwCnAb4GLp71YbfGq3cYb3MpbUi/piaABPBv4\nBvB04D7gKmCvzPwdQGaeGhFzgLOB7YEfA6/LzPUdqlfCbbwlqUeCRmZudGVmZp4EnFR5MZIkacp6\n5fZWSZLUgwwakiSpMgYNSZJUGYOGJEmqjEFDkiRVxqAhSZIqY9CQJEmVMWhIkqTKGDQkSVJlDBqS\nJKkyBg1JklQZg4YkSaqMQUOSJFXGoCFJkipj0JAkSZXZutMF9JJarUa9Xq9k7Pnz59PX11fJ2JIk\ndYpBY4pqtRoLF/YzOrq2kvFnz57DihXDhg1J0oxi0Jiier1ehoylQH+bRx9mdPQw6vW6QUOSNKMY\nNDZZP7Co00VIktQTXAwqSZIqY9CQJEmVMWhIkqTKGDQkSVJlDBqSJKkyBg1JklQZg4YkSaqMQUOS\nJFXGoCFJkipj0JAkSZUxaEiSpMoYNCRJUmUMGpIkqTIGDUmSVJkZFzQi4piIWBkRD0fEf0fEKzpT\nyVBnvmxb9GrtvVo39G7tvVo39G7tvVo39G7tvVo3dEPtMypoRMQ7gM8BJwIvA34GLIuI+dNfTef/\n47auV2vv1bqhd2vv1bqhd2vv1bqhd2vv1bqhG2qfUUEDWAycnZnnZebNwNHAWuDIzpYlSdKWacYE\njYjYBhgALh87lpkJ/ADYu1N1SZK0JZsxQQOYD/wJsLrp+Gpgx+kvR5Ikbd3pAjpoNsDw8PCUOj/R\n7xJgKuf8Fvj6FEtZ2fQ12mfT64berb1X64berb1X64berb1X64berb1X64aqam/oM3tjfaO4utD7\nyksna4FDMvPbDce/AszLzLc09X8nU//TlyRJT/auzPzGZB1mzIxGZj4SETcABwDfBoiIKN+fMc4p\ny4B3AXcAo9NUpiRJM8FsYGeK76WTmjEzGgAR8XbgKxR3m1xHcRfKW4EXZeZ9HSxNkqQt0oyZ0QDI\nzPPLPTNOBhYA/wMcZMiQJKkzZtSMhiRJ6i4z6fZWSZLUZQwaUhcoFy5L0owzo9ZoSD1sXUTsnpnt\nv/le0pRFxE7A+4BXATsBjwO3A98CvpKZj3WwvJ7kGo1pEBHPAT6RmV33zJWIeArF1u33Z+ZNTW2z\ngbdn5nkdKW4SEdEP7AVcm5k3R8SLgOOAWcDSzLyiowVOICJOm6DpOGAp8DuAzPz7aSuqBRGxHfB2\nYFfgHmAoM3/X2arGFxGLgAcyc2X5/q8p7kzrA+4EvpCZ/9bBEicUEZ8Hzs/MH3e6lk0VEccCewCX\nZOa/lX/uH6GYSf8m8PHMfLSTNTaLiJdTPLbiVuBhisdXfAPYFjgIuAk4ODMf7FiRPcigMQ0iYndg\neWb+SadraRQRLwS+R/EPbgJXAYdm5j1l+wLg7i6s+2DgYuAPwBzgLcB5FE/r3QrYDziwG8NGRDxO\nUefvm5r2A64HHqJ4TM9fTHdtk4mIm4BXZeb9ZXD+EfA04BaKsPEIsNfYN/NuEhE/Az6YmT+IiPdS\n7KvzJYqtFRcC7wWOy8wvd7DMcZV/XxK4DTgH+GpmrupsVRsXEScAH6L49+WVwOnA/wWWUMwQLAa+\nmJkndqzIcUTEVcD3M/MT5fvDgGMzc6+IeBpwBfCjzDyuk3VOJCK2Bd5MEZDGHr2xCrgGuDgz13ek\nLoPG5ouIN22ky/OAz3XhN+yLgG2A9wDbU/xjsBuwf2bWujhoXANckZknRMShwFkU/2j9Y9n+SWAg\nMw/sZJ3jiYgPA0cB720MQhHxCLB786xStyi/4e2YmfdGxFJgF+D1mTkSEU8FLgLuy8x3drTQcUTE\nWqA/M++MiOUUf1e+1ND+TuAfM/PFHStyAuWf+2uBN1JsMDgPuJQiKF2SmY93sLwJRcStwIcy85vl\nD1o3AO/OzK+X7W8BTs3MF3Syzmbl35WXZObt5futKDZ0fE5mro6I11JcPnlWJ+scT0TsSrF51jOB\nn/DEc78WAHtS7EX+usy8ddqLy0xfm/miSOiPlb9O9Hqs03WOU/dq4M8b3gfwRYrp5OdR/AXtxrpH\ngF3L329F8dP0yxraXwKs6nSdk9T/CmAF8Flgm/LYI8Buna5tkpofB3Yof38b8Nqm9v8F1Dpd5wS1\n1ymC59jo4d6KAAAGm0lEQVTf+d2b2p8PrO10nVP4c9+G4nLVZcCjwF3AP439v9BNL4rHQfQ1vF8P\nvLjh/XOBhzpd5zh13wG8suH92BqNp5TvdwYe7nSdE9T+fYp1JHPHaZtbti3rRG3eddIe9wB/lZlb\njfcCFnW6wAk8heIfLKCYr8/M9wHfAa4EXtipwqYgAbL4iW6UInyMeZDiJ7+ulJk/pVgX8wzg+oh4\nCeXn6XJjNc6m+Dvf6C6Kz9ONLqVY3AfF3+u3NrW/neKafFfLzEcy8/zMPJjiB4EvUcxyrOhsZeNa\nRTE7SkS8gOLJ2rs1tL8YuLcDdW3Mt4B/iYiDI+LVFM/DujIzHy7bF1L8Xe9GrwROyMw1zQ3lsY8B\n+0x7VXjXSbvcQPGN4+IJ2pNitqDb3Ay8nKbHAGbmseXdlt8e76QucAfwAoqfrKG4HllraO/jyd8I\nu0pm/gF4d3np5wcU/xB3u8sj4lGKn44WAr9saHsu5ULWLnQ8cHVEXEmxDuaDEbE/T6zR2ItinU/P\nyMwacFJEfAJ4TafrGcfXgfMi4mKK502dCny23Ln5MeAE4IIO1jeREyhmMb5D8f/ktcBhDe1JsaC1\nG/2eYsbllxO078yT14ZNC4NGe3wG2G6S9luBV09TLZviImAQ+FpzQxk2tqJYnd9tvkjDN+bMbP4f\n63UUi7a6Xhar8a+iCKp3drqeSXyi6f0fmt6/EejKOyMy8+6IeBnwYYo6g+JuiOcAV1NMlV/fwRIn\ncyfFN+ZxZTEv/v3pK2fKTuSJuza+BHyKYhH0qRQLuL9D8RN2Vyl/AHhHecfd1uX7xvbvdaayKfl/\nFOHuFOByNlyjcQBFiPp8JwpzMagkSTNARBxPcav8jjxxqTMoLmWdnpmndqQug4YkSTNHROxCw+2t\n2eHbzg0akiTNcJ3cONKgIUnSDNfJjSNdDCpJUo+b4saRHeGMhiRJPa5hu/rJtlLITsxouGGXJEm9\nr2s3jjRoSJLU+8Y2jpxIxzaOdI2GJEm9r2s3jnSNhiRJqoyXTiRJUmUMGpIkqTIGDUmSVBmDhiRJ\nqoxBQ5IkVcagIallEfH4FLY+lrQFM2hIGldELIiIz0fEbRExGhF3RsS3I+IvKvp6+5XBZW4V45df\nY4NgVL4fe/0hIm6JiHMjomO7KEozjUFD0pNExHOB5cD+wAeBlwAHAz8EvlDVl6VNuxdGxKY8z+Hd\nwI7AbsD7gacCP4mIwza3DkkGDUnj+yLwGPCKzPxWZt6amcOZuQTYa7wTxpuRiIjdy2N95fu+clbk\n/nIG4RcRcXAZbK4oT3sgIh6LiC+X50REfCQibo+ItRFxY0QcMs7XPTgiro+IUeCVm/BZRzLz3sys\nZeYPMvNtwNeBL0TEvE0YR9I43IJc0gYi4mnAQcBHMnO0uT0z10xy+nhbDTceO4vi351XAWspZhH+\nANSAQ4ALgBcADwIPl+d8FHgncBTFNsr7Al+LiHsz88cNY38S+AfgduCByT/lRi0BDgdeW9YkqUUG\nDUnNdqW4fLGigrGfA1yQmTeV7+8Ya4iI+8vf3jcWZiJiW+AjwAGZ+ZOxcyJiH+Bvgcag8bHMvLxN\ndd5c/rpzm8aTtlgGDUnNqnzC4xnAFyPiIOAHwIWZ+YtJ+u8KzAG+HxGNdW1DsYZkTFI8vbJdxr6W\nD4OSNpNrNCQ1+zXFN9gXbeJ5j5e/NgeCP8rMc4BdgPMoFpheHxHHTDLmU8tfXw/s3vDaDXhbU9+H\nNrHeyexW/rqyjWNKWySDhqQNZOYDwDLgmIh4SnP7JAsk76MIGTs1HHvZOOPflZn/mplvBT4H/E3Z\ntL78tfGOkZuAdcBzM/P2ptddm/TBNs3fASMUsy6SNoOXTiSN5xjgKuC6iDgR+DnFvxcHUqyNePE4\n59wK/AY4KSJOABYCf9/YISKWAJcCtwB/BryaIkwA3Ekxk/LGiLgEeDgz/xARnwWWlLesXgXMo7ir\nZCQzvzY29GZ81u0jYgEwC3ghcDTwJuCvN7LwVdIUGDQkPUlmriw3rfpH4LMUsxT3UQSOxvCQDec8\nGhGHUtwa+zPgp+X5/9HQ/08o9uF4NrCGInT8fXn+3WWo+RTwZYrLK0dm5sci4l7gw8DzgN9TrM/4\n5/Hq2NhHG+f9ueXvR4G7KMLMKzLzZ1McU9IkItO1TpIkqRqu0ZAkSZUxaEiSpMoYNCRJUmUMGpIk\nqTIGDUmSVBmDhiRJqoxBQ5IkVcagIUmSKmPQkCRJlTFoSJKkyhg0JElSZQwakiSpMv8fUQOBqUa/\nldkAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1194ecf10>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from scipy.cluster.hierarchy import fcluster\n",
"\n",
"clusters = fcluster(Z, t=15, criterion='distance')\n",
"\n",
"axes = pd.Series(clusters).value_counts().sort_index().plot(kind='bar')\n",
"axes.set_xlabel('Cluster ID')\n",
"axes.set_ylabel('Frequency')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Recover Cluster Centroids"
]
},
{
"cell_type": "code",
"execution_count": 59,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>customer_id</th>\n",
" <th>amount</th>\n",
" <th>frequency</th>\n",
" <th>recency</th>\n",
" </tr>\n",
" <tr>\n",
" <th>cluster_id</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>143016.923077</td>\n",
" <td>1227.160256</td>\n",
" <td>2.423077</td>\n",
" <td>1352.653846</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>154667.548638</td>\n",
" <td>97.951254</td>\n",
" <td>3.626459</td>\n",
" <td>531.050584</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>110691.614907</td>\n",
" <td>28.067621</td>\n",
" <td>6.018634</td>\n",
" <td>276.813665</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>77323.541667</td>\n",
" <td>196.406421</td>\n",
" <td>9.145833</td>\n",
" <td>191.770833</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>50229.672131</td>\n",
" <td>36.929122</td>\n",
" <td>12.508197</td>\n",
" <td>297.098361</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>218165.856574</td>\n",
" <td>40.258300</td>\n",
" <td>1.517928</td>\n",
" <td>310.709163</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>185198.802589</td>\n",
" <td>21.915858</td>\n",
" <td>1.588997</td>\n",
" <td>822.925566</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>87743.177843</td>\n",
" <td>19.706774</td>\n",
" <td>1.431487</td>\n",
" <td>2665.935860</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>81426.914894</td>\n",
" <td>87.903723</td>\n",
" <td>1.265957</td>\n",
" <td>2864.521277</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>121767.671233</td>\n",
" <td>40.949201</td>\n",
" <td>1.924658</td>\n",
" <td>1827.633562</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" customer_id amount frequency recency\n",
"cluster_id \n",
"1 143016.923077 1227.160256 2.423077 1352.653846\n",
"2 154667.548638 97.951254 3.626459 531.050584\n",
"3 110691.614907 28.067621 6.018634 276.813665\n",
"4 77323.541667 196.406421 9.145833 191.770833\n",
"5 50229.672131 36.929122 12.508197 297.098361\n",
"6 218165.856574 40.258300 1.517928 310.709163\n",
"7 185198.802589 21.915858 1.588997 822.925566\n",
"8 87743.177843 19.706774 1.431487 2665.935860\n",
"9 81426.914894 87.903723 1.265957 2864.521277\n",
"10 121767.671233 40.949201 1.924658 1827.633562"
]
},
"execution_count": 59,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from collections import defaultdict\n",
"\n",
"cluster2ids = defaultdict(list) # map of cluster numbers to customer ids in that cluster\n",
"for customer_id, cluster_no in zip(sample_df.index, clusters):\n",
" cluster2ids[cluster_no].append(customer_id)\n",
"\n",
"customer_samples = customer_df.iloc[sample_idxs]\n",
"cluster_info = {}\n",
"for cluster_no in np.unique(clusters):\n",
" cluster_ids = cluster2ids[cluster_no]\n",
" cluster_mask = customer_samples.customer_id.isin(cluster_ids)\n",
" cluster_info[cluster_no] = customer_samples[cluster_mask].mean()\n",
"\n",
"cluster_df = pd.DataFrame(cluster_info).T\n",
"cluster_df.index.name = 'cluster_id'\n",
"\n",
"cluster_df"
]
}
],
"metadata": {
"anaconda-cloud": {},
"kernelspec": {
"display_name": "Python [default]",
"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.12"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment