{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Tree-based methods\n",
"### Food sales and obesity"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Thanks to Fabián Villena for inputs in this code"
]
},
{
"cell_type": "code",
"execution_count": 71,
"metadata": {},
"outputs": [],
"source": [
"# Scikit's libraries\n",
"\n",
"import sklearn.ensemble #random forest \n",
"import sklearn.tree #decision trees\n",
"import sklearn.linear_model #logistic regression + perceptron\n",
"import sklearn.svm #support vector machines\n",
"import sklearn.neighbors #k-nearest neighbors\n",
"import sklearn.neural_network #multilayer perceptron\n",
"from sklearn.ensemble import AdaBoostClassifier\n",
"\n",
"from sklearn.externals.six import StringIO \n",
"from sklearn import metrics\n",
"import sklearn.model_selection \n",
"import sklearn.preprocessing \n",
"from sklearn.model_selection import cross_val_score\n",
"from sklearn.model_selection import cross_validate\n",
"\n",
"# XGBoost\n",
"import xgboost as xgb\n",
"\n",
"# Pandas\n",
"import pandas as pd\n",
"\n",
"# Numpy\n",
"import numpy as np\n",
"# Set random seed\n",
"np.random.seed(0)\n",
"\n",
"# Plots\n",
"%matplotlib inline\n",
"import matplotlib as mpl\n",
"import matplotlib.pyplot as plt\n",
"from IPython.display import Image \n",
"import pydotplus"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" country_name | \n",
" continent | \n",
" prevalence | \n",
" tertile | \n",
" RTDs/High-Strength Premixes | \n",
" Processed Fruit and Vegetables | \n",
" Processed Meat and Seafood | \n",
" Ready Meals | \n",
" Rice, Pasta and Noodles | \n",
" Sauces, Dressings and Condiments | \n",
" ... | \n",
" Baby Food | \n",
" Drinking Milk Products | \n",
" Yoghurt and Sour Milk Products | \n",
" Other Dairy | \n",
" Ice Cream and Frozen Desserts | \n",
" Cocoa Powder | \n",
" Emulsifiers and Co-Emulsifiers | \n",
" Fats and Oils | \n",
" Flours | \n",
" Milk | \n",
"
\n",
" \n",
" \n",
" \n",
" 49 | \n",
" Belarus | \n",
" Europe | \n",
" 0.231179 | \n",
" 2 | \n",
" 3064.433333 | \n",
" 4225.466667 | \n",
" 14961.966670 | \n",
" 2382.166667 | \n",
" 8495.133333 | \n",
" 4130.700000 | \n",
" ... | \n",
" 1437.633333 | \n",
" 44447.96667 | \n",
" 21490.166670 | \n",
" 19663.466670 | \n",
" 2739.866667 | \n",
" 206.500000 | \n",
" 406.433333 | \n",
" 24819.966670 | \n",
" 30754.36667 | \n",
" 82030.06667 | \n",
"
\n",
" \n",
" 27 | \n",
" Colombia | \n",
" America | \n",
" 0.178267 | \n",
" 2 | \n",
" 170.833333 | \n",
" 959.300000 | \n",
" 3128.466667 | \n",
" 176.433333 | \n",
" 34723.800000 | \n",
" 1383.000000 | \n",
" ... | \n",
" 301.266667 | \n",
" 42182.16667 | \n",
" 3036.900000 | \n",
" 1060.033333 | \n",
" 1236.300000 | \n",
" 253.666667 | \n",
" 139.766667 | \n",
" 9366.200000 | \n",
" 22010.60000 | \n",
" 46546.53333 | \n",
"
\n",
" \n",
" 30 | \n",
" Bolivia | \n",
" America | \n",
" 0.185507 | \n",
" 2 | \n",
" 319.766667 | \n",
" 632.666667 | \n",
" 1068.633333 | \n",
" 61.900000 | \n",
" 34137.833330 | \n",
" 1854.233333 | \n",
" ... | \n",
" 250.033333 | \n",
" 12939.16667 | \n",
" 2183.066667 | \n",
" 2325.233333 | \n",
" 822.166667 | \n",
" 107.200000 | \n",
" 144.900000 | \n",
" 9391.333333 | \n",
" 20680.86667 | \n",
" 15803.93333 | \n",
"
\n",
" \n",
" 63 | \n",
" United Kingdom | \n",
" Europe | \n",
" 0.246701 | \n",
" 3 | \n",
" 2175.033333 | \n",
" 44816.100000 | \n",
" 32313.366670 | \n",
" 15679.666670 | \n",
" 8744.866667 | \n",
" 13525.233330 | \n",
" ... | \n",
" 1025.100000 | \n",
" 95073.90000 | \n",
" 9369.633333 | \n",
" 6384.600000 | \n",
" 7785.766667 | \n",
" 421.833333 | \n",
" 669.700000 | \n",
" 24986.233330 | \n",
" 44291.43333 | \n",
" 116990.30000 | \n",
"
\n",
" \n",
" 45 | \n",
" Latvia | \n",
" Europe | \n",
" 0.214695 | \n",
" 2 | \n",
" 6871.133333 | \n",
" 7628.333333 | \n",
" 13857.633330 | \n",
" 2921.966667 | \n",
" 7736.666667 | \n",
" 12584.500000 | \n",
" ... | \n",
" 330.966667 | \n",
" 56502.76667 | \n",
" 17664.500000 | \n",
" 14065.733330 | \n",
" 3519.433333 | \n",
" 179.700000 | \n",
" 559.166667 | \n",
" 26338.800000 | \n",
" 37478.63333 | \n",
" 88511.13333 | \n",
"
\n",
" \n",
" 69 | \n",
" Chile | \n",
" America | \n",
" 0.289636 | \n",
" 3 | \n",
" 431.266667 | \n",
" 9581.966667 | \n",
" 6937.666667 | \n",
" 383.466667 | \n",
" 17394.666670 | \n",
" 6575.500000 | \n",
" ... | \n",
" 591.833333 | \n",
" 20579.70000 | \n",
" 8320.166667 | \n",
" 5449.900000 | \n",
" 5682.866667 | \n",
" 276.866667 | \n",
" 483.300000 | \n",
" 20101.933330 | \n",
" 69019.10000 | \n",
" 37038.30000 | \n",
"
\n",
" \n",
" 74 | \n",
" Mexico | \n",
" America | \n",
" 0.327086 | \n",
" 3 | \n",
" 874.333333 | \n",
" 4488.633333 | \n",
" 4637.700000 | \n",
" 497.300000 | \n",
" 9456.033333 | \n",
" 8500.700000 | \n",
" ... | \n",
" 659.966667 | \n",
" 49364.30000 | \n",
" 5119.933333 | \n",
" 4731.933333 | \n",
" 2428.166667 | \n",
" 344.366667 | \n",
" 294.066667 | \n",
" 28015.733330 | \n",
" 108494.43330 | \n",
" 65728.83333 | \n",
"
\n",
" \n",
" 76 | \n",
" United Arab Emirates | \n",
" Africa | \n",
" 0.339133 | \n",
" 3 | \n",
" 125.533333 | \n",
" 9416.633333 | \n",
" 4180.066667 | \n",
" 236.366667 | \n",
" 60477.033330 | \n",
" 6268.566667 | \n",
" ... | \n",
" 968.133333 | \n",
" 34986.36667 | \n",
" 26258.566670 | \n",
" 11308.533330 | \n",
" 2187.900000 | \n",
" 158.400000 | \n",
" 246.666667 | \n",
" 20037.566670 | \n",
" 32608.40000 | \n",
" 67731.20000 | \n",
"
\n",
" \n",
" 48 | \n",
" Poland | \n",
" Europe | \n",
" 0.227263 | \n",
" 2 | \n",
" 86.433333 | \n",
" 6823.033333 | \n",
" 6944.866667 | \n",
" 2191.000000 | \n",
" 6284.300000 | \n",
" 9210.233333 | \n",
" ... | \n",
" 1079.366667 | \n",
" 34384.36667 | \n",
" 10295.366670 | \n",
" 9271.133333 | \n",
" 2190.066667 | \n",
" 160.133333 | \n",
" 492.266667 | \n",
" 18090.300000 | \n",
" 50266.16667 | \n",
" 54810.10000 | \n",
"
\n",
" \n",
" 57 | \n",
" Hungary | \n",
" Europe | \n",
" 0.240199 | \n",
" 3 | \n",
" 118.466667 | \n",
" 12035.966670 | \n",
" 13150.766670 | \n",
" 1232.766667 | \n",
" 11639.033330 | \n",
" 6138.133333 | \n",
" ... | \n",
" 669.933333 | \n",
" 58358.96667 | \n",
" 9365.100000 | \n",
" 10013.933330 | \n",
" 2870.200000 | \n",
" 176.200000 | \n",
" 418.800000 | \n",
" 22144.933330 | \n",
" 59291.53333 | \n",
" 79252.20000 | \n",
"
\n",
" \n",
"
\n",
"
10 rows × 52 columns
\n",
"
"
],
"text/plain": [
" country_name continent prevalence tertile \\\n",
"49 Belarus Europe 0.231179 2 \n",
"27 Colombia America 0.178267 2 \n",
"30 Bolivia America 0.185507 2 \n",
"63 United Kingdom Europe 0.246701 3 \n",
"45 Latvia Europe 0.214695 2 \n",
"69 Chile America 0.289636 3 \n",
"74 Mexico America 0.327086 3 \n",
"76 United Arab Emirates Africa 0.339133 3 \n",
"48 Poland Europe 0.227263 2 \n",
"57 Hungary Europe 0.240199 3 \n",
"\n",
" RTDs/High-Strength Premixes Processed Fruit and Vegetables \\\n",
"49 3064.433333 4225.466667 \n",
"27 170.833333 959.300000 \n",
"30 319.766667 632.666667 \n",
"63 2175.033333 44816.100000 \n",
"45 6871.133333 7628.333333 \n",
"69 431.266667 9581.966667 \n",
"74 874.333333 4488.633333 \n",
"76 125.533333 9416.633333 \n",
"48 86.433333 6823.033333 \n",
"57 118.466667 12035.966670 \n",
"\n",
" Processed Meat and Seafood Ready Meals Rice, Pasta and Noodles \\\n",
"49 14961.966670 2382.166667 8495.133333 \n",
"27 3128.466667 176.433333 34723.800000 \n",
"30 1068.633333 61.900000 34137.833330 \n",
"63 32313.366670 15679.666670 8744.866667 \n",
"45 13857.633330 2921.966667 7736.666667 \n",
"69 6937.666667 383.466667 17394.666670 \n",
"74 4637.700000 497.300000 9456.033333 \n",
"76 4180.066667 236.366667 60477.033330 \n",
"48 6944.866667 2191.000000 6284.300000 \n",
"57 13150.766670 1232.766667 11639.033330 \n",
"\n",
" Sauces, Dressings and Condiments ... Baby Food \\\n",
"49 4130.700000 ... 1437.633333 \n",
"27 1383.000000 ... 301.266667 \n",
"30 1854.233333 ... 250.033333 \n",
"63 13525.233330 ... 1025.100000 \n",
"45 12584.500000 ... 330.966667 \n",
"69 6575.500000 ... 591.833333 \n",
"74 8500.700000 ... 659.966667 \n",
"76 6268.566667 ... 968.133333 \n",
"48 9210.233333 ... 1079.366667 \n",
"57 6138.133333 ... 669.933333 \n",
"\n",
" Drinking Milk Products Yoghurt and Sour Milk Products Other Dairy \\\n",
"49 44447.96667 21490.166670 19663.466670 \n",
"27 42182.16667 3036.900000 1060.033333 \n",
"30 12939.16667 2183.066667 2325.233333 \n",
"63 95073.90000 9369.633333 6384.600000 \n",
"45 56502.76667 17664.500000 14065.733330 \n",
"69 20579.70000 8320.166667 5449.900000 \n",
"74 49364.30000 5119.933333 4731.933333 \n",
"76 34986.36667 26258.566670 11308.533330 \n",
"48 34384.36667 10295.366670 9271.133333 \n",
"57 58358.96667 9365.100000 10013.933330 \n",
"\n",
" Ice Cream and Frozen Desserts Cocoa Powder \\\n",
"49 2739.866667 206.500000 \n",
"27 1236.300000 253.666667 \n",
"30 822.166667 107.200000 \n",
"63 7785.766667 421.833333 \n",
"45 3519.433333 179.700000 \n",
"69 5682.866667 276.866667 \n",
"74 2428.166667 344.366667 \n",
"76 2187.900000 158.400000 \n",
"48 2190.066667 160.133333 \n",
"57 2870.200000 176.200000 \n",
"\n",
" Emulsifiers and Co-Emulsifiers Fats and Oils Flours Milk \n",
"49 406.433333 24819.966670 30754.36667 82030.06667 \n",
"27 139.766667 9366.200000 22010.60000 46546.53333 \n",
"30 144.900000 9391.333333 20680.86667 15803.93333 \n",
"63 669.700000 24986.233330 44291.43333 116990.30000 \n",
"45 559.166667 26338.800000 37478.63333 88511.13333 \n",
"69 483.300000 20101.933330 69019.10000 37038.30000 \n",
"74 294.066667 28015.733330 108494.43330 65728.83333 \n",
"76 246.666667 20037.566670 32608.40000 67731.20000 \n",
"48 492.266667 18090.300000 50266.16667 54810.10000 \n",
"57 418.800000 22144.933330 59291.53333 79252.20000 \n",
"\n",
"[10 rows x 52 columns]"
]
},
"execution_count": 37,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# File with food sales and obesity information\n",
"data = pd.read_csv('exampleObesityClassReg.csv')\n",
"data.sample(10)"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" prevalence | \n",
" tertile | \n",
" RTDs/High-Strength Premixes | \n",
" Processed Fruit and Vegetables | \n",
" Processed Meat and Seafood | \n",
" Ready Meals | \n",
" Rice, Pasta and Noodles | \n",
" Sauces, Dressings and Condiments | \n",
" Soup | \n",
" Spreads | \n",
" ... | \n",
" Baby Food | \n",
" Drinking Milk Products | \n",
" Yoghurt and Sour Milk Products | \n",
" Other Dairy | \n",
" Ice Cream and Frozen Desserts | \n",
" Cocoa Powder | \n",
" Emulsifiers and Co-Emulsifiers | \n",
" Fats and Oils | \n",
" Flours | \n",
" Milk | \n",
"
\n",
" \n",
" \n",
" \n",
" count | \n",
" 79.000000 | \n",
" 79.000000 | \n",
" 79.000000 | \n",
" 79.000000 | \n",
" 79.000000 | \n",
" 79.000000 | \n",
" 79.000000 | \n",
" 79.000000 | \n",
" 79.000000 | \n",
" 79.000000 | \n",
" ... | \n",
" 79.000000 | \n",
" 79.000000 | \n",
" 79.000000 | \n",
" 79.000000 | \n",
" 79.000000 | \n",
" 79.000000 | \n",
" 79.000000 | \n",
" 79.000000 | \n",
" 79.000000 | \n",
" 79.000000 | \n",
"
\n",
" \n",
" mean | \n",
" 0.195593 | \n",
" 2.025316 | \n",
" 1394.993038 | \n",
" 8974.886076 | \n",
" 10106.430380 | \n",
" 2932.320886 | \n",
" 17084.418565 | \n",
" 7237.398312 | \n",
" 886.935443 | \n",
" 1404.284388 | \n",
" ... | \n",
" 866.592405 | \n",
" 41405.834600 | \n",
" 10319.671308 | \n",
" 6313.274261 | \n",
" 3605.577637 | \n",
" 238.948101 | \n",
" 334.273840 | \n",
" 17541.712658 | \n",
" 38715.299156 | \n",
" 59598.455695 | \n",
"
\n",
" \n",
" std | \n",
" 0.080271 | \n",
" 0.831660 | \n",
" 3223.286924 | \n",
" 10368.583261 | \n",
" 9167.806130 | \n",
" 4183.099990 | \n",
" 16382.742090 | \n",
" 5340.667764 | \n",
" 1516.838457 | \n",
" 1294.774159 | \n",
" ... | \n",
" 742.174096 | \n",
" 33320.311999 | \n",
" 8515.322574 | \n",
" 6019.665786 | \n",
" 3219.524667 | \n",
" 180.330916 | \n",
" 244.387167 | \n",
" 7831.977231 | \n",
" 24661.854093 | \n",
" 44718.262875 | \n",
"
\n",
" \n",
" min | \n",
" 0.016048 | \n",
" 1.000000 | \n",
" 0.000000 | \n",
" 21.300000 | \n",
" 12.466667 | \n",
" 0.000000 | \n",
" 1102.900000 | \n",
" 96.066667 | \n",
" 0.000000 | \n",
" 16.366667 | \n",
" ... | \n",
" 39.433333 | \n",
" 355.966667 | \n",
" 8.333333 | \n",
" 0.866667 | \n",
" 99.966667 | \n",
" 10.300000 | \n",
" 10.066667 | \n",
" 936.700000 | \n",
" 1925.800000 | \n",
" 618.333333 | \n",
"
\n",
" \n",
" 25% | \n",
" 0.163696 | \n",
" 1.000000 | \n",
" 62.000000 | \n",
" 1648.666667 | \n",
" 3178.216667 | \n",
" 114.833333 | \n",
" 7484.750000 | \n",
" 2914.683334 | \n",
" 75.500000 | \n",
" 351.616667 | \n",
" ... | \n",
" 321.333333 | \n",
" 11436.866670 | \n",
" 3807.400000 | \n",
" 1424.216667 | \n",
" 1263.950000 | \n",
" 99.600000 | \n",
" 127.450000 | \n",
" 11476.583335 | \n",
" 21518.150000 | \n",
" 20988.116665 | \n",
"
\n",
" \n",
" 50% | \n",
" 0.206130 | \n",
" 2.000000 | \n",
" 225.266667 | \n",
" 5672.133333 | \n",
" 8205.066667 | \n",
" 701.466667 | \n",
" 10762.400000 | \n",
" 6268.566667 | \n",
" 230.900000 | \n",
" 999.666667 | \n",
" ... | \n",
" 645.033333 | \n",
" 34384.366670 | \n",
" 8851.733333 | \n",
" 4543.066667 | \n",
" 2327.400000 | \n",
" 185.333333 | \n",
" 312.866667 | \n",
" 18539.566670 | \n",
" 34784.433330 | \n",
" 53199.933330 | \n",
"
\n",
" \n",
" 75% | \n",
" 0.241439 | \n",
" 3.000000 | \n",
" 984.966667 | \n",
" 11841.866670 | \n",
" 14729.166670 | \n",
" 4484.800000 | \n",
" 16480.733335 | \n",
" 10145.200000 | \n",
" 974.833333 | \n",
" 2004.566667 | \n",
" ... | \n",
" 1267.850000 | \n",
" 60932.050000 | \n",
" 15065.033335 | \n",
" 9951.433332 | \n",
" 5283.216667 | \n",
" 331.866667 | \n",
" 500.966667 | \n",
" 23198.066670 | \n",
" 53836.300000 | \n",
" 90095.083335 | \n",
"
\n",
" \n",
" max | \n",
" 0.353288 | \n",
" 3.000000 | \n",
" 17711.100000 | \n",
" 44816.100000 | \n",
" 36891.166670 | \n",
" 15679.666670 | \n",
" 73856.066670 | \n",
" 28564.600000 | \n",
" 7801.233333 | \n",
" 5651.933333 | \n",
" ... | \n",
" 3898.500000 | \n",
" 145484.466700 | \n",
" 40846.666670 | \n",
" 28622.433330 | \n",
" 14535.433330 | \n",
" 655.400000 | \n",
" 1013.600000 | \n",
" 37119.366670 | \n",
" 119329.800000 | \n",
" 189444.000000 | \n",
"
\n",
" \n",
"
\n",
"
8 rows × 50 columns
\n",
"
"
],
"text/plain": [
" prevalence tertile RTDs/High-Strength Premixes \\\n",
"count 79.000000 79.000000 79.000000 \n",
"mean 0.195593 2.025316 1394.993038 \n",
"std 0.080271 0.831660 3223.286924 \n",
"min 0.016048 1.000000 0.000000 \n",
"25% 0.163696 1.000000 62.000000 \n",
"50% 0.206130 2.000000 225.266667 \n",
"75% 0.241439 3.000000 984.966667 \n",
"max 0.353288 3.000000 17711.100000 \n",
"\n",
" Processed Fruit and Vegetables Processed Meat and Seafood \\\n",
"count 79.000000 79.000000 \n",
"mean 8974.886076 10106.430380 \n",
"std 10368.583261 9167.806130 \n",
"min 21.300000 12.466667 \n",
"25% 1648.666667 3178.216667 \n",
"50% 5672.133333 8205.066667 \n",
"75% 11841.866670 14729.166670 \n",
"max 44816.100000 36891.166670 \n",
"\n",
" Ready Meals Rice, Pasta and Noodles \\\n",
"count 79.000000 79.000000 \n",
"mean 2932.320886 17084.418565 \n",
"std 4183.099990 16382.742090 \n",
"min 0.000000 1102.900000 \n",
"25% 114.833333 7484.750000 \n",
"50% 701.466667 10762.400000 \n",
"75% 4484.800000 16480.733335 \n",
"max 15679.666670 73856.066670 \n",
"\n",
" Sauces, Dressings and Condiments Soup Spreads \\\n",
"count 79.000000 79.000000 79.000000 \n",
"mean 7237.398312 886.935443 1404.284388 \n",
"std 5340.667764 1516.838457 1294.774159 \n",
"min 96.066667 0.000000 16.366667 \n",
"25% 2914.683334 75.500000 351.616667 \n",
"50% 6268.566667 230.900000 999.666667 \n",
"75% 10145.200000 974.833333 2004.566667 \n",
"max 28564.600000 7801.233333 5651.933333 \n",
"\n",
" ... Baby Food Drinking Milk Products \\\n",
"count ... 79.000000 79.000000 \n",
"mean ... 866.592405 41405.834600 \n",
"std ... 742.174096 33320.311999 \n",
"min ... 39.433333 355.966667 \n",
"25% ... 321.333333 11436.866670 \n",
"50% ... 645.033333 34384.366670 \n",
"75% ... 1267.850000 60932.050000 \n",
"max ... 3898.500000 145484.466700 \n",
"\n",
" Yoghurt and Sour Milk Products Other Dairy \\\n",
"count 79.000000 79.000000 \n",
"mean 10319.671308 6313.274261 \n",
"std 8515.322574 6019.665786 \n",
"min 8.333333 0.866667 \n",
"25% 3807.400000 1424.216667 \n",
"50% 8851.733333 4543.066667 \n",
"75% 15065.033335 9951.433332 \n",
"max 40846.666670 28622.433330 \n",
"\n",
" Ice Cream and Frozen Desserts Cocoa Powder \\\n",
"count 79.000000 79.000000 \n",
"mean 3605.577637 238.948101 \n",
"std 3219.524667 180.330916 \n",
"min 99.966667 10.300000 \n",
"25% 1263.950000 99.600000 \n",
"50% 2327.400000 185.333333 \n",
"75% 5283.216667 331.866667 \n",
"max 14535.433330 655.400000 \n",
"\n",
" Emulsifiers and Co-Emulsifiers Fats and Oils Flours \\\n",
"count 79.000000 79.000000 79.000000 \n",
"mean 334.273840 17541.712658 38715.299156 \n",
"std 244.387167 7831.977231 24661.854093 \n",
"min 10.066667 936.700000 1925.800000 \n",
"25% 127.450000 11476.583335 21518.150000 \n",
"50% 312.866667 18539.566670 34784.433330 \n",
"75% 500.966667 23198.066670 53836.300000 \n",
"max 1013.600000 37119.366670 119329.800000 \n",
"\n",
" Milk \n",
"count 79.000000 \n",
"mean 59598.455695 \n",
"std 44718.262875 \n",
"min 618.333333 \n",
"25% 20988.116665 \n",
"50% 53199.933330 \n",
"75% 90095.083335 \n",
"max 189444.000000 \n",
"\n",
"[8 rows x 50 columns]"
]
},
"execution_count": 38,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data.describe()"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Baby Food | \n",
" Baked Goods | \n",
" Beer | \n",
" Bottled Water | \n",
" Breakfast Cereals | \n",
" Butter and Margarine | \n",
" Carbonates | \n",
" Cheese | \n",
" Chocolate Confectionery | \n",
" Cocoa Powder | \n",
" ... | \n",
" Sports and Energy Drinks | \n",
" Spreads | \n",
" Starchy Roots | \n",
" Sugar Confectionery | \n",
" Sugar and Sweeteners | \n",
" Sweet Biscuits, Snack Bars and Fruit Snacks | \n",
" Tea | \n",
" Vegetables | \n",
" Wine | \n",
" Yoghurt and Sour Milk Products | \n",
"
\n",
" \n",
" \n",
" \n",
" 4 | \n",
" 644.566667 | \n",
" 3154.50000 | \n",
" 632.466667 | \n",
" 48291.76667 | \n",
" 19.066667 | \n",
" 197.433333 | \n",
" 2537.766667 | \n",
" 50.700000 | \n",
" 246.466667 | \n",
" 79.166667 | \n",
" ... | \n",
" 1033.833333 | \n",
" 61.600000 | \n",
" 63010.36667 | \n",
" 619.100000 | \n",
" 7605.200000 | \n",
" 797.366667 | \n",
" 335.033333 | \n",
" 39025.73333 | \n",
" 80.5000 | \n",
" 276.30000 | \n",
"
\n",
" \n",
" 44 | \n",
" 1782.366667 | \n",
" 54447.93333 | \n",
" 60562.200000 | \n",
" 98986.76667 | \n",
" 2549.833333 | \n",
" 6588.466667 | \n",
" 46943.433330 | \n",
" 11008.100000 | \n",
" 1567.433333 | \n",
" 329.933333 | \n",
" ... | \n",
" 896.033333 | \n",
" 1203.800000 | \n",
" 31282.00000 | \n",
" 1118.733333 | \n",
" 6496.166667 | \n",
" 5623.900000 | \n",
" 53.900000 | \n",
" 101521.03330 | \n",
" 47800.1333 | \n",
" 17166.23333 | \n",
"
\n",
" \n",
" 62 | \n",
" 1468.500000 | \n",
" 61043.63333 | \n",
" 127574.166700 | \n",
" 40230.93333 | \n",
" 7636.866667 | \n",
" 10577.900000 | \n",
" 103062.666700 | \n",
" 5448.966667 | \n",
" 8329.700000 | \n",
" 334.233333 | \n",
" ... | \n",
" 10059.900000 | \n",
" 1640.000000 | \n",
" 52866.83333 | \n",
" 3278.966667 | \n",
" 8137.166667 | \n",
" 6877.933333 | \n",
" 2460.433333 | \n",
" 59545.40000 | \n",
" 16988.0000 | \n",
" 12243.00000 | \n",
"
\n",
" \n",
" 24 | \n",
" 1580.533333 | \n",
" 80481.36667 | \n",
" 71435.800000 | \n",
" 25552.83333 | \n",
" 1840.800000 | \n",
" 12334.500000 | \n",
" 72100.333330 | \n",
" 11154.933330 | \n",
" 5275.133333 | \n",
" 575.833333 | \n",
" ... | \n",
" 6646.700000 | \n",
" 3811.166667 | \n",
" 66090.50000 | \n",
" 4972.000000 | \n",
" 5124.600000 | \n",
" 10241.266670 | \n",
" 671.900000 | \n",
" 51224.66667 | \n",
" 22500.3667 | \n",
" 33144.33333 | \n",
"
\n",
" \n",
" 5 | \n",
" 225.633333 | \n",
" 3744.90000 | \n",
" 28878.933330 | \n",
" 12520.36667 | \n",
" 64.233333 | \n",
" 21.000000 | \n",
" 7683.766667 | \n",
" 12.033333 | \n",
" 60.000000 | \n",
" 77.466667 | \n",
" ... | \n",
" 652.100000 | \n",
" 113.600000 | \n",
" 57375.56667 | \n",
" 1082.000000 | \n",
" 4935.166667 | \n",
" 1079.733333 | \n",
" 233.800000 | \n",
" 141560.13330 | \n",
" 1868.4667 | \n",
" 1889.80000 | \n",
"
\n",
" \n",
"
\n",
"
5 rows × 48 columns
\n",
"
"
],
"text/plain": [
" Baby Food Baked Goods Beer Bottled Water Breakfast Cereals \\\n",
"4 644.566667 3154.50000 632.466667 48291.76667 19.066667 \n",
"44 1782.366667 54447.93333 60562.200000 98986.76667 2549.833333 \n",
"62 1468.500000 61043.63333 127574.166700 40230.93333 7636.866667 \n",
"24 1580.533333 80481.36667 71435.800000 25552.83333 1840.800000 \n",
"5 225.633333 3744.90000 28878.933330 12520.36667 64.233333 \n",
"\n",
" Butter and Margarine Carbonates Cheese \\\n",
"4 197.433333 2537.766667 50.700000 \n",
"44 6588.466667 46943.433330 11008.100000 \n",
"62 10577.900000 103062.666700 5448.966667 \n",
"24 12334.500000 72100.333330 11154.933330 \n",
"5 21.000000 7683.766667 12.033333 \n",
"\n",
" Chocolate Confectionery Cocoa Powder ... \\\n",
"4 246.466667 79.166667 ... \n",
"44 1567.433333 329.933333 ... \n",
"62 8329.700000 334.233333 ... \n",
"24 5275.133333 575.833333 ... \n",
"5 60.000000 77.466667 ... \n",
"\n",
" Sports and Energy Drinks Spreads Starchy Roots Sugar Confectionery \\\n",
"4 1033.833333 61.600000 63010.36667 619.100000 \n",
"44 896.033333 1203.800000 31282.00000 1118.733333 \n",
"62 10059.900000 1640.000000 52866.83333 3278.966667 \n",
"24 6646.700000 3811.166667 66090.50000 4972.000000 \n",
"5 652.100000 113.600000 57375.56667 1082.000000 \n",
"\n",
" Sugar and Sweeteners Sweet Biscuits, Snack Bars and Fruit Snacks \\\n",
"4 7605.200000 797.366667 \n",
"44 6496.166667 5623.900000 \n",
"62 8137.166667 6877.933333 \n",
"24 5124.600000 10241.266670 \n",
"5 4935.166667 1079.733333 \n",
"\n",
" Tea Vegetables Wine Yoghurt and Sour Milk Products \n",
"4 335.033333 39025.73333 80.5000 276.30000 \n",
"44 53.900000 101521.03330 47800.1333 17166.23333 \n",
"62 2460.433333 59545.40000 16988.0000 12243.00000 \n",
"24 671.900000 51224.66667 22500.3667 33144.33333 \n",
"5 233.800000 141560.13330 1868.4667 1889.80000 \n",
"\n",
"[5 rows x 48 columns]"
]
},
"execution_count": 39,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Some columns, such as names or continents, are not predictors\n",
"features = data[data.columns.difference(['prevalence','tertile','country_name','continent'])]\n",
"features.sample(5)"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Index(['Baby Food', 'Baked Goods', 'Beer', 'Bottled Water',\n",
" 'Breakfast Cereals', 'Butter and Margarine', 'Carbonates', 'Cheese',\n",
" 'Chocolate Confectionery', 'Cocoa Powder', 'Coffee', 'Concentrates',\n",
" 'Drinking Milk Products', 'Edible Oils', 'Eggs',\n",
" 'Emulsifiers and Co-Emulsifiers', 'Fats and Oils', 'Fish and Seafood',\n",
" 'Flours', 'Fruits', 'Gum', 'Ice Cream and Frozen Desserts', 'Juice',\n",
" 'Meat', 'Milk', 'Nuts', 'Other Dairy', 'Other Hot Drinks',\n",
" 'Processed Fruit and Vegetables', 'Processed Meat and Seafood',\n",
" 'Pulses', 'RTDs/High-Strength Premixes', 'Ready Meals',\n",
" 'Rice, Pasta and Noodles', 'Sauces, Dressings and Condiments',\n",
" 'Savoury Snacks', 'Soup', 'Spirits', 'Sports and Energy Drinks',\n",
" 'Spreads', 'Starchy Roots', 'Sugar Confectionery',\n",
" 'Sugar and Sweeteners', 'Sweet Biscuits, Snack Bars and Fruit Snacks',\n",
" 'Tea', 'Vegetables', 'Wine', 'Yoghurt and Sour Milk Products'],\n",
" dtype='object')"
]
},
"execution_count": 40,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"feature_names = features.columns\n",
"feature_names"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0 0.016048\n",
"26 0.172975\n",
"76 0.339133\n",
"66 0.263871\n",
"42 0.209111\n",
"Name: prevalence, dtype: float64"
]
},
"execution_count": 41,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"labels_numerical = data.prevalence\n",
"labels_numerical.sample(5)"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"13 1\n",
"65 3\n",
"15 1\n",
"66 3\n",
"43 2\n",
"Name: tertile, dtype: int64"
]
},
"execution_count": 42,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"labels_categorical = data.tertile\n",
"labels_categorical.sample(5)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Normalizing the numerical variables into a min max scaler where the maximum value is transformed into a 1 and the minimum value is 0\n"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([0.00000000e+00, 4.14625178e-03, 5.97066354e-03, 1.38926517e-03,\n",
" 6.53400421e-04, 3.54754613e-02, 0.00000000e+00, 2.49226287e-03,\n",
" 3.70575518e-03, 4.18539761e-03, 2.94462690e-03, 3.00890237e-03,\n",
" 6.05109724e-02, 7.13792131e-02, 4.55675412e-02, 1.99295821e-03,\n",
" 4.88290894e-02, 7.35588311e-02, 0.00000000e+00, 2.68709617e-01,\n",
" 2.03259561e-02, 1.23538322e-03, 2.12884275e-03, 0.00000000e+00,\n",
" 4.70117939e-02, 7.60314274e-01, 1.80516557e-03, 1.17501501e-02,\n",
" 3.69090460e-04, 0.00000000e+00, 9.35230346e-01, 3.31242366e-04,\n",
" 8.84372542e-04, 5.78210804e-04, 3.97280740e-03, 1.28926699e-02,\n",
" 4.23010037e-04, 5.11506886e-02, 2.65692938e-04, 8.87222226e-05,\n",
" 1.34909559e-01, 8.27348276e-03, 1.55331838e-01, 6.61016499e-02,\n",
" 9.87912653e-02, 3.83204172e-01, 1.57599979e-04, 6.25311186e-03])"
]
},
"execution_count": 43,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"minMaxScaler = sklearn.preprocessing.MinMaxScaler()\n",
"features = minMaxScaler.fit_transform(features)\n",
"\n",
"features[1,:]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Dividing in training and testing"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"features_train, features_test, labels_numerical_train, labels_numerical_test = sklearn.model_selection.train_test_split(\n",
" features,\n",
" labels_numerical,\n",
" test_size=0.30,\n",
" random_state = 55\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Observations for training: 55\n",
"Observations for testing: 24\n"
]
}
],
"source": [
"# Number of observations in each dataset\n",
"print('Observations for training:', len(labels_numerical_train))\n",
"print('Observations for testing:',len(labels_numerical_test))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Random Forest regressor"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"regressor = sklearn.ensemble.RandomForestRegressor(n_estimators=100, random_state=15)"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"RandomForestRegressor(bootstrap=True, criterion='mse', max_depth=None,\n",
" max_features='auto', max_leaf_nodes=None,\n",
" min_impurity_decrease=0.0, min_impurity_split=None,\n",
" min_samples_leaf=1, min_samples_split=2,\n",
" min_weight_fraction_leaf=0.0, n_estimators=100,\n",
" n_jobs=None, oob_score=False, random_state=15, verbose=0,\n",
" warm_start=False)"
]
},
"execution_count": 47,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"regressor.fit(features_train,labels_numerical_train)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Predicting the labels from the test features subset"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"predictions = regressor.predict(features_test)"
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" country | \n",
" true | \n",
" predicted | \n",
" AE | \n",
"
\n",
" \n",
" \n",
" \n",
" 11 | \n",
" Taiwan | \n",
" 0.083790 | \n",
" 0.083843 | \n",
" 0.000053 | \n",
"
\n",
" \n",
" 6 | \n",
" Pakistan | \n",
" 0.254970 | \n",
" 0.253157 | \n",
" 0.001814 | \n",
"
\n",
" \n",
" 22 | \n",
" Uzbekistan | \n",
" 0.245770 | \n",
" 0.248652 | \n",
" 0.002883 | \n",
"
\n",
" \n",
" 7 | \n",
" Singapore | \n",
" 0.212405 | \n",
" 0.219636 | \n",
" 0.007231 | \n",
"
\n",
" \n",
" 2 | \n",
" Japan | \n",
" 0.241884 | \n",
" 0.253040 | \n",
" 0.011156 | \n",
"
\n",
" \n",
" 4 | \n",
" Indonesia | \n",
" 0.046816 | \n",
" 0.064171 | \n",
" 0.017354 | \n",
"
\n",
" \n",
" 15 | \n",
" Malaysia | \n",
" 0.240199 | \n",
" 0.221080 | \n",
" 0.019119 | \n",
"
\n",
" \n",
" 9 | \n",
" Nigeria | \n",
" 0.165021 | \n",
" 0.194351 | \n",
" 0.029331 | \n",
"
\n",
" \n",
" 1 | \n",
" India | \n",
" 0.070481 | \n",
" 0.100898 | \n",
" 0.030417 | \n",
"
\n",
" \n",
" 10 | \n",
" Republic of Korea | \n",
" 0.197482 | \n",
" 0.233759 | \n",
" 0.036278 | \n",
"
\n",
" \n",
" 18 | \n",
" Denmark | \n",
" 0.291443 | \n",
" 0.248704 | \n",
" 0.042739 | \n",
"
\n",
" \n",
" 5 | \n",
" China | \n",
" 0.054962 | \n",
" 0.101300 | \n",
" 0.046337 | \n",
"
\n",
" \n",
" 3 | \n",
" Kenya | \n",
" 0.059085 | \n",
" 0.109434 | \n",
" 0.050349 | \n",
"
\n",
" \n",
" 12 | \n",
" Thailand | \n",
" 0.169666 | \n",
" 0.220082 | \n",
" 0.050416 | \n",
"
\n",
" \n",
" 19 | \n",
" Peru | \n",
" 0.162371 | \n",
" 0.214058 | \n",
" 0.051687 | \n",
"
\n",
" \n",
" 17 | \n",
" France | \n",
" 0.172390 | \n",
" 0.227442 | \n",
" 0.055052 | \n",
"
\n",
" \n",
" 20 | \n",
" Sweden | \n",
" 0.018786 | \n",
" 0.075624 | \n",
" 0.056838 | \n",
"
\n",
" \n",
" 8 | \n",
" Philippines | \n",
" 0.155723 | \n",
" 0.213752 | \n",
" 0.058029 | \n",
"
\n",
" \n",
" 21 | \n",
" Italy | \n",
" 0.263871 | \n",
" 0.202489 | \n",
" 0.061382 | \n",
"
\n",
" \n",
" 23 | \n",
" Romania | \n",
" 0.046494 | \n",
" 0.111948 | \n",
" 0.065454 | \n",
"
\n",
" \n",
" 0 | \n",
" Viet Nam | \n",
" 0.141835 | \n",
" 0.072690 | \n",
" 0.069145 | \n",
"
\n",
" \n",
" 14 | \n",
" China (Hong Kong SAR) | \n",
" 0.192777 | \n",
" 0.265841 | \n",
" 0.073065 | \n",
"
\n",
" \n",
" 13 | \n",
" Cameroon | \n",
" 0.353288 | \n",
" 0.247404 | \n",
" 0.105883 | \n",
"
\n",
" \n",
" 16 | \n",
" Switzerland | \n",
" 0.044837 | \n",
" 0.241133 | \n",
" 0.196296 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" country true predicted AE\n",
"11 Taiwan 0.083790 0.083843 0.000053\n",
"6 Pakistan 0.254970 0.253157 0.001814\n",
"22 Uzbekistan 0.245770 0.248652 0.002883\n",
"7 Singapore 0.212405 0.219636 0.007231\n",
"2 Japan 0.241884 0.253040 0.011156\n",
"4 Indonesia 0.046816 0.064171 0.017354\n",
"15 Malaysia 0.240199 0.221080 0.019119\n",
"9 Nigeria 0.165021 0.194351 0.029331\n",
"1 India 0.070481 0.100898 0.030417\n",
"10 Republic of Korea 0.197482 0.233759 0.036278\n",
"18 Denmark 0.291443 0.248704 0.042739\n",
"5 China 0.054962 0.101300 0.046337\n",
"3 Kenya 0.059085 0.109434 0.050349\n",
"12 Thailand 0.169666 0.220082 0.050416\n",
"19 Peru 0.162371 0.214058 0.051687\n",
"17 France 0.172390 0.227442 0.055052\n",
"20 Sweden 0.018786 0.075624 0.056838\n",
"8 Philippines 0.155723 0.213752 0.058029\n",
"21 Italy 0.263871 0.202489 0.061382\n",
"23 Romania 0.046494 0.111948 0.065454\n",
"0 Viet Nam 0.141835 0.072690 0.069145\n",
"14 China (Hong Kong SAR) 0.192777 0.265841 0.073065\n",
"13 Cameroon 0.353288 0.247404 0.105883\n",
"16 Switzerland 0.044837 0.241133 0.196296"
]
},
"execution_count": 49,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"summary = pd.DataFrame(list(zip(data.country_name,labels_numerical_test,predictions)),columns=['country','true','predicted'])\n",
"summary['AE'] = abs(summary.true - summary.predicted)\n",
"summary = summary.sort_values(by='AE',ascending=True)\n",
"summary"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Calculating MAE\n",
"$$MAE = \\frac{1}{n}\\sum_{i=1}^{n}\\left | y_{i} - \\hat{y}_{i} \\right |$$"
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.047429547056249986"
]
},
"execution_count": 50,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sklearn.metrics.mean_absolute_error(labels_numerical_test,predictions)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Calculating RMSE\n",
"$$RMSE = \\sqrt {\\frac{1}{n}\\sum_{j=1}^{n}\\left ( y_{i} - \\hat{y}_{i} \\right )^{2}}$$"
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.06232385596461852"
]
},
"execution_count": 51,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sklearn.metrics.mean_squared_error(labels_numerical_test,predictions)**0.5"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Exploring the absolute errors by country that are in the testing dataset"
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" country | \n",
" true | \n",
" predicted | \n",
" AE | \n",
"
\n",
" \n",
" \n",
" \n",
" 11 | \n",
" Taiwan | \n",
" 0.083790 | \n",
" 0.083843 | \n",
" 0.000053 | \n",
"
\n",
" \n",
" 6 | \n",
" Pakistan | \n",
" 0.254970 | \n",
" 0.253157 | \n",
" 0.001814 | \n",
"
\n",
" \n",
" 22 | \n",
" Uzbekistan | \n",
" 0.245770 | \n",
" 0.248652 | \n",
" 0.002883 | \n",
"
\n",
" \n",
" 7 | \n",
" Singapore | \n",
" 0.212405 | \n",
" 0.219636 | \n",
" 0.007231 | \n",
"
\n",
" \n",
" 2 | \n",
" Japan | \n",
" 0.241884 | \n",
" 0.253040 | \n",
" 0.011156 | \n",
"
\n",
" \n",
" 4 | \n",
" Indonesia | \n",
" 0.046816 | \n",
" 0.064171 | \n",
" 0.017354 | \n",
"
\n",
" \n",
" 15 | \n",
" Malaysia | \n",
" 0.240199 | \n",
" 0.221080 | \n",
" 0.019119 | \n",
"
\n",
" \n",
" 9 | \n",
" Nigeria | \n",
" 0.165021 | \n",
" 0.194351 | \n",
" 0.029331 | \n",
"
\n",
" \n",
" 1 | \n",
" India | \n",
" 0.070481 | \n",
" 0.100898 | \n",
" 0.030417 | \n",
"
\n",
" \n",
" 10 | \n",
" Republic of Korea | \n",
" 0.197482 | \n",
" 0.233759 | \n",
" 0.036278 | \n",
"
\n",
" \n",
" 18 | \n",
" Denmark | \n",
" 0.291443 | \n",
" 0.248704 | \n",
" 0.042739 | \n",
"
\n",
" \n",
" 5 | \n",
" China | \n",
" 0.054962 | \n",
" 0.101300 | \n",
" 0.046337 | \n",
"
\n",
" \n",
" 3 | \n",
" Kenya | \n",
" 0.059085 | \n",
" 0.109434 | \n",
" 0.050349 | \n",
"
\n",
" \n",
" 12 | \n",
" Thailand | \n",
" 0.169666 | \n",
" 0.220082 | \n",
" 0.050416 | \n",
"
\n",
" \n",
" 19 | \n",
" Peru | \n",
" 0.162371 | \n",
" 0.214058 | \n",
" 0.051687 | \n",
"
\n",
" \n",
" 17 | \n",
" France | \n",
" 0.172390 | \n",
" 0.227442 | \n",
" 0.055052 | \n",
"
\n",
" \n",
" 20 | \n",
" Sweden | \n",
" 0.018786 | \n",
" 0.075624 | \n",
" 0.056838 | \n",
"
\n",
" \n",
" 8 | \n",
" Philippines | \n",
" 0.155723 | \n",
" 0.213752 | \n",
" 0.058029 | \n",
"
\n",
" \n",
" 21 | \n",
" Italy | \n",
" 0.263871 | \n",
" 0.202489 | \n",
" 0.061382 | \n",
"
\n",
" \n",
" 23 | \n",
" Romania | \n",
" 0.046494 | \n",
" 0.111948 | \n",
" 0.065454 | \n",
"
\n",
" \n",
" 0 | \n",
" Viet Nam | \n",
" 0.141835 | \n",
" 0.072690 | \n",
" 0.069145 | \n",
"
\n",
" \n",
" 14 | \n",
" China (Hong Kong SAR) | \n",
" 0.192777 | \n",
" 0.265841 | \n",
" 0.073065 | \n",
"
\n",
" \n",
" 13 | \n",
" Cameroon | \n",
" 0.353288 | \n",
" 0.247404 | \n",
" 0.105883 | \n",
"
\n",
" \n",
" 16 | \n",
" Switzerland | \n",
" 0.044837 | \n",
" 0.241133 | \n",
" 0.196296 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" country true predicted AE\n",
"11 Taiwan 0.083790 0.083843 0.000053\n",
"6 Pakistan 0.254970 0.253157 0.001814\n",
"22 Uzbekistan 0.245770 0.248652 0.002883\n",
"7 Singapore 0.212405 0.219636 0.007231\n",
"2 Japan 0.241884 0.253040 0.011156\n",
"4 Indonesia 0.046816 0.064171 0.017354\n",
"15 Malaysia 0.240199 0.221080 0.019119\n",
"9 Nigeria 0.165021 0.194351 0.029331\n",
"1 India 0.070481 0.100898 0.030417\n",
"10 Republic of Korea 0.197482 0.233759 0.036278\n",
"18 Denmark 0.291443 0.248704 0.042739\n",
"5 China 0.054962 0.101300 0.046337\n",
"3 Kenya 0.059085 0.109434 0.050349\n",
"12 Thailand 0.169666 0.220082 0.050416\n",
"19 Peru 0.162371 0.214058 0.051687\n",
"17 France 0.172390 0.227442 0.055052\n",
"20 Sweden 0.018786 0.075624 0.056838\n",
"8 Philippines 0.155723 0.213752 0.058029\n",
"21 Italy 0.263871 0.202489 0.061382\n",
"23 Romania 0.046494 0.111948 0.065454\n",
"0 Viet Nam 0.141835 0.072690 0.069145\n",
"14 China (Hong Kong SAR) 0.192777 0.265841 0.073065\n",
"13 Cameroon 0.353288 0.247404 0.105883\n",
"16 Switzerland 0.044837 0.241133 0.196296"
]
},
"execution_count": 52,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"summary"
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.barh(summary.country,summary.AE,color='g')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Now you do the classification "
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {},
"outputs": [],
"source": [
"# Split in train and test\n",
"\n",
"# sklearn.ensemble.RandomForestClassifier\n",
"\n",
"# classifier.fit\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Confusion matrix"
]
},
{
"cell_type": "code",
"execution_count": 55,
"metadata": {},
"outputs": [],
"source": [
"#predictions = classifier.predict(features_test)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Printing the confusion matrix between the true and predicted values"
]
},
{
"cell_type": "code",
"execution_count": 56,
"metadata": {},
"outputs": [],
"source": [
"#print(sklearn.metrics.confusion_matrix(predictions, labels_categorical_test))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Extracting some performance metrics from the prediction"
]
},
{
"cell_type": "code",
"execution_count": 57,
"metadata": {},
"outputs": [],
"source": [
"#print(sklearn.metrics.classification_report(predictions, labels_categorical_test))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Returning the probability of being classified as each class along with their true label"
]
},
{
"cell_type": "code",
"execution_count": 58,
"metadata": {},
"outputs": [],
"source": [
"#predictions_probabilities = classifier.predict_proba(features_test)\n",
"#predictions_probabilities = pd.DataFrame(predictions_probabilities)\n",
"#predictions_probabilities_labels = pd.concat([predictions_probabilities,pd.DataFrame(list(labels_categorical_test))], axis=1)\n",
"#predictions_probabilities_labels.columns = ['class_1_probability','class_2_probability','class_3_probability','true_class']\n",
"#predictions_probabilities_labels"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Variable importance list"
]
},
{
"cell_type": "code",
"execution_count": 59,
"metadata": {},
"outputs": [],
"source": [
"vil = pd.DataFrame(list(zip(feature_names,regressor.feature_importances_)),\n",
" columns=['feature','mse']\n",
" ).sort_values(by='mse', ascending=False)"
]
},
{
"cell_type": "code",
"execution_count": 60,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" feature | \n",
" mse | \n",
"
\n",
" \n",
" \n",
" \n",
" 18 | \n",
" Flours | \n",
" 0.216724 | \n",
"
\n",
" \n",
" 1 | \n",
" Baked Goods | \n",
" 0.198426 | \n",
"
\n",
" \n",
" 30 | \n",
" Pulses | \n",
" 0.095162 | \n",
"
\n",
" \n",
" 25 | \n",
" Nuts | \n",
" 0.077482 | \n",
"
\n",
" \n",
" 10 | \n",
" Coffee | \n",
" 0.055321 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" feature mse\n",
"18 Flours 0.216724\n",
"1 Baked Goods 0.198426\n",
"30 Pulses 0.095162\n",
"25 Nuts 0.077482\n",
"10 Coffee 0.055321"
]
},
"execution_count": 60,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"vil.head()"
]
},
{
"cell_type": "code",
"execution_count": 61,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"ax = plt.barh(data = vil.sort_values(by='mse').tail(15), \n",
" y='feature', \n",
" width = 'mse'\n",
" )\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Do the same for classification. Are the VIL the same? Why?"
]
},
{
"cell_type": "code",
"execution_count": 62,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"rf_vil = []\n",
"for i in range(50):\n",
" rf = sklearn.ensemble.RandomForestRegressor(n_estimators=100)\n",
" rf = rf.fit(features_train,labels_numerical_train)\n",
" rf_vil.append(rf.feature_importances_)\n",
"mean_vil = np.mean(rf_vil, axis = 0)"
]
},
{
"cell_type": "code",
"execution_count": 63,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"mean_vil = pd.DataFrame(list(zip(feature_names,mean_vil)),\n",
" columns=['feature','mean_gini_decrease']\n",
" ).sort_values(by='mean_gini_decrease', ascending=False)"
]
},
{
"cell_type": "code",
"execution_count": 64,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" feature | \n",
" mean_gini_decrease | \n",
"
\n",
" \n",
" \n",
" \n",
" 1 | \n",
" Baked Goods | \n",
" 0.210890 | \n",
"
\n",
" \n",
" 18 | \n",
" Flours | \n",
" 0.162897 | \n",
"
\n",
" \n",
" 25 | \n",
" Nuts | \n",
" 0.107380 | \n",
"
\n",
" \n",
" 30 | \n",
" Pulses | \n",
" 0.095951 | \n",
"
\n",
" \n",
" 10 | \n",
" Coffee | \n",
" 0.051143 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" feature mean_gini_decrease\n",
"1 Baked Goods 0.210890\n",
"18 Flours 0.162897\n",
"25 Nuts 0.107380\n",
"30 Pulses 0.095951\n",
"10 Coffee 0.051143"
]
},
"execution_count": 64,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mean_vil.head()"
]
},
{
"cell_type": "code",
"execution_count": 65,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\nAAAAAElFTkSuQmCC\n",
"text/plain": [
"