Skip to content

Instantly share code, notes, and snippets.

@josemazo
Created March 4, 2016 14:52
Show Gist options
  • Save josemazo/1f6856c762a5573d1b99 to your computer and use it in GitHub Desktop.
Save josemazo/1f6856c762a5573d1b99 to your computer and use it in GitHub Desktop.
A notebook showing basic classifiers for the Seville Machine Learning Seminar
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## The environment"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Basic requiremnts:\n",
"```bash\n",
"numpy\n",
"pandas\n",
"matplotlib\n",
"seaborn\n",
"scikit-learn\n",
"```"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"%matplotlib inline\n",
"%config InlineBackend.figure_format='retina'"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"import os\n",
"\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"import pandas as pd\n",
"import seaborn as sns\n",
"\n",
"from sklearn.preprocessing import LabelEncoder\n",
"from sklearn import naive_bayes\n",
"from sklearn import neighbors\n",
"from sklearn import tree\n",
"\n",
"sns.set(font='sans')\n",
"sns.set_style('darkgrid')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Exploring the dataset\n",
"\n",
"Adult dataset from the [UCI repository](https://archive.ics.uci.edu/ml/datasets/Adult)."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"df = pd.read_csv('adult.ssv', sep=' ')"
]
},
{
"cell_type": "code",
"execution_count": 4,
"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>age</th>\n",
" <th>workclass</th>\n",
" <th>fnlwgt</th>\n",
" <th>education</th>\n",
" <th>educational-num</th>\n",
" <th>marital-status</th>\n",
" <th>occupation</th>\n",
" <th>relationship</th>\n",
" <th>race</th>\n",
" <th>gender</th>\n",
" <th>capital-gain</th>\n",
" <th>capital-loss</th>\n",
" <th>hours-per-week</th>\n",
" <th>native-country</th>\n",
" <th>income</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>25</td>\n",
" <td>Private</td>\n",
" <td>226802</td>\n",
" <td>11th</td>\n",
" <td>7</td>\n",
" <td>Never-married</td>\n",
" <td>Machine-op-inspct</td>\n",
" <td>Own-child</td>\n",
" <td>Black</td>\n",
" <td>Male</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>40</td>\n",
" <td>United-States</td>\n",
" <td>&lt;=50K</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>38</td>\n",
" <td>Private</td>\n",
" <td>89814</td>\n",
" <td>HS-grad</td>\n",
" <td>9</td>\n",
" <td>Married-civ-spouse</td>\n",
" <td>Farming-fishing</td>\n",
" <td>Husband</td>\n",
" <td>White</td>\n",
" <td>Male</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>50</td>\n",
" <td>United-States</td>\n",
" <td>&lt;=50K</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>28</td>\n",
" <td>Local-gov</td>\n",
" <td>336951</td>\n",
" <td>Assoc-acdm</td>\n",
" <td>12</td>\n",
" <td>Married-civ-spouse</td>\n",
" <td>Protective-serv</td>\n",
" <td>Husband</td>\n",
" <td>White</td>\n",
" <td>Male</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>40</td>\n",
" <td>United-States</td>\n",
" <td>&gt;50K</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>44</td>\n",
" <td>Private</td>\n",
" <td>160323</td>\n",
" <td>Some-college</td>\n",
" <td>10</td>\n",
" <td>Married-civ-spouse</td>\n",
" <td>Machine-op-inspct</td>\n",
" <td>Husband</td>\n",
" <td>Black</td>\n",
" <td>Male</td>\n",
" <td>7688</td>\n",
" <td>0</td>\n",
" <td>40</td>\n",
" <td>United-States</td>\n",
" <td>&gt;50K</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>18</td>\n",
" <td>?</td>\n",
" <td>103497</td>\n",
" <td>Some-college</td>\n",
" <td>10</td>\n",
" <td>Never-married</td>\n",
" <td>?</td>\n",
" <td>Own-child</td>\n",
" <td>White</td>\n",
" <td>Female</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>30</td>\n",
" <td>United-States</td>\n",
" <td>&lt;=50K</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" age workclass fnlwgt education educational-num marital-status \\\n",
"0 25 Private 226802 11th 7 Never-married \n",
"1 38 Private 89814 HS-grad 9 Married-civ-spouse \n",
"2 28 Local-gov 336951 Assoc-acdm 12 Married-civ-spouse \n",
"3 44 Private 160323 Some-college 10 Married-civ-spouse \n",
"4 18 ? 103497 Some-college 10 Never-married \n",
"\n",
" occupation relationship race gender capital-gain capital-loss \\\n",
"0 Machine-op-inspct Own-child Black Male 0 0 \n",
"1 Farming-fishing Husband White Male 0 0 \n",
"2 Protective-serv Husband White Male 0 0 \n",
"3 Machine-op-inspct Husband Black Male 7688 0 \n",
"4 ? Own-child White Female 0 0 \n",
"\n",
" hours-per-week native-country income \n",
"0 40 United-States <=50K \n",
"1 50 United-States <=50K \n",
"2 40 United-States >50K \n",
"3 40 United-States >50K \n",
"4 30 United-States <=50K "
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.head()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"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>age</th>\n",
" <th>fnlwgt</th>\n",
" <th>educational-num</th>\n",
" <th>capital-gain</th>\n",
" <th>capital-loss</th>\n",
" <th>hours-per-week</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>48842.000000</td>\n",
" <td>48842.000000</td>\n",
" <td>48842.000000</td>\n",
" <td>48842.000000</td>\n",
" <td>48842.000000</td>\n",
" <td>48842.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>38.643585</td>\n",
" <td>189664.134597</td>\n",
" <td>10.078089</td>\n",
" <td>1079.067626</td>\n",
" <td>87.502314</td>\n",
" <td>40.422382</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>13.710510</td>\n",
" <td>105604.025423</td>\n",
" <td>2.570973</td>\n",
" <td>7452.019058</td>\n",
" <td>403.004552</td>\n",
" <td>12.391444</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>17.000000</td>\n",
" <td>12285.000000</td>\n",
" <td>1.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>28.000000</td>\n",
" <td>117550.500000</td>\n",
" <td>9.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>40.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>37.000000</td>\n",
" <td>178144.500000</td>\n",
" <td>10.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>40.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>48.000000</td>\n",
" <td>237642.000000</td>\n",
" <td>12.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>45.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>90.000000</td>\n",
" <td>1490400.000000</td>\n",
" <td>16.000000</td>\n",
" <td>99999.000000</td>\n",
" <td>4356.000000</td>\n",
" <td>99.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" age fnlwgt educational-num capital-gain \\\n",
"count 48842.000000 48842.000000 48842.000000 48842.000000 \n",
"mean 38.643585 189664.134597 10.078089 1079.067626 \n",
"std 13.710510 105604.025423 2.570973 7452.019058 \n",
"min 17.000000 12285.000000 1.000000 0.000000 \n",
"25% 28.000000 117550.500000 9.000000 0.000000 \n",
"50% 37.000000 178144.500000 10.000000 0.000000 \n",
"75% 48.000000 237642.000000 12.000000 0.000000 \n",
"max 90.000000 1490400.000000 16.000000 99999.000000 \n",
"\n",
" capital-loss hours-per-week \n",
"count 48842.000000 48842.000000 \n",
"mean 87.502314 40.422382 \n",
"std 403.004552 12.391444 \n",
"min 0.000000 1.000000 \n",
"25% 0.000000 40.000000 \n",
"50% 0.000000 40.000000 \n",
"75% 0.000000 45.000000 \n",
"max 4356.000000 99.000000 "
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.describe()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"workclass: ['Private' 'Local-gov' '?' 'Self-emp-not-inc' 'Federal-gov' 'State-gov'\n",
" 'Self-emp-inc' 'Without-pay' 'Never-worked']\n",
"education: ['11th' 'HS-grad' 'Assoc-acdm' 'Some-college' '10th' 'Prof-school'\n",
" '7th-8th' 'Bachelors' 'Masters' 'Doctorate' '5th-6th' 'Assoc-voc' '9th'\n",
" '12th' '1st-4th' 'Preschool']\n",
"marital-status: ['Never-married' 'Married-civ-spouse' 'Widowed' 'Divorced' 'Separated'\n",
" 'Married-spouse-absent' 'Married-AF-spouse']\n",
"occupation: ['Machine-op-inspct' 'Farming-fishing' 'Protective-serv' '?'\n",
" 'Other-service' 'Prof-specialty' 'Craft-repair' 'Adm-clerical'\n",
" 'Exec-managerial' 'Tech-support' 'Sales' 'Priv-house-serv'\n",
" 'Transport-moving' 'Handlers-cleaners' 'Armed-Forces']\n",
"relationship: ['Own-child' 'Husband' 'Not-in-family' 'Unmarried' 'Wife' 'Other-relative']\n",
"race: ['Black' 'White' 'Asian-Pac-Islander' 'Other' 'Amer-Indian-Eskimo']\n",
"gender: ['Male' 'Female']\n",
"nativa-country: ['United-States' '?' 'Peru' 'Guatemala' 'Mexico' 'Dominican-Republic'\n",
" 'Ireland' 'Germany' 'Philippines' 'Thailand' 'Haiti' 'El-Salvador'\n",
" 'Puerto-Rico' 'Vietnam' 'South' 'Columbia' 'Japan' 'India' 'Cambodia'\n",
" 'Poland' 'Laos' 'England' 'Cuba' 'Taiwan' 'Italy' 'Canada' 'Portugal'\n",
" 'China' 'Nicaragua' 'Honduras' 'Iran' 'Scotland' 'Jamaica' 'Ecuador'\n",
" 'Yugoslavia' 'Hungary' 'Hong' 'Greece' 'Trinadad&Tobago'\n",
" 'Outlying-US(Guam-USVI-etc)' 'France' 'Holand-Netherlands']\n",
"income: ['<=50K' '>50K']\n"
]
}
],
"source": [
"print 'workclass: {0}'.format(df['workclass'].unique())\n",
"print 'education: {0}'.format(df['education'].unique())\n",
"print 'marital-status: {0}'.format(df['marital-status'].unique())\n",
"print 'occupation: {0}'.format( df['occupation'].unique())\n",
"print 'relationship: {0}'.format(df['relationship'].unique())\n",
"print 'race: {0}'.format(df['race'].unique())\n",
"print 'gender: {0}'.format(df['gender'].unique())\n",
"print 'nativa-country: {0}'.format(df['native-country'].unique())\n",
"print 'income: {0}'.format(df['income'].unique())"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16\n",
"--- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | ---\n",
"Preschool | 1st-4th | 5th-6th | 7th-8th | 9th | 10th | 11th | 12th | HS-grad | Some-college | Assoc-voc | Assoc-acdm | Bachelors | Masters | Prof-school | Doctorate"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Regular plot"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nSlKLn5xsjzNnLtxQfXu407ibOefNxP46t9t5f7fz3iT219l1pv01Nblu+nxf5vvSmf7b2cH+Ojf2\n13ndznuTbs3+7J6KIFTw4p/+6Z909913e+0/cOCAnE6nhg4dqp49e1qfbpSkO++8U8XFxTpw4ECL\nocKBAwdkGIYSExOttvj4eJmmqf3797c4n7s9Li7O+qTlkCFDFBQUpLNnz+rkyZPq37+/R43L5dLh\nw4clSQkJCW3cOQAAAAAAbUOo4MU3vvENfeMb3/Daf88996i2tlY/+9nP9C//8i8efcnJyfr73/+u\njRs3atKkSR59J0+e1M6dO9WtWzdNmDDBak9KSpLD4dDevXt17NgxDRo0yKNuw4YNMgxDDz/8sNUW\nGBio8ePHa/v27dq4caMyMjI8avLz81VXV6dhw4YpLi6uvbcAAAAAAIBW8U4FH5g8ebIiIiK0d+9e\nZWVlyel0SrryCMPcuXPldDqVkpKiiIgIqyY0NFTTpk2T0+lURkaG9diCy+XSSy+9pJ07dyosLEyp\nqakec82aNUuStHr1ahUUFFjt+/bt0+LFi2UYhjUGAAAAAICOxEkFHwgODtbzzz+vtLQ0rVmzRlu2\nbFFkZKTKy8t1+fJlDR8+XAsWLGhWl5mZqX379unIkSNKTk7W0KFDdfr0aVVXV6tbt27KyclRcHCw\nR01CQoKefPJJ5eTkKDMzU9nZ2QoMDFRZWZkMw9DUqVM1ceLEm7V1AAAAAEAXwkkFXXnhomEYtuq8\nGTt2rPLy8qxHHMrKyhQZGanHH39cb7zxhsfnJN1CQkL05ptvKj09XdHR0VYIcf/992vdunX62te+\n1uJcaWlpevXVVzV69GjV1NToxIkTGj58uJ599lktWrSo3fsCAAAAAKAtuvxJhdGjR+vIkSPtrvvg\ngw+uOyY2NlbZ2dntum5QUJDmzp2ruXPntqsuKSlJSUlJ7aoBAAAAAOBGcFIBAAAAAADYQqgAAAAA\nAABsIVQAAAAAAAC2ECoAAAAAAABbCBUAAAAAAIAthAoAAAAAAMAWQgUAAAAAAGALoQIAAAAAALCF\nUAEAAAAAANhCqAAAAAAAAGwhVAAAAAAAALYQKgAAAAAAAFsIFQAAAAAAgC2ECgAAAAAAwBZCBQAA\nAAAAYAuhAgAAAAAAsIVQAQAAAAAA2EKoAAAAAAAAbCFUAAAAAAAAthAqAAAAAAAAWwgVAAAAAACA\n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\nf127du1SUFCQoqKi3HJtAAAAAAA/XzxToRIMw9Abb7yhp556SkeOHNH999+vdu3a6cqVK0pPT5dh\nGJoyZYruvvtuZ83gwYM1YsQIxcfHa/To0Wrfvr2uXr2qU6dOyTAMTZ06Vd27dy81TkBAgObPn6+Y\nmBitWrVKiYmJCgkJ0bFjx3T16lV17txZM2fOLNPf1KlTdeDAAaWmpmrQoEHq2LGjsrKylJOTIx8f\nHy1atEgBAQFuv04AAAAAgJ8XVipUUkhIiDZv3qxnn31Wbdu21enTp3XlyhX927/9m1auXKlx48aV\nqZk7d67mzZuniIgIZWRkKCsrSz169NBrr72m6Ojocsfp06eP4uPjnbc4pKWlKSQkRGPGjNFf//rX\ncl8LGRgYqLVr12rChAlq2bKlM4QYOHCg1q1bp549e7r2YgAAAAAAIFYqVEm9evUUExOjmJiYStdE\nRkYqMjKySuO0b99eCxcurFKNn5+fYmNjFRsbW6U6AAAAAACsYqUCAAAAAACwhFABAAAAAABYQqgA\nAAAAAAAsIVQAAAAAAACWECoAAAAAAABLCBUAAAAAAIAlhAoAAAAAAMASQgUAAAAAAGAJoQIAAAAA\nALCEUAEAAAAAAFhCqAAAAAAAACwhVAAAAAAAAJYQKgAAAAAAAEsIFQAAAAAAgCWECgAAAAAAwBJC\nBQAAAAAAYAmhAgAAAAAAsIRQAQAAAAAAWEKoAAAAAAAALCFUAAAAAAAAlhAqAAAAAAAASwgVAAAA\nAACAJYQKAAAAAADAEkIFAAAAAABgCaECAAAAAACwhFABAAAAAABYQqgAAAAAAAAsIVQAAAAAAACW\nECoAAAAAAABLCBUAAAAAAIAlhAoAAAAAAMASQgUAAAAAAGAJoQIAAAAAALCEUAEAAAAAAFhCqAAA\nAAAAACwhVAAAAAAAAJYQKgAAAAAAAEsIFQAAAAAAgCWECgAAAAAAwBJCBQAAAAAAYAmhAgAAAAAA\nsIRQAQAAAAAAWEKoAAAAAAAALCFUAAAAAAAAlhAqAAAAAAAASwgVAAAAAACAJYQKAAAAAADAEkIF\nAAAAAABgCaECAAAAAACwhFABAAAAAABYQqgAAAAAAAAsIVQAAAAAAACWECoAAAAAAABLCBUAAAAA\nAIAlhAoAAAAAAMASQgUAAAAAAGAJoQIAAAAAALCEUAEAAAAAAFhCqGDR/v37dccdd+i+++6r8JiE\n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\nLCFUAAAAAAAAlhAqAAAAAAAAS2w13QBQF128eFHFxcUKCgqq1PE//vijCgsLFRoa6ubOUF2ZmZmq\nV6+eGjduXNOtuNz333+vjIwM+fj4qF27dpX+/NYWubm5zvk1b95cDRo0qOmWAAAAaj3DNE2zppsA\n6orVq1fr3XffVUZGhiQpODhYQ4YMUXR0tIKDgyuse/zxx5WcnKzDhw97qlW3ME1TmZmZ+vHHH9Ws\nWTPdfvvtNd2Sy4WFhalnz55avXp1TbdSaW+88YZCQ0MVFRVV7v5//OMfiouL04kTJ0pt79Wrl2bM\nmKGuXbt6os1qS0hI0KZNmxQVFaUhQ4Y4t+/evVsLFy5USkqKc5uXl5d69eql8ePH6+67766Jditt\n7969uv3229WyZcuabqVGnT59WhkZGQoMDFRYWJhsttr5e5HCwkKdOXNGeXl5unr1qnx8fBQQEKBm\nzZoRdAEAaiVCBcBFnnvuOX344Yf66V8pwzAUFBSkBQsWqE+fPuXWPv744zpw4IBSU1M90aplpmnq\n66+/1g8//KBWrVqpZ8+ezn0ff/yxXn31VWegIkkdO3bUjBkzdM8999REu24RFhamu+66S2vWrKnp\nVirtRj3/z//8j+bMmSOHwyFJaty4sUzTVG5uriTJZrPpz3/+c6kf0m81pmlqypQp2rZtmyRp6tSp\nio6OliRt2LBBs2fPlt1ulyTnD6LFxcWSrv39nDJlisaNG1cDnVdOWFiY6tWrp9mzZysyMrKm23GL\njIwMffTRR8rMzFRoaKiGDh2qkJAQSVJKSormzJlT6t+PDRo0UHR0tJ555pmaarlKioqK9Le//U0f\nfPCB0tLSnH/ffqpZs2a6++679eijj6pHjx4e7hIAAGsIFQAXeP/99/X8888rICBA06ZNU//+/ZWf\nn6/t27dr5cqVunDhwg1/OKsNocK3336rKVOmKD093bntrrvu0pIlS7R7925NmTLF+Y2yv7+/CgoK\nZJqmvLy89NJLL+nxxx+vqdZv6L777qvS8RkZGapXr56aNGni3GYYhrZv3+7q1lymolDh1KlT+t3v\nfqfi4mI9+eSTGjdunJo2bSpJysrK0jvvvKP33ntP3t7e2rRpkzp27FgT7d/UmjVr9Kc//Un+/v56\n+umnNXz4cDVv3lzHjx/X0KFDVVxcrCFDhmj8+PFq06aNDMNQRkaG1qxZozVr1qi4uFgrV66sMPSr\naWFhYZKufc4GDRqkP/7xj6U+f7Xdpk2bNHv2bF29etW5LSAgQO+8845sNpuefPJJXblyRd7e3goK\nClJubq4cDocMw1BkZKTmzZtXg93f3IkTJxQdHa309PQyobMk+fr6ytvbW/n5+c5thmGoX79+evXV\nVxUQEODJdqvt0qVLSk5O1qlTp3Tu3DkVFhbKMAzVq1dPwcHBat26tbp27cqqjFtQUlKSvv32W9nt\ndrVr1069e/eWr6/vDWs2bdqkzMxMTZo0yUNdusfu3bu1d+9e5eTkqFmzZrr33nvVuXPnmm7L5d58\n802FhoZq+PDhNd2KSxw8eFCfffaZMjMznbduDho0SC1atKjp1qqkpP+S78FKfPfdd/riiy+Unp4u\nm82mli1bauDAgfrFL35RQ51WjFABcIFRo0YpKSlJb775ZpkfUrOzszVx4kQdPHhQ3t7eeuWVV/Tg\ngw+WOuZWDxWysrI0ZMgQ5eXlqWHDhmrTpo1OnDihixcvasCAAfr+++917NgxPfnkk4qOjlbTpk11\n4cIFrV69WkuXLpUkrV+//pb8D/Qdd9whSeV+s19ZhmHcsn92UsWhwoIFC7RixQo9+uijmj17drm1\nK1eu1CuvvKJhw4bp5Zdf9kC3VTd8+HClpqbq7bffVr9+/Zzb582bp7/+9a966qmn9Pzzz5dbu2XL\nFk2bNk3/9m//pr/85S+earlKwsLCFBISIrvdrpycHDVo0EATJkzQk08+KR8fn5pur1r279+vUaNG\nyW63q2vXrurcubOOHTumffv2qX379mrWrJl27dqlMWPGaNy4cbrttttUVFSk999/X3Fxcbp8+bIW\nLVqk3/72tzU9lXLl5eUpMjJSmZmZuuuuu/TEE0+odevWKi4u1rFjx/TOO+/ohx9+0Ouvv65f/epX\nSk1N1RdffKGNGzcqNzdXXbt21Zo1a276g92t4MCBA1q2bJm+/PJL50qginh5ealfv34aO3asunfv\n7qEOUZHTp09rypQpZW7BbNy4saZPn37DFVK3+vcvJXbv3q2NGzfqzJkzat26tf7jP/5DHTp0UFFR\nkZ599ln94x//kHTtewHDMCRJDz74oObOnSt/f/+abN2latNqy3vvvVfdunXTokWLyuzLz8/XH/7w\nB23dulXSv76HMwxDXl5eeuyxx/TCCy/c8rfJff/99/rjH/+oPXv26KWXXtITTzwh6dptcnPmzFFC\nQkK5K6CHDh2qmTNn3lLh7K19pYFa4siRI2rcuHG5v/Vu2rSp3nvvPUVHR2vv3r36z//8TzVo0KBW\n3RKwfPly5eXlafjw4Zo9e7Z8fX2Vn5+viRMnaseOHTIMQ0888YRefPFFZ81tt92mCRMmKCgoSHPm\nzNE777yjBQsW1OAsyrdmzRq9+OKLOnHihPz9/RUTE1Phb+RN01RMTIw6dOig6dOne7hT1zty5IgM\nw9DTTz9d4TFPPfWUVqxYoa+++sqDnVXN8ePH9Ytf/KJUoFCy3TAM/f73v6+w9sEHH9Rrr72mQ4cO\nubnL6mnRooXefPNN/fGPf9T27ds1f/58vffee/r973+vqKioWvfb7BLLly+Xw+FQTEyMJk+e7Nz+\nl7/8Ra+99pqOHz+u0aNH67nnnnPu8/X1VVRUlBo0aKApU6Zo3bp1t2yo8N577ykzM1Pjxo3T1Kn/\nr737jorqWtsA/hzAhoCIBiM2RHBQERQNqMkXEyHGqIkl9h5b1Es0IZprvcaIXUSaqDEYg+1iQGxR\nRMGGDe5VERUpgnQURBSlCef7g8W5EGCAAWHA57cWK8PM3nvePUzGOe/Z+z0/lHjMzMwMo0aNwoIF\nC7B48WKcPHkS5ubmMDc3x5w5c7BgwQIEBwfj999/l7bzKCs3Nzc4OztLq9U6dOgAPT09tGjRAk2b\nNkVBQQFyc3Px/PlzJCYmIj4+Hv7+/rhw4QK+//57pZ9fQ5aeno5p06YhKSkJ6urqMDExQVZWFsLC\nwpCamorly5fjxo0bsLOzU/oDtPI4OTnBzc1NOjgLCgrCqVOnsGPHDly8eBEXLlyAqqoq+vXrB319\nfaSkpODSpUv466+/kJ6ejt9++01KNCiboKCgKvd5+fJlqX4ffPBBTYVUY5KTk9GuXbsyH1u0aBEu\nX74MQRDQv39/dOvWDaIoIiwsDNeuXcOBAweQlJQEV1fXWo668p48eYJJkyYhNTUVgiCU2Bb33Xff\n4fLlyxBFET179oShoSFUVFTw+PFj/Oc//4GPjw8ePXoEDw8PpUk6189PB6q3+vfvX+0xBEHA1atX\nayCampOdnV3uBx9QuB1g165dmD59Ou7evYuFCxdi3759MDU1rcUoFXfhwgVoampi9erV0odXs2bN\nsGLFCgwfPhwAMGXKlDL7TpgwAS4uLrh582atxVsV5ubmOHbsGJydnbF37144Oztj7ty5mDdvXrln\ngbW0tPDJJ5/UbqBvQdEXLHlXHVFRUYGenh7Cw8NrK6wqKyp093fq6uoAUOFVLNTV1ZGWlvZWYqtJ\nLVu2hIuLC86fPw97e3s8evQImzZtwo4dO6TilEVbJeqLW7duQVtbGwsXLixx/9y5c/HHH38gLS0N\n06dPL7PvkCFDoKOjo9QJobNnz6JVq1YlEibFqaioYMmSJRg2bBg8PT2lJeSampqwt7fHoEGDcOLE\nCaU+6Pb394ejoyMaN24MGxsbjBkzRm5hYqDwSiyenp7YsWMHHBwc0KFDB3zxxRe1FHHVXLlypUbG\n+eijj2pknJq2Z88eJCUloU+fPnB0dJS2ViUmJmLLli04ffo0jh07hoyMDDg7O9e7xEJgYCB27NgB\nNTU1jB8/HkZGRggNDYW3tzdWrFiBFy9eQEdHB7t374aJiYnULzY2FnPnzsW1a9fg5eWFMWPG1OEs\nyjd16tQqJTwEQUBERASmTZtW4r76VCj8/PnzuHTpErS1tbF79+5S36XDwsIwf/58+Pv7w8fHByNH\njqyjSOVzdXVFamoqevfujc2bN0vFmM+cOYNLly5BR0cH9vb2pY6dwsLC8NNPPyEkJAQeHh6YNWtW\nXYRfSv36ZKB6r3379rh79261xlDGbPF7772HmJgY5OTkoEmTJmW2UVdXx65duzB+/HjExcVhzpw5\n2L9/P4yMjGo52qpLSUmBoaFhqbl16dIF7dq1Q0JCQrkHpoIg4P3331fqg9LGjRvjxx9/xJAhQ7Bs\n2TK4urrC19cXdnZ26NWrV12H99Z069YNV69eRUJCAjp16lRmm7y8PMTGxirVEru/MzQ0xN27dxER\nEVHi/6c+ffrg3LlzCAoKwocfflhm37i4OERFRcHAwKC2wq02KysrfPrpp/Dy8oK7uzuio6Ph7u4O\nd3d36OvrY8iQIbCwsECPHj2gpaVV1+HKlZmZCUNDwzI/11u3bo20tDSpYGNZ3n//fURERLzNEKsl\nPj4eRkZGUFFRKbdNx44dAaBUckRXVxdGRkaIiop6qzFW1969eyEIArZv345BgwZVqo+Ojg7mzZsH\nIyMj/OMf/4CHh4fSJhVmz55d7e8dynzQ5u/vDzU1Ndjb25eo1aKnpwcHBweYmJhgy5YtuHDhAmxt\nbeHo6KiU38PK4+HhAUEQ4OTkVOL92bFjR2zbtg2CIGD16tUlEgpFjzs6OmLkyJHw8fFR2qSCkZGR\n9BmopqYGDQ0Nue2fP39eqXbKzM/PD4IgYOnSpWWenDM2NoajoyPGjRsHLy8vpU0qXLx4EY0aNYKT\nk1OJWgpF81u9enWZJ2ONjY3h5uaGzz//HMeOHWNSgd5Nnp6ecHBwwO7duyEIAmxtbWFmZlbXYVWb\npaUlfHx8sH79eqxZs6bcdjo6OnB3d8fEiRORmpqKGTNmYPv27bUYqWI0NDSQmJiIgoKCUl+OR44c\nKRU3KiuxkJubi8ePH6NFixa1Fa7CevToAW9vb+zcuRO7du3CpEmTMGnSJNja2kpnveurR48ewc7O\nDkZGRjA0NISRkRFGjx6NvXv3Yv/+/SW2rhTn7Ows1c5QVqNGjcLt27fx7bff4tdff0WXLl0AAGPG\njIG7uzt++eUX7N27t9T788mTJ1i4cCEKCgpK1TlRdioqKhg7dizGjh2Lq1evYv/+/bhy5Qqio6Ox\nc+dO7Ny5E0DhgXmLFi2gqamJQ4cO1XHUpenq6iImJgbPnz+Htra2dH96ejpiYmIAFG5jkclkpfpm\nZWUhJiZGqYtWamhoICoqCpmZmeV+iY+MjASAMq8I8eLFC6WvmxEWFoaOHTsq9BlhZWWFTp06KfV+\n/KVLl8LR0VEqpCkvyVUfJSYmolOnTuVeAnrWrFlo3Lgx1q1bBz8/P/zrX//C2rVrazlKxYWEhKBt\n27al3p9TpkyBm5sbsrOzy11FIpPJYGBggLCwsNoIVSFHjx6Fm5sbdu3aBQAYN24cbGxsyl0Sb2xs\nDDMzs3pRU6E8ycnJACD3M8fU1BSdO3fGw4cPayusKktNTUWXLl1KFWcsuvqWvBWx7dq1Q9euXUtd\nCrwuMalAtaookdCoUSO4urrCw8MD48aNqxcHnPLMmTMHf/31Fzw9PREaGorBgwfD2tpaOrgprkOH\nDtizZw9mzZqFtLQ0zJgxo9zVDcqi6Izvjh07SlV4rqjis5OTEzIzM+tNDQk1NTXY2Nhg8ODBWL58\nOfbv3w9/f3+sWbOm3syhLOnp6di/f3+JM0ytW7dGo0aNcODAARgaGmL8+PEACg9uzpw5Ax8fH2nP\nory6BHVt3LhxOHv2LAIDAzFixAiMGDECgwYNQpcuXbBp0ybY2tpi2LBh+Oqrr6SD09DQUPj6+uLV\nq1cwMDCQW1dC2Q0YMAADBgxAVlYWAgMDERAQgNu3byM6OhpPnz7F06dPlfbM4kcffQRPT0/88MMP\n2LJlC1q3bo0nT55g6dKlyMnJQePGjbF161bs3LkTqqqqJfq6uLjg9evXGDx4cB1FXzELCwucPn0a\nK1euhL29fak55OXlYePGjRAEodQZt7/++gsJCQlKude5uNzc3Gr9G6bsSZMZM2bA3Nwcc+fORUZG\nBiZMmID58+fXdVg1RlVVFTk5OXLbTJ06FRkZGXBxccGff/4JHR2dUjVClNXLly/LTDyqq6ujQ4cO\niIiIkPseFAShxJVplI2amhq+++476TvLr7/+Cj8/P6xdu7bEZb8bkqIVeBXVElBVVUV2dnZthKQQ\nbW1tKYFQXFGC79WrV3I/W589e6Y09RQAJhWojnz33Xd48OABAgICsHHjRmzYsKGuQ6oWAwMDODg4\nYMmSJbh37x7u37+PNm3alJlUAAozxQcOHMC8efMQExOD169fK+2XfqBwf7O/vz9cXV0RHByMcePG\nyT2zm5WVhcuXL8PT0xOBgYFQU1PDnDlzajHi6uvatSs8PT3h7u4OFxcXzJ07F8OGDavrsBRy/fp1\nhIeH4+HDhwgPD5d+nj59KrUpns0vKCiQClGKoogffvgBFhYWtR53ZQmCADc3N2zevBmHDh2Cl5cX\nvL29S7QRRRGenp4lfgeAXr16wdHRUekTe5XRrFkzWFtbw9raGkBhrZeiv/Pz58/rOLqyzZ8/H76+\nvrh+/To+/vhjaGtrIz09HUBhEU0tLS0cOnQIX3/9NWbOnAkDAwM8ffoUXl5eOH/+PBo1aqQ0Sz/L\nMn/+fJw7dw6+vr6Ijo7GpEmT0K1bN+Tn5yM8PBzu7u6IjY2FlpaWdNndkJAQ7Nu3D6dPn4YgCOXW\nlFAWRkZGuH//Pu7du4cePXpUqe/NmzcRGRmp9CsWTU1N4ebmhmnTpsHFxQX9+vVrMFet0NfXR1hY\nGCIjI2FoaFhuOxsbGyQnJ+PPP//E7t270bx5c6Wu9VFET08P0dHRSElJKbXKZP369YiMjERubm6Z\nfWNjYxEdHQ19ff1aiLR6ZDIZjhw5gj179sDV1RXTpk3DuHHjsHjx4nq91SE/P7/Uff369YOfnx/u\n3LkDS0vLMvvFx8cjJiZGbr2zuta3b1/4+vrCw8MDU6dOle4fMmQIjh49Cm9vb8yePbvMvidPnkRy\ncrJy1WoRierI06dPxd69e4vdunUTHzx4UNfh1IjU1FRxx44d4jfffCPeuXOnwvZZWVnitm3bxL59\n+4rGxsa1EKHizp8/L5qbm4symUxctGiR3LYhISGiTCYTZTKZ2L17d9HLy6uWonw7oqNI2QRaAAAX\nAElEQVSjxYkTJ0pzmjRpUl2HVCNiY2NFPz8/0cXFRQwICCjx2CeffCLOnDlTDAwMrJvgFBQbGyvu\n2LFDnDZtmti/f3/pb1b0Y2xsLFpbW4u2train5+fWFBQUNchV6ghvefK8uDBA/HLL78s8XeaNWuW\nmJmZKaampoqfffaZ9Lcr+pHJZGKPHj3EY8eO1XX4FfLz8xN79epVag5F87CwsBCDgoKk9u7u7qJM\nJhNNTExEDw+POoy8co4ePSrKZDLR0tJSPHLkiJiVlVVhn5ycHPHIkSPSv33e3t61EGn1/f7776JM\nJhO/+uqrevHZURm7du0SZTKZOGzYsAq/i+Xn54sLFiyQ3ssrV64UR40apdTfX7Zu3SrKZDJx/Pjx\nYkJCQqX7JSYmiqNHjxaNjY3F7du3v8UIa96jR4+k7ywDBw4U/f39pcfq078nRe+zPn36iOPHjxdX\nrFgh7t27Vzx79qzYu3dvccyYMWJ2dnapfomJieLXX38tGhsbixs2bKiDyCsnNDRU7N69u9itWzdx\n27Zt4qtXr6THFixYIPbo0UPcs2ePmJeXJ92fk5Mj/vHHH6KZmZlobGwsXrhwoS5CL5MgitW4ODtR\nNQUGBkpnKRpyQbyK5ObmIjw8vFShIGWTkpKC48ePQ1dXFyNGjCi33YsXLzB06FD069cPs2fPrncV\n6cuzf/9++Pr6QiaTYeXKlXUdDlVCbm4uMjMzpSXaGhoaSr/c+u8GDRoEU1PTelF/pToiIyPx5MkT\ntGvXrkTh0GfPnmHXrl0ICAhAcnIyNDU1YWlpiblz59abz5b4+Hjs3bsXgYGBSEpKAlBYuHjgwIGY\nMWMGdHV1pbbBwcEICQmBtbW1VMRR2W3duhV79uyBIAhQU1ODTCZD+/btoa2tjaZNmwIovO56RkYG\nEhISEBYWhtzcXIiiiDFjxsDOzq6OZ1A5BQUFGDFiBCIiIrB161bp6kf1WU5ODsaOHYvw8HCoqqqi\nQ4cOWLx4sbTi6e9yc3OxePFinD17FoIgQBRFCIKgtHUxMjMzMWbMGMTExEBFRQWjR4+W+36Li4vD\nunXrEBgYiLy8PHTs2BHe3t718mz/H3/8AQcHB2RnZ+OLL77AypUrMWDAAPTp06de1FSYN28ewsPD\nkZiYKN3391W9Y8eOxS+//AKg8L25YMECBAUFIScnB61atcKxY8eUuu7OkSNHsHr1aoiiiObNm6Nf\nv37o0qULmjdvjr179+L58+dQV1eXiklHRkYiOzsboihi6tSp5dbDqgtMKhARERFRtQQEBGDXrl24\nfft2ifuLDgL+/nWze/fu+Pbbb/H555/XWow1ITs7G1lZWWjSpEm9L+BbJCMjA6tXr4avry8AwNHR\nUW6tkoKCAjg5OeHXX39Ffn6+UicVgMK6CsuWLYO/vz/Gjh0rt6B2dHS0dCWSnj17wtHRUe5ll5Vd\nfHw8Vq1ahWvXrqFFixZ48eIFzM3N60VSoUhmZqa0bbNoG2dERARevHiB2bNnY/HixVLbnj17Ii8v\nDx06dICzs3O9SDyHhoZi06ZNCA4Olj4nixJ2ZWnZsiUWLVqECRMm1GaYFWJSgYiIiIhqRGxsLO7c\nuYPHjx8jPT0d2dnZUFVVRbNmzaCtrQ0DAwOYmJgo9V7nd1VKSgpu3rwJCwuLSl3lIioqCvv27cOt\nW7dw4sSJWoiwep4+fYoXL16UW+8KKCye6uLiAktLSwwYMKAWo3u7PD09sWXLFrx8+bLerFSoSFJS\nElRUVEq8Vx0cHNC1a1d89tlnSlXEsDJSUlJw7do1REREICkpCa9evUJOTg6aNm0KTU1NdO7cGaam\npujfv3+por/KgEkFIiIiIiKiBiwlJQVXr15Fq1at8PHHH9d1ONTAMKlARERERERERApRqesAiIiI\niIiIiKh+YlKBiIiIiIiIiBSiVtcBEBEREVH91L9//2qPIQgCrl69WgPR1DzOr2KcX91pyPNryHMD\nGt78mFQgIiIiIoW0b98ed+/erdYYf7/2vDLh/CrG+dWdhjy/hjw3oOHNj4UaiYiIiEghoijCwcEB\nu3fvhiAIsLW1hZmZWZXHsbCweAvRVR/nVzmcX91oyPNryHMDGt78mFQgIiIiompxdnaGq6srdHV1\nceLECbRo0aKuQ6pRnF/9xvnVXw15bkDDmZ/qzz///HNdB0FERERE9ZelpSXu37+Pe/fuITU1FdbW\n1nUdUo3i/Oo3zq/+ashzAxrO/LhSgYiIiIiqLTU1FYMHD0Z2dja8vb1hbGxc1yHVKM6vfuP86q+G\nPDegYcyPKxWIiIiIqNrU1dVhYmKC7t27o3Xr1nj//ffrOqQaxfnVb5xf/dWQ5wY0jPlxpQIRERER\nERERKUSlrgMgIiIiIiIiovqJSQUiIiIiIiIiUgiTCkRERERERESkECYViIiIiIiIiEghTCoQERER\nERERkUKYVCAiIiIiIiIihTCpQEREREREREQKYVKBiIiIiIiIiBSiVtcBEBER0duVkJAAKyurGhnL\nxsYGNjY2CvefOHEibt26BQDYuHEjRo4cWSNx1WdxcXHQ0dFB8+bNSz22bNkyHD16FED1X3siIqK3\ngSsViIiI3hGCIFT7pyZiKP7fd1lubi6cnZ0xfPhwZGRkyG3L14uIiJQVVyoQERG9Yz799FPo6uoq\n1Ldnz541HM27a+jQoYiPj2fCgIiI6jUmFYiIiN4RoihCEAR88803+OCDD+o6nHdeZRMKTDoQEZEy\nY1KBiIiIqI4UJXrKs2HDBmzYsKEWIyIiIqoa1lQgIiIiIiIiIoUwqUBERERERERECuH2ByIiIqoR\ncXFxOHjwIAIDAxEXFwcAaNeuHaysrDBlyhS89957FY4xdepUBAUFAajcJSer0j4vLw+nTp2Cn58f\n7t+/j9TUVKipqUFXVxdmZmYYOXIkBgwYUKl5njp1CkFBQYiOjkZGRgZycnKgpaWF1q1bw9zcHEOG\nDEG/fv1K9T169CiWLVtW4j5RFDFo0CDpdw8PD6nmRVUuKZmfn48zZ87g3LlzCAkJwbNnzwAArVq1\nQs+ePWFlZYWhQ4dCRaX8c0ouLi5wcXEBALi6usLKygopKSk4cuQIAgICkJCQgNevX6N169bo3bs3\nRowYgY8//rjC14yIiBouJhWIiIio2nbv3g1nZ2fk5eUB+F9xwaioKERGRuLw4cOwt7ev9HhVLU5Y\nUfsrV67gX//6FxITE0u0f/PmDR4/fozHjx/j+PHjGDhwILZu3QpNTc1SY+Tm5mLNmjXw8fFBfn5+\nqedNT0/Hs2fPEB4ejsOHD+P//u//4ODgAA0NjTLjFUWx0vFX9HhQUBCWLVuG+Pj4Uu0TEhIQHx+P\n06dPw8XFBZs3b4apqWmlnu/UqVP4+eef8fLlyxJjJiYmIjExEadOncLAgQPh5OSEJk2ayB2TiIga\nJiYViIiIqFocHBywa9cuCIIAQRDQtGlTWFpaQkdHB4mJiQgODsaLFy9gY2NT5sH623bq1Cn89NNP\nKCgokA6Mu3XrBkNDQ+Tk5ODevXtISEgAAFy8eBEzZ87EwYMH0ahRI2mMgoICzJo1C0FBQdI827Zt\nCxMTE2hrayMnJwcxMTEIDQ1FQUEBgMJExvLly+Hk5CSN07lzZ0yYMAEAcPjwYQCFB/DDhw9H8+bN\nAaDKl/s8d+4cFi1aVGJ+Xbt2RdeuXSEIAh4+fIjw8HAAQExMDKZMmQJHR0d8+umncsf18/PD8ePH\nIYoi1NXV0adPH+jq6iItLQ3Xr19HTk4OAODSpUtYvXo1Nm7cWKW4iYioYWBSgYiIiBR2/fp17N69\nWzqYtba2xtq1a6GtrS21iY+Px5IlS3D79m3pQLS2xMbGYsWKFdKBvqGhITZt2oTu3btLbURRxIED\nB7Bu3ToIgoDQ0FC4ublh4cKFUpsDBw5ICQU1NTWsX78eX375ZannS0hIwD//+U8EBwcDKDwwj4uL\nQ4cOHQAAvXr1Qq9evQD8L6kAAD/88AP09PSqPL+wsDDY2tpK8zMwMMCGDRtKrUS4desWli5ditjY\nWOTm5mLx4sU4cuQIDAwMyh3bx8cHgiBg0qRJ+P7770skhNLT02Fra4tr164BAI4fPw4bGxu0b9++\nynMgIqL6jUkFIiKid0TRgb+7uztOnjxZ5f4DBgzA559/XuI+Jycn6bKIFhYWcHJyKrVUv3379nB3\nd8fYsWMRFRWl+AQU4OrqiuzsbACAnp4eDh48WGq1hCAImDJlCp4/fy7VEzhw4ADmz58vrVbYv3+/\n1H7evHllJhSAwhoSjo6OGDhwoLRF4saNG1JSoaZt27YNubm5AApf50OHDkFLS6tUu969e+PQoUMY\nPXo0kpOT8fr1a2zZsgVubm7lji0IAsaNG4dVq1aVeqxly5ZwcHCAtbU1MjMzIYoiLl68iMmTJ9fc\n5IiIqF5gUoGIiOgdIooiAgICFOrbtGnTEkmFJ0+e4NatW9Lvy5cvL3fvf7NmzbB8+XLMnDlToedW\nxJs3b+Dv7w+g8AB5yZIlcrdfzJgxA3v27EFOTg4aN26MqKgoGBsb48WLFzAyMkLTpk2RkpKCKVOm\nyH3eVq1awdDQEGFhYRAEAc+fP6/ReRWJi4vDpUuXpNd81apVZSYUiujo6GDlypWwsbGBKIq4cOEC\nHj9+jE6dOpVqK4oiVFVVsWDBgnLH09bWhoWFhfQaFxXnJCKidwuTCkRERO+YqhZBLK/fxYsXpVUK\n+vr6kMlkcvsPGDAAurq6ePLkiULPX1U3btzAy5cvARQmRKytreW219DQwIkTJ6CjoyPVNwAALS0t\naQVDZRVPXhQVr6xpV69eBVCYAGjTpg0GDhxYYR8rK6sSf4OrV6+WmVQQBAGdO3dGmzZt5I5XfLvD\n69evqxI+ERE1EEwqEBERvSOKEgAeHh7o27dvtcd7+PChdLtHjx6V6mNiYiKd2X7bIiMjARQeIMtk\nshKFF8ujyDaFN2/eICEhAZGRkbh37x6Cg4NLrOAoqndQ0+7fvw+gcH5mZmaV6iMIAnr16oWzZ8+W\nGKMsZSUb/q74lS3evHlTqRiIiKhhYVKBiIjoHVP8UobVkZaWJt2u7BUL2rVrVyPPXRmKxFeRnJwc\nBAQE4ObNm4iKikJcXBxSUlKk+glA6RUdNfV6/116erp0uypFHtu2bSvdfvbsWbntyroU5t+pqKhI\nt9/WPImISLkxqUBEREQKycjIkG43bdq0Un2Kbyt424rXMmjWrFm1x/vzzz+xbdu2EgfiRQmEov+2\nbNkS/fv3x927dxEbG1vt55QnMzNTuq2url7pfsVfi6ysrHLbFU8YEBERlYdJBSIiIlJI48aNpdvy\nDk6LK7pSQU2Rt7WgeKKjsvGVZ+fOndi+fTsEQZB+jIyMYGxsjM6dO8PAwADGxsbo2LEjAGDKlClv\nPalQPJFQlXoGr169km7XRLKFiIjebUwqEBERkUKKF/FLTk6uVJ/iWxLKUnzrQPEtBeUpKsRYFm1t\nben206dPKxFdYdKjeLIEACIiIuDs7CzFZmVlhVWrVsktYlh8FcfboqOjI91OTEysdL/ibVu3bl2j\nMRER0buH69qIiIhIId27dwdQuJf+zp07lepz7949uY+rqf3vfEdlVhckJCRUKr6HDx9WKklhZ2cH\nMzMzfPHFFzh06BAAwMvLC/n5+RBFEXp6enB0dJSbUMjPz0dycrLCV9morKLimKIo4vbt25Xq8/e/\nVZcuXd5KbERE9O5gUoGIiIgU8vHHH0v77pOSknD9+nW57R88eIDIyEi5B9vFay5UdPY9ODgYr169\nKnc8c3NzqKmpQRAEZGVlISAgQO54oijiypUryM3NRUxMjLTS4dGjRwAKV1GYmppCVVVV7jiXL18u\nsYKivGRGdZMO/fr1k8Z5+vQpLly4UGGf8+fPIzU1Vfp9wIAB1YqBiIiISQUiIiJSSNu2bWFlZSX9\nbmdnV+7qgvz8fKxduxaA/KsE6OvrS23OnDlTbs2EN2/eYPPmzXLH09LSwtChQ6XH7e3t5a5++Pe/\n/43ExESIoggtLS0MGjQIwP9qR4iiiPDw8HL7A4XbO9asWVMirry8vDLbFl+VUV4beTp16oSPPvpI\neh47Ozu52y7S09Oxfv16KZnRu3dvGBoaVvl5iYiIimNSgYiIiBS2cuVKaGhoQBRFREVFYdq0aXj8\n+HGJNqmpqZg3bx7++9//Vnh2vuhAXhAEJCUlYcmSJaWKEEZHR2P69OkICQmpcDwbGxs0b94coigi\nJiYG06dPR3R0dKl2Xl5eWLdunfTc8+bNQ5MmTQAAffr0ke5/9OgRNm3aVKrgZH5+Ps6cOYORI0ci\nKSmpRFzlFVHU0tKSble0LaQ8ixcvRpMmTSCKIhISEjBx4sQyt6LcuXMHkydPlpImzZo1g52dnULP\nSUREVBwLNRIREb0jig503d3dcfLkSYXHsbW1RYsWLQAUFmtcv349Fi9ejNzcXNy9exdDhw5F3759\n0a5dO6SmpuLGjRvIycmBmpoaTExM5O7/7927Nz788EMEBgYCAE6dOoUrV66gT58+0NTUxOPHj3Hn\nzh2IoogWLVpg2LBhOHjwYLnjdezYERs2bMCPP/6IN2/eICQkBMOGDYOZmRn09fWRm5uL27dvS7UZ\nBEHAoEGDMGPGDGmMsWPHwt3dXSr2uHfvXpw4cQImJiZo2bIlUlNTcf/+faSlpUEQBOjp6aFfv37w\n9vYGUH5xSn19faSlpUEURaxcuRIBAQFQUVHB5MmTYWpqWqm/hbGxMdatW4elS5ciPz8fjx49wvjx\n4yGTydC1a1cIgoDw8HCEhYVJfRo3bowNGzbAwMCgUs9BREQkD5MKRERE74iiZfIV1RaQRxAEfPvt\nt1JSAQAGDx6M3377DYsWLUJ6ejoKCgpw48aNEn2aNm2KX375BQ8ePKiwqOD27dthY2ODmzdvAii8\nkoK/v3+J8fT19WFvb1+pAoWDBw/Gnj17sGzZMiQlJUEURdy6dQu3bt2SxitKuEyePBlLly4tsdJA\nQ0MDe/bswfz585GUlASgcPVF8RoGgiBARUUFw4YNw8qVKxEaGgpvb2+5RSxnzpyJW7duQRRFvH79\nGidOnIAgCDA0NKx0UgEAhg8fDl1dXSxbtkyqQ/Hw4UM8fPiwRHwA0LlzZ2zbtg3GxsaVHp+IiEge\nJhWIiIjeATV1JYLyxvnggw9w9uxZHD58GOfOnUNkZCTy8vLQpk0bfPjhh5g2bRo6d+6MBw8elDiI\nL4umpib27duHc+fO4fjx47h79y7S0tKgpaUFfX19DB06FF9//TWaNGmC27dvVzgeAFhaWsLX1xc+\nPj7w9/dHWFgYnj17BlVVVbRt2xYWFhaYMGECZDJZmf1lMhmOHz8OT09P+Pv7IzIyEpmZmdDQ0ICe\nnh4sLS0xatQodO3aFUDhlolmzZohOzsbT548wbVr19C/f/8SY1pZWWH37t347bff8ODBA2RmZkJT\nU7NU3YfK/O0sLCxw9uxZnDhxAgEBAbh37x7S0tKQn5+P9957Dz179sTgwYMxZMgQqbhmeYqer7Lv\nmaq2JyKihkUQ5VVLIiIiIiIiIiIqBws1EhEREREREZFCmFQgIiIiIiIiIoUwqUBERERERERECmFS\ngYiIiIiIiIgUwqQCERERERERESmESQUiIiIiIiIiUgiTCkRERERERESkECYViIiIiIiIiEghTCoQ\nERERERERkUKYVCAiIiIiIiIihTCpQEREREREREQKYVKBiIiIiIiIiBTCpAIRERERERERKYRJBSIi\nIiIiIiJSCJMKRERERERERKQQJhWIiIiIiIiISCFMKhARERERERGRQphUICIiIiIiIiKFMKlARERE\nRERERAphUoGIiIiIiIiIFPL/LRPVa8evFhsAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fb60023d1d0>"
]
},
"metadata": {
"image/png": {
"height": 368,
"width": 522
}
},
"output_type": "display_data"
}
],
"source": [
"ax = df.groupby(['educational-num']).size().plot(kind='bar', color='mediumpurple')\n",
"\n",
"ax.set_xlabel('Education', fontsize=18)\n",
"ax.set_ylabel('Census', fontsize=18)\n",
"ax.tick_params(labelsize=12)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Double plot"
]
},
{
"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>&lt;=50K</th>\n",
" <th>&gt;50K</th>\n",
" </tr>\n",
" <tr>\n",
" <th>educational-num</th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>82</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>239</td>\n",
" <td>8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>482</td>\n",
" <td>27</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>893</td>\n",
" <td>62</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>715</td>\n",
" <td>41</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>1302</td>\n",
" <td>87</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>1720</td>\n",
" <td>92</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>609</td>\n",
" <td>48</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>13281</td>\n",
" <td>2503</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>8815</td>\n",
" <td>2063</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>1539</td>\n",
" <td>522</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>1188</td>\n",
" <td>413</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>4712</td>\n",
" <td>3313</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>1198</td>\n",
" <td>1459</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>217</td>\n",
" <td>617</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>163</td>\n",
" <td>431</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" <=50K >50K\n",
"educational-num \n",
"1 82 1\n",
"2 239 8\n",
"3 482 27\n",
"4 893 62\n",
"5 715 41\n",
"6 1302 87\n",
"7 1720 92\n",
"8 609 48\n",
"9 13281 2503\n",
"10 8815 2063\n",
"11 1539 522\n",
"12 1188 413\n",
"13 4712 3313\n",
"14 1198 1459\n",
"15 217 617\n",
"16 163 431"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"edLE = df[(df['income'] == '<=50K')].groupby('educational-num').size()\n",
"edG = df[(df['income'] == '>50K')].groupby('educational-num').size()\n",
"\n",
"dfED = pd.concat([edLE, edG], axis=1).reset_index()\n",
"dfED = dfED.set_index('educational-num')\n",
"dfED.columns = ['<=50K', '>50K']\n",
"dfED"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nz71J9Fff0V/9dT33JtGflde8XC77zjcAAAAAADcqwjcAAAAAABYjfAMAAAAAYDHCNwAAAAAAFiN8\nAwAAAABgMcI3AAAAAAAWI3wDAAAAAGAxwjcAAAAAABYjfAMAAAAAYDHCNwAAAAAAFiN8AwAAAABg\nMcI3AAAAAAAWc7/aNwAAAAAAuD6dO3dOERH3qqqqyuGYYRj64IM1at060Bw7erRQixe/qW+++Vql\npaW6/fZOGjPmdwoODrE798knH9fOnTn6xz/+oRYtWjjMnZ39lZ555mnZbDalpMzW/ff/ps57u1yE\nbwAAAACowZSkZBUdK73at1GjW5o11uvz/ni1b6NG//73PlVVVSk0NExdu95pd8wwDN18883m/y4u\nLtITTzyq4uJi9evXX97ejfXpp5v09NNPavbs19Wr13125xqG4fSaO3fm6Nlnfy+bzaYXX/zDNRG8\nJcI3AAAAANSo6Fip+nd78WrfRo027nrRJdc5fLhAzZs7rjBfyr59e2UYhiIjh9mFZ2fefnuRjh07\nqjlz3lBYWC9JUkLCI0pMHKHXX39VoaFhcne/eITdvXuXkpMnq7KyUjNnvqzevftc9j1bhWe+AQAA\nAAAOzp49q3Xr1mj48KF6770lVzTH3r0/SJLat+940bozZ85o06a/qVOnLmbwliR//6YaOjROx48f\n01dffXnJa02ZMknl5Wf1wgsvqU+fiCu6Z6uw8g0AAAAAMBUWHtHatanKyNig0tJTuvnmJgoKCtaR\nI4c1bNjgS57/3HMzNWDAQEnSvn0/yMvLW7/61a8ues7u3bt07lyFevTo6XAsKChYNptNOTnf6N57\nezs9/8CBPD311ASdPl2m6dNT1Ldvv1p06lqEbwAAAACA/vWvnfrww9X6/PMtstls6tSpi4YOjVXf\nvv3k7u6u0tJSJSY+fsl5OnbsZP77/v37dNttt2nx4re0ZctmHT1aqBYtAvTww1EaNizOrMvPPyRJ\nCgho6TBf8+bNJUkHDx5wer2DBw8qKWm8Tp4s0XPPzVS/fv0vq29XIXwDAAAAwA1sy5ZPtWrVCu3Z\ns1sNGzZUREQ/RUfH6o47utnVNW7cWGPG/K7W8xYV/UfFxUU6caJY5eXl6tXrfp09e0aZmV9q/vzX\n9cMP3+u552ZKkkpKSmQYhho39nGYx9u7sSSprMzxxXdHjhxRcnKyjh8/Jk/PRrrzzl9fTusuRfgG\n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\nrVatmgzDUGJiYoHGBwAAAADArdj9aud/ZhiG5syZI8Mw1K9fP0nShQsXbnnlcS8vL0nS5cuXrbXu\n7u5yd3fPtdYwjBy1kuTt7W1Te/fdd+d4XAAAAHs7fWi3pvbrnu/jPCtX0eyQFSZ0BAAoLA4P3zNn\nztQPP/ygxo0ba8iQIZKkjIyMXMO0JOv2tLS0PNdev37dWnvz9tvVAgAA2NvdRpreq2O78u+vDDt6\n2oRuAACFyWHhOzMzUy+99JIiIiJUs2ZNLV26VK6uN9rx8PBQenp6rsdlh+7sJekeHh46e/bsLWst\nFov1QmweHh6SlOtjZz9ubvcQz4977vG6o+Od5TntifE5r+I8NonxOTvG51iurna95qvcXF3s+poU\n9/HdCWfps6CcYXz2/Hzy2Sw6GJ/j2fc3w//5448/9OyzzyoiIkK1a9fW6tWrdc8991j3e3t733L5\nd/b27OXn3t7eun79eq6BOrfam7ffLPsCbtnLzwEAAAAAKCx2n/m+dOmSRo4cqYSEBDVs2FArVqxQ\nhQoVctTUqlVLsbGxSktLs1kinpSUJBcXF9WsWdNaGx8fr5MnT6pWrVo2tZJUu3Zta2329uzjb661\nWCzW2oJKSbHfOePZ3+7Y8zntifE5r+I8NonxOTvGVzRkZGTZ9fnSM7Ls+poU9/EVhLN8NgvKmcZn\nz88nn03HY3zmPWd+2XXmOy0tTcHBwfrf//6n1q1ba/Xq1TbBW5KaN2+urKws623Ebj5+3759qlev\nnnV5ePPmzWUYhvX2ZDeLjo6Wl5eX6tatm6M2Ojrapnb37t1ycXFR48aNC2OoAAAAAABY2TV8L1q0\nSHv37lXTpk21YsUKlSlTJte67t27y8XFRUuWLLGeiy1JoaGhunLlivWq6JLUqVMnlSlTRitXrtTF\nixet28PDw5WYmKg+ffpYt7Vq1UpVq1bV+vXrdfLkSev2Xbt26fvvv9djjz2m8uXLF+aQAQAAAACw\n37Lzs2fPau3atdal3cuXL8+1Ljg4WHXq1NHw4cO1cuVK9erVSx06dNAvv/yi7du3q0WLFjkCddmy\nZTVlyhTNnj1bPXv2VNeuXZWcnKwvv/xSderU0ahRo6y1Li4ueuWVVzR27Fg99dRTeuKJJ3TlyhVt\n3rxZFStW1JQpU0x/HQAAAAAAJY/dwvfevXutt/r6+OOPb1k3dOhQubu7a/LkyapSpYrWrVunNWvW\n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\nBEyYMEFnzpzRxo0bNXz48Du6bo8jVK1aVT/++GOObWXLltXcuXNveVpcXFycKlWqZI/2CkXVqlW1\natUqbdy4UQsWLNC3336rl156yWnvlvBn6enpOf7dtGnT257m6UzvX8OGDfXll19qzJgx1ruY/O1v\nf9OOHTuUlpZmcwrPlStXtHXr1qJ3VXcDTuO9994zOnToYHz33XeObqXQZWZm/mVNSkqK8dVXX9mh\nG/vJyMgwMjIyHN1GoVuzZo0xaNAgIyIiwtGtmCojI8O4fv26o9u4Y7///ruxf/9+Y8+ePUZ8fLxx\n+PBhpx2Xn5+fsWTJEke34VCnTp0y4uPjjaSkJEe3ckcyMjKMM2fOGBcuXHB0K4UqIiLC8PPzMwYM\nGGBERUUZV69ezbXu+vXrxs6dO43+/fsb/v7+RlhYmJ07vTPnzp0zWrdubXTq1MlIS0tzdDuFYsGC\nBYa/v78xb948IzU1NdeazMxMY9SoUYafn5/RuXNn47nnnjP8/f3t3GnBLF682PD39zfmz59v/P77\n77etvXTpkvHKK68Y/v7+xoIFC+zUYeFKTk42xowZY/j5+RljxowxkpOTDcNw3t8jfn5+hr+/v9G6\ndWtj8ODBxty5c63v0ebNm3PUnj9/3pg5c6bh7+9vzJ0710Ed58/27dsNPz8/o3v37sauXbsMw7jx\nHv7tb38zhg8fbhw8eNAwjBu/O77//nujV69ehr+/f5H7W5RbjQEAANjRsmXLrBfvkqSKFSvK29tb\n7u7uSk9P1+XLl/X7778rKytLLi4uGj58uFMtrc/2ySefaP369Ro/frzatGnj6Hbu2JUrVxQYGKiD\nBw/KxcVFEydOVHBwsE1dWlqaJk+erK+++sq6CswZbjV27do1BQcHKyYmRhUrVtTOnTtzrYuMjNSE\nCROUkZEhPz8/rVu3zqnvSb9lyxbNnTvX+r7Nnj3b5najziD71oUHDx7UoUOHdPHiRes+X19f6ylz\nsbGxCgoKUlZWlmrUqKENGzbYLL0vqj766CPNmzdP169fl7e3t+rUqaPr169bf75cXV2VlZWlrKws\nGYahwYMHa8aMGQ7uOifCNwAAgJ2dOnVK69evV2xsrPW6AxkZGfLw8JC3t7dq1aql5s2bq3v37re9\nFSDs648//tDq1av11VdfacCAAerdu/cta1evXq23335bFy9edIrwLUmZmZkKDw/XsWPHNHXq1Fxr\nYmNjNWPGDHXt2lXBwcFOdzvY3Jw/f15z587V559/LovForFjxzpd+P6z5ORkaxg3DEOjRo2SdOP2\nXKNGjVKXLl00ZswYp7hTy81Onz6tDRs2aMeOHTp8+LCuXbuWY3+lSpXUokUL9e3bt0h+6Uf4BgAA\nAEyQlpamo0ePyt/f39GtIA+2bdumrVu3qlOnTnr00Ucd3Q7y4PLly7p69apcXFzk5eVV5O+4Q/gG\nAAAAAMBkLo5uAAAAAACA4o5bjQEAANjJndx+asiQIYXYiTmK8/iK89gkxnc7jM/xisv4WHYOAABg\nJy1atNCVK1es/87rn2EWi8UpLtpVnMdXnMcmMb5bYXxFQ3EZHzPfAAAAdvL555/rueeeU0JCggIC\nAtSjRw9Ht1SoivP4ivPYJMbn7Bifc2DmGwAAwI6uXr2qQYMG6dChQwoLC1OTJk0c3VKhKs7jK85j\nkxifs2N8RR/hGwAAwM5OnjypHj16qFq1atq0aZMsFoujWypUxXl8xXlsEuNzdoyvaCs1a9asWY5u\nAgAAoCTx9vbWXXfdpZiYGNWvX181atRwdEuFqjiPrziPTWJ8zo7xFW3MfAMAAAAAYDLu8w0AAAAA\ngMkI3wAAAAAAmIzwDQAAAACAyQjfAAAAAACYjPANAAAAAIDJCN8AAAAAAJiM8A0AAAAAgMkI3wAA\nAAAAmIzwDQBAITl69Kj8/f01ZMgQR7dyS2lpaVq6dKlWrVqVY/u0adPk7++vzz77zEGd/bWTJ0/K\n399fXbp0cXQrAADkG+EbAIAS5L333tOSJUt07dq1HNstFossFouDugIAoPhzdXQDAADAfrKysnIN\n2ZMnT1ZwcLAqVarkgK4AACj+CN8AAJQghmHIMAyb7T4+PvLx8XFARwAAlAwsOwcA4P989tlnCgwM\nVPPmzdW0aVP16dNHGzZssKkzDENr167Vk08+qaZNm+qRRx7Rv//9b6WlpdnURkdHy9/fX8OHD8/1\nOe+//341aNDAZvvly5e1ePFiPf7443rwwQf1yCOPaPz48Tp06JBNbUJCgiZPnqyOHTvqgQceUNOm\nTfXkk08qNDQ0R08dO3ZUSEiILBaL3nrrLfn7+2vTpk2Sbn3Od2Zmpv7zn/+od+/eatq0qfV1Wbt2\nrTIzM3PURkREyN/fX2FhYdqzZ4+GDh2qFi1aqFmzZho2bJhiY2NzfQ22bNmiESNGqG3btmrUqJFa\ntWqlwYMH6/PPP8+1Pj+yx3X48GGFh4erV69eatKkiQICAjR16lSdPHkyR/2SJUvk7++vd955x+ax\n9uzZY3NOf/Z56JMnT9bJkyc1adIktW7dWs2aNVNQUJB++uknSTc+B4MHD7Z+XqZPn64LFy7c8fgA\nAM6DmW8AACTNmDFDGzduVOnSpdWkSRN5enoqJiZGM2fOVExMjBYuXGitnTJlijZv3qy7775b7dq1\n05UrV7Ry5UpFRkbm+3ktFovNTPRvv/2moKAgHTt2TPfee6/at2+v5ORkbd26VVFRUVqzZo2aNGki\nSdq8ebOmTp0qi8WiZs2aqXHjxkpOTta+fft08OBB7d+/XyEhIZKkzp07a/fu3Tpw4ID8/Pzk7++v\n6tWrW/v483L0tLQ0jRgxQjExMbr77rvVpk0bSTeC5Kuvvqpt27YpNDRUrq7//88Ji8WiHTt2aN68\nefL19VXbtm119OhR7dq1S7GxsQoLC1Pjxo2t9bNmzdKHH36oMmXKqFmzZvL09NTRo0cVGxurmJgY\nnT9/XoMGDcr363pzPxaLRf/+97/19ddfq1GjRmrfvr3i4uL06aefKjo6Wp9//rnKlClzy9chL5KS\nkvTUU0/Jzc1NrVq10pEjR7R7924FBQVp6tSpmj17turWrauHH35YMTEx+vjjj3XkyBGtX7++wGMD\nADgXwjcAoMTbsGGDNm7cqPvvv1+hoaGqXLmyJOnChQsaNWqUPvvsM7Vs2VJ9+vTRl19+qc2bN6te\nvXr64IMPVLFiRUk3Zp+HDRtWKBctmzVrlo4fP66+ffvqlVdeUalSpSRJmzZt0rRp0zR9+nR9/vnn\nSktL05w5c+Tm5qawsDA1atTI+hgJCQkKDAzUV199pTNnzqhSpUqaNm2aQkNDtX//fj322GMaN27c\nbftYtGiRYmJi1Lx5c7399tsqW7asJOncuXMaNWqUvvvuO4WEhGjSpEnWYwzD0Pbt2/Xss8/queee\ns74eL7zwgj799FN98MEHWrRokSTpf//7nz788EPVqlVL69evtz6+JL3//vuaP3++1qxZc0fh++ae\nli1bpvbt20uSrly5on79+unIkSPavHmz+vXrd0fPkZCQoIceekhLly6Vu7u7MjMzFRgYqH379umV\nV17R5MmTNXLkSEk3Xr9u3bopISFBBw4ckL+//x09NwDAObDsHABQ4q1atUoWi0ULFiywBm9JKleu\nnObNmyfDMPTuu+9Kkj788ENZLBbNmDHDGrwlqXHjxgoODs71fOr8SE5OVlRUlO655x69/PLL1uAt\nST179tTDDz+scuXK6dy5czp79qzat2+vkSNH5gje2f1kh7rTp0/nu4/r169r/fr1cnV11RtvvJEj\nGFeoUEFvvPGGXFxc9J///MdmuX2VKlU0fvz4HF9EBAYGyjAM/fLLL9Ztqamp6ty5syZNmpTj8SVZ\nw3BBes/N3//+d2vwlqQyZcqoR48eNj3diWnTpsnd3V2SVKpUKXXu3FmSVKNGDWvwlm68fs2bN5ck\nHT9+vFCeGwBQ9DHzDQAo0VJSUpSYmKhy5cqpfv36Nvvr1q2rypUrKzExUWfOnNGePXvk5uam1q1b\n29R26tRJb7755h31Ex0dLUl66KGHciznzrZixYoc/755Obx042rmSUlJSkhI0Pnz5yVJ6enp+e7j\nf//7n/744w+1aNEixxcS2apXr64HHnhA+/bt048//qhmzZpZ9/35iwBJ1ou53XyLs4CAAAUEBOSo\nS0tL09GjRxUXFyeLxVKg3v/MYrHkWOqe7Z577rHpqaDKlCmjunXr5thWvnx5SdJ9991nU+/t7S3p\nxpccAICSgfANACjRsmdWL168eNvlvxaLRcnJyUpPT1fVqlXl4mK7eKxatWp33E9KSoqkG7PHefXN\nN99o06ZNOnjwoE6ePKmMjIwcs84FmY0/c+aMJMnX1/eWNb6+vtq3b5/Onj2bY3t2sLxZ9hcJWVlZ\nObZfv35d4eHh+uabb3TkyBElJyfLMAy5uLjIMIy/XMY/b94865cMN5sxY4bKlStn/beXl5dNTfaq\ngj/3VBC5jTm795v7+PM+AEDJQfgGAJRo2cGrYsWKatu27S3rLBZLrlczv9nNS8Tz+/zZMjIy8nXs\nmDFjFBUVJXd3dzVq1EgBAQG677771KxZM82fP1+7d+/Od0/5eX5J1qXW2fIaLM+cOaOBAwfqxIkT\nKlu2rB544AF169ZN/v7+atOmjTp06PCXXxx8/fXXNkvTLRaLnn/++RyhtzDC7u1Cupub2x0/PgCg\neCN8AwBKtOylx2XKlLFZwp2bu+66SykpKUpPT7cJXNmzxTfLniHPLVSnpqbazO5m9/Pbb7/l+vyx\nsbE6ffq0WrVqpV27dikqKkqNGzfWO++8owoVKuSovXTp0l+O51YqVaok6cZVvG/lxIkTkpTj3Pf8\nePPNN5WUlKQ+ffpo1qxZOb68uHLlirKysv4yNH/zzTcFeu5byb76fG7v1528ngAAcME1AECJ5uvr\nqypVqigpKUlHjx612X/x4kX16NFDI0aM0LVr19SmTRtlZGQoKirKpnbbtm0220qXLi1JNkuzJSk+\nPt5mW9OmTSVJu3btynWmdfHixZo6dapSUlK0b98+WSwWPf300zbBOyUlxXpP8JsfJ68zwI0aNZKn\np6f27duX6xcBx48f188//ywvL69c71OeFwkJCZKkESNG2Kwa+O677wr0mHcq+5Zjub1fe/futXc7\nAIBihPANACjxgoKClJmZqalTp+rUqVPW7devX9eLL76oQ4cOqUyZMvL09NSQIUNkGIbmzZunY8eO\nWWsPHjyoJUuW2ITb2rVry83NTb/++qt27txp3X7mzBm9/vrrNr3UqlVL7dq10+nTpzV//vwcwXnj\nxo2KiYlRnTp11KhRI1WpUkWGYSgqKipHXXJyssaPH2+dvb35ol533XWXpBuz7rfj4eGhvn37KiMj\nQ5MmTdKFCxes+86dO6dJkybJMAz169cv1wvD5cW9994ryXb2eu/evZozZ4713/a8KFn2xdG2bt2q\n5ORk6/b4+HitXbuWc7UBAAXGsnMAQIkXFBSk+Ph4bd26VY8//rgaNWokLy8v7d27V+fPn1ft2rU1\na9YsSVK7du00cuRIrVq1Sj169FBAQIAyMzP1ww8/qGHDhjazo56enurXr5/CwsIUHBysNm3ayM3N\nTbt371bt2rVVv359HT58OMcxc+fO1cCBA7VmzRp98803atiwoZKSkvTTTz+pdOnS1iuqP/nkk1q1\napW2bdumLl26qEGDBrp48aLi4uJ07733qlOnTvr6669zzOLWrFlT0o1bpp08eVK9e/dWhw4dcn1d\nJk2apJ9//lmxsbHq1KmTWrZsKenGFdmvXr2qhx56SOPHj7+j133nzp1auHChvvjiC1WtWtU6znbt\n2ql8+fI6fPiwUlJSCuVidnnRpk0b3X///dq/f7+6d++u1q1b68L/a+9+XSKL4jAOv1cQZbIgJrEI\ndrNgsIgYNRi0CWZBZJIg0wwWyyAKBkFB5i8QdMqgaDFoNpgMUye5Tdb1B8uyZ8P6PPXecM5pH77n\ncrvd3N7eZn5+Pq1W65+sA4D/j8k3AN9eVVXZ3d1No9F4Da9Op5OhoaGsra3l5OTkzbXu9fX17Ozs\nZGJiIldXV7m/v8/CwkL29vZSVdW76Wi9Xs/GxkbGxsZyfX2dh4eHLC4u5ujoKLVa7d37IyMjOTs7\ny8rKSqqqyvn5eZ6enjI7O5vT09PX6ezw8HCOj48zMzOTXq+Xi4uLPD8/Z3V1Na1WK3Nzc6mq6s11\n+Onp6SwvL2dwcDDtdjt3d3efnsvAwEAODg6yubmZ0dHRdDqd3NzcZHx8PNvb22k2m+++e/9o/589\nm5qaSrPZzOTkZB4fH9Nut9Pf359Go5H9/f3X2P95/X978vzrmvr6+nJ4eJilpaXUarVcXl6m2+2m\nXq9na2vrw/19taavzgOA76V6+ZP/jwAAAAC/zeQbAAAAChPfAAAAUJj4BgAAgMLENwAAABQmvgEA\nAKAw8Q0AAACFiW8AAAAoTHwDAABAYeIbAAAAChPfAAAAUJj4BgAAgMLENwAAABQmvgEAAKAw8Q0A\nAACFiW8AAAAoTHwDAABAYeIbAAAACvsBnjUmJU/QPK4AAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fb5d394c7d0>"
]
},
"metadata": {
"image/png": {
"height": 359,
"width": 495
}
},
"output_type": "display_data"
}
],
"source": [
"dfED.plot(kind='bar', color=['mediumpurple', 'tomato'])\n",
"\n",
"ax.set_xlabel('Education', fontsize=18)\n",
"ax.set_ylabel('Census', fontsize=18)\n",
"ax.tick_params(labelsize=12)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Cleaning dataset"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"df.drop(['fnlwgt', 'educational-num'], axis=1, inplace=True)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"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>age</th>\n",
" <th>workclass</th>\n",
" <th>education</th>\n",
" <th>marital-status</th>\n",
" <th>occupation</th>\n",
" <th>relationship</th>\n",
" <th>race</th>\n",
" <th>gender</th>\n",
" <th>capital-gain</th>\n",
" <th>capital-loss</th>\n",
" <th>hours-per-week</th>\n",
" <th>native-country</th>\n",
" <th>income</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>25</td>\n",
" <td>Private</td>\n",
" <td>11th</td>\n",
" <td>Never-married</td>\n",
" <td>Machine-op-inspct</td>\n",
" <td>Own-child</td>\n",
" <td>Black</td>\n",
" <td>Male</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>40</td>\n",
" <td>United-States</td>\n",
" <td>&lt;=50K</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>38</td>\n",
" <td>Private</td>\n",
" <td>HS-grad</td>\n",
" <td>Married-civ-spouse</td>\n",
" <td>Farming-fishing</td>\n",
" <td>Husband</td>\n",
" <td>White</td>\n",
" <td>Male</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>50</td>\n",
" <td>United-States</td>\n",
" <td>&lt;=50K</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>28</td>\n",
" <td>Local-gov</td>\n",
" <td>Assoc-acdm</td>\n",
" <td>Married-civ-spouse</td>\n",
" <td>Protective-serv</td>\n",
" <td>Husband</td>\n",
" <td>White</td>\n",
" <td>Male</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>40</td>\n",
" <td>United-States</td>\n",
" <td>&gt;50K</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>44</td>\n",
" <td>Private</td>\n",
" <td>Some-college</td>\n",
" <td>Married-civ-spouse</td>\n",
" <td>Machine-op-inspct</td>\n",
" <td>Husband</td>\n",
" <td>Black</td>\n",
" <td>Male</td>\n",
" <td>7688</td>\n",
" <td>0</td>\n",
" <td>40</td>\n",
" <td>United-States</td>\n",
" <td>&gt;50K</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>18</td>\n",
" <td>?</td>\n",
" <td>Some-college</td>\n",
" <td>Never-married</td>\n",
" <td>?</td>\n",
" <td>Own-child</td>\n",
" <td>White</td>\n",
" <td>Female</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>30</td>\n",
" <td>United-States</td>\n",
" <td>&lt;=50K</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" age workclass education marital-status occupation \\\n",
"0 25 Private 11th Never-married Machine-op-inspct \n",
"1 38 Private HS-grad Married-civ-spouse Farming-fishing \n",
"2 28 Local-gov Assoc-acdm Married-civ-spouse Protective-serv \n",
"3 44 Private Some-college Married-civ-spouse Machine-op-inspct \n",
"4 18 ? Some-college Never-married ? \n",
"\n",
" relationship race gender capital-gain capital-loss hours-per-week \\\n",
"0 Own-child Black Male 0 0 40 \n",
"1 Husband White Male 0 0 50 \n",
"2 Husband White Male 0 0 40 \n",
"3 Husband Black Male 7688 0 40 \n",
"4 Own-child White Female 0 0 30 \n",
"\n",
" native-country income \n",
"0 United-States <=50K \n",
"1 United-States <=50K \n",
"2 United-States >50K \n",
"3 United-States >50K \n",
"4 United-States <=50K "
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.head()"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"labelize_columns = ['workclass', 'education', 'marital-status', 'occupation', 'relationship', 'race', 'gender',\n",
" 'native-country']\n",
"\n",
"for column in labelize_columns:\n",
" real_column = df[column].values\n",
" \n",
" le = LabelEncoder()\n",
" le.fit(real_column)\n",
" labelized_column = le.transform(real_column)\n",
" \n",
" df[column] = labelized_column\n",
" \n",
" le = None\n",
" real_column = None\n",
" labelized_column = None"
]
},
{
"cell_type": "code",
"execution_count": 13,
"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>age</th>\n",
" <th>workclass</th>\n",
" <th>education</th>\n",
" <th>marital-status</th>\n",
" <th>occupation</th>\n",
" <th>relationship</th>\n",
" <th>race</th>\n",
" <th>gender</th>\n",
" <th>capital-gain</th>\n",
" <th>capital-loss</th>\n",
" <th>hours-per-week</th>\n",
" <th>native-country</th>\n",
" <th>income</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>25</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>7</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>40</td>\n",
" <td>39</td>\n",
" <td>&lt;=50K</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>38</td>\n",
" <td>4</td>\n",
" <td>11</td>\n",
" <td>2</td>\n",
" <td>5</td>\n",
" <td>0</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>50</td>\n",
" <td>39</td>\n",
" <td>&lt;=50K</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>28</td>\n",
" <td>2</td>\n",
" <td>7</td>\n",
" <td>2</td>\n",
" <td>11</td>\n",
" <td>0</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>40</td>\n",
" <td>39</td>\n",
" <td>&gt;50K</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>44</td>\n",
" <td>4</td>\n",
" <td>15</td>\n",
" <td>2</td>\n",
" <td>7</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>7688</td>\n",
" <td>0</td>\n",
" <td>40</td>\n",
" <td>39</td>\n",
" <td>&gt;50K</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>18</td>\n",
" <td>0</td>\n",
" <td>15</td>\n",
" <td>4</td>\n",
" <td>0</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>30</td>\n",
" <td>39</td>\n",
" <td>&lt;=50K</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" age workclass education marital-status occupation relationship race \\\n",
"0 25 4 1 4 7 3 2 \n",
"1 38 4 11 2 5 0 4 \n",
"2 28 2 7 2 11 0 4 \n",
"3 44 4 15 2 7 0 2 \n",
"4 18 0 15 4 0 3 4 \n",
"\n",
" gender capital-gain capital-loss hours-per-week native-country income \n",
"0 1 0 0 40 39 <=50K \n",
"1 1 0 0 50 39 <=50K \n",
"2 1 0 0 40 39 >50K \n",
"3 1 7688 0 40 39 >50K \n",
"4 0 0 0 30 39 <=50K "
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.head()"
]
},
{
"cell_type": "code",
"execution_count": 14,
"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>age</th>\n",
" <th>workclass</th>\n",
" <th>education</th>\n",
" <th>marital-status</th>\n",
" <th>occupation</th>\n",
" <th>relationship</th>\n",
" <th>race</th>\n",
" <th>gender</th>\n",
" <th>capital-gain</th>\n",
" <th>capital-loss</th>\n",
" <th>hours-per-week</th>\n",
" <th>native-country</th>\n",
" <th>income</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>48837</th>\n",
" <td>27</td>\n",
" <td>4</td>\n",
" <td>7</td>\n",
" <td>2</td>\n",
" <td>13</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>38</td>\n",
" <td>39</td>\n",
" <td>&lt;=50K</td>\n",
" </tr>\n",
" <tr>\n",
" <th>48838</th>\n",
" <td>40</td>\n",
" <td>4</td>\n",
" <td>11</td>\n",
" <td>2</td>\n",
" <td>7</td>\n",
" <td>0</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>40</td>\n",
" <td>39</td>\n",
" <td>&gt;50K</td>\n",
" </tr>\n",
" <tr>\n",
" <th>48839</th>\n",
" <td>58</td>\n",
" <td>4</td>\n",
" <td>11</td>\n",
" <td>6</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>40</td>\n",
" <td>39</td>\n",
" <td>&lt;=50K</td>\n",
" </tr>\n",
" <tr>\n",
" <th>48840</th>\n",
" <td>22</td>\n",
" <td>4</td>\n",
" <td>11</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>20</td>\n",
" <td>39</td>\n",
" <td>&lt;=50K</td>\n",
" </tr>\n",
" <tr>\n",
" <th>48841</th>\n",
" <td>52</td>\n",
" <td>5</td>\n",
" <td>11</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" <td>0</td>\n",
" <td>15024</td>\n",
" <td>0</td>\n",
" <td>40</td>\n",
" <td>39</td>\n",
" <td>&gt;50K</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" age workclass education marital-status occupation relationship \\\n",
"48837 27 4 7 2 13 5 \n",
"48838 40 4 11 2 7 0 \n",
"48839 58 4 11 6 1 4 \n",
"48840 22 4 11 4 1 3 \n",
"48841 52 5 11 2 4 5 \n",
"\n",
" race gender capital-gain capital-loss hours-per-week \\\n",
"48837 4 0 0 0 38 \n",
"48838 4 1 0 0 40 \n",
"48839 4 0 0 0 40 \n",
"48840 4 1 0 0 20 \n",
"48841 4 0 15024 0 40 \n",
"\n",
" native-country income \n",
"48837 39 <=50K \n",
"48838 39 >50K \n",
"48839 39 <=50K \n",
"48840 39 <=50K \n",
"48841 39 >50K "
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tail = df[-5:]\n",
"df.drop(df[-5:].index, inplace=True)\n",
"tail"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"train_x = df.drop(['income'], axis=1)\n",
"train_y = df['income']\n",
"\n",
"predict_x = tail.drop(['income'], axis=1)\n",
"predict_y = tail['income']"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Learning"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array(['>50K', '<=50K', '<=50K', '<=50K', '>50K'], dtype=object)"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"cart = tree.DecisionTreeClassifier()\n",
"cart.fit(train_x, train_y)\n",
"\n",
"cart.predict(predict_x)"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# Exporting the tree as a graph\n",
"with open('tree.dot', 'w') as dot_data:\n",
" tree.export_graphviz(cart, out_file=dot_data, feature_names=train_x.columns, class_names=['LET-50K', 'GT-50K'],\n",
" filled=True, rounded=True, special_characters=True)"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array(['<=50K', '<=50K', '<=50K', '<=50K', '>50K'], \n",
" dtype='|S5')"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"g_naive_bayes = naive_bayes.GaussianNB()\n",
"g_naive_bayes.fit(train_x, train_y)\n",
"\n",
"g_naive_bayes.predict(predict_x)"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array(['<=50K', '<=50K', '<=50K', '<=50K', '>50K'], dtype=object)"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"knn = neighbors.KNeighborsClassifier(n_neighbors=7)\n",
"knn.fit(train_x, train_y)\n",
"\n",
"knn.predict(predict_x)"
]
}
],
"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.9"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment