Files
hands-on/01_the_machine_learning_landscape.ipynb
2018-03-29 10:36:44 +09:00

2811 lines
244 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPython 3.5.5\n",
"IPython 6.2.1\n",
"\n",
"numpy 1.14.1\n",
"scipy 1.0.0\n",
"sklearn 0.19.1\n",
"pandas 0.22.0\n",
"matplotlib 2.2.2\n"
]
}
],
"source": [
"%load_ext watermark\n",
"%watermark -v -p numpy,scipy,sklearn,pandas,matplotlib"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**1장 한 눈에 보는 머신러닝**\n",
"\n",
"_이 노트북은 1장의 그림을 생성하기 위한 것입니다._"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 설정"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"파이썬 2와 3을 모두 지원합니다. 공통 모듈을 임포트하고 맷플롯립 그림이 노트북 안에 포함되도록 설정하고 생성한 그림을 저장하기 위한 함수를 준비합니다:"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"slideshow": {
"slide_type": "-"
}
},
"outputs": [],
"source": [
"# 파이썬 2와 파이썬 3 지원\n",
"from __future__ import division, print_function, unicode_literals\n",
"\n",
"# 공통\n",
"import numpy as np\n",
"import os\n",
"\n",
"# 일관된 출력을 위해 유사난수 초기화\n",
"np.random.seed(42)\n",
"\n",
"# 맷플롯립 설정\n",
"%matplotlib inline\n",
"import matplotlib\n",
"import matplotlib.pyplot as plt\n",
"plt.rcParams['axes.labelsize'] = 14\n",
"plt.rcParams['xtick.labelsize'] = 12\n",
"plt.rcParams['ytick.labelsize'] = 12\n",
"\n",
"# 한글출력\n",
"matplotlib.rc('font', family='NanumBarunGothic')\n",
"plt.rcParams['axes.unicode_minus'] = False\n",
"\n",
"# 그림을 저장할 폴드\n",
"PROJECT_ROOT_DIR = \".\"\n",
"CHAPTER_ID = \"fundamentals\"\n",
"\n",
"def save_fig(fig_id, tight_layout=True):\n",
" path = os.path.join(PROJECT_ROOT_DIR, \"images\", CHAPTER_ID, fig_id + \".png\")\n",
" if tight_layout:\n",
" plt.tight_layout()\n",
" plt.savefig(path, format='png', dpi=300)\n",
"\n",
"# SciPy 이슈 #5998에 해당하는 경고를 무시합니다(https://github.com/scipy/scipy/issues/5998).\n",
"import warnings\n",
"warnings.filterwarnings(action=\"ignore\", module=\"scipy\", message=\"^internal gelsd\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 예제 1-1"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"이 함수는 OECD의 삶의 만족도(life satisfaction) 데이터와 IMF의 1인당 GDP(GDP per capita) 데이터를 합칩니다.\n",
"이는 번거로운 작업이고 머신러닝과는 관계가 없기 때문에 책 안에 포함시키지 않았습니다."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"def prepare_country_stats(oecd_bli, gdp_per_capita):\n",
" oecd_bli = oecd_bli[oecd_bli[\"INEQUALITY\"]==\"TOT\"]\n",
" oecd_bli = oecd_bli.pivot(index=\"Country\", columns=\"Indicator\", values=\"Value\")\n",
" gdp_per_capita.rename(columns={\"2015\": \"GDP per capita\"}, inplace=True)\n",
" gdp_per_capita.set_index(\"Country\", inplace=True)\n",
" full_country_stats = pd.merge(left=oecd_bli, right=gdp_per_capita,\n",
" left_index=True, right_index=True)\n",
" full_country_stats.sort_values(by=\"GDP per capita\", inplace=True)\n",
" remove_indices = [0, 1, 6, 8, 33, 34, 35]\n",
" keep_indices = list(set(range(36)) - set(remove_indices))\n",
" return full_country_stats[[\"GDP per capita\", 'Life satisfaction']].iloc[keep_indices]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"책에 있는 코드는 데이터 파일이 현재 디렉토리에 있다고 가정합니다. 여기에서는 datasets/lifesat 안에서 파일을 읽어 들입니다."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"import os\n",
"datapath = os.path.join(\"datasets\", \"lifesat\", \"\")"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[5.96242338]]\n"
]
}
],
"source": [
"# 샘플 코드\n",
"import matplotlib\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"import pandas as pd\n",
"import sklearn.linear_model\n",
"\n",
"# 데이터 적재\n",
"oecd_bli = pd.read_csv(datapath + \"oecd_bli_2015.csv\", thousands=',')\n",
"gdp_per_capita = pd.read_csv(datapath + \"gdp_per_capita.csv\",thousands=',',delimiter='\\t',\n",
" encoding='latin1', na_values=\"n/a\")\n",
"\n",
"# 데이터 준비\n",
"country_stats = prepare_country_stats(oecd_bli, gdp_per_capita)\n",
"X = np.c_[country_stats[\"GDP per capita\"]]\n",
"y = np.c_[country_stats[\"Life satisfaction\"]]\n",
"\n",
"# 데이터 시각화\n",
"ax = country_stats.plot(kind='scatter', x=\"GDP per capita\", y='Life satisfaction')\n",
"ax.set(xlabel=\"삶의 만족도\", ylabel=\"1인당 GDP\")\n",
"plt.show()\n",
"\n",
"# 선형 모델 선택\n",
"model = sklearn.linear_model.LinearRegression()\n",
"\n",
"# 모델 훈련\n",
"model.fit(X, y)\n",
"\n",
"# 키프로스에 대한 예측\n",
"X_new = [[22587]] # 키프로스 1인당 GDP\n",
"print(model.predict(X_new)) # 결과 [[ 5.96242338]]"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[5.76666667]]\n"
]
}
],
"source": [
"# 선형 회귀 모델을 k-최근접 이웃 회귀 모델로 교체할 경우\n",
"knn = sklearn.neighbors.KNeighborsRegressor(n_neighbors=3)\n",
"\n",
"# 모델 훈련\n",
"knn.fit(X, y)\n",
"\n",
"# 키프로스에 대한 예측\n",
"print(knn.predict(X_new)) # 결과 [[ 5.76666667]]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 알림: 이후의 코드는 무시해도 좋습니다. 이 코드는 1장에 있는 그림을 생성하기 위한 것입니다."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 삶의 만족도 데이터 적재와 준비"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"필요하면 OECE 웹사이트에서 새 데이터를 받을 수 있습니다. http://stats.oecd.org/index.aspx?DataSetCode=BLI 에서 CSV 파일을 다운받아 `datasets/lifesat/`에 저장합니다."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th>Indicator</th>\n",
" <th>Air pollution</th>\n",
" <th>Assault rate</th>\n",
" <th>Consultation on rule-making</th>\n",
" <th>Dwellings without basic facilities</th>\n",
" <th>Educational attainment</th>\n",
" <th>Employees working very long hours</th>\n",
" <th>Employment rate</th>\n",
" <th>Homicide rate</th>\n",
" <th>Household net adjusted disposable income</th>\n",
" <th>Household net financial wealth</th>\n",
" <th>...</th>\n",
" <th>Long-term unemployment rate</th>\n",
" <th>Personal earnings</th>\n",
" <th>Quality of support network</th>\n",
" <th>Rooms per person</th>\n",
" <th>Self-reported health</th>\n",
" <th>Student skills</th>\n",
" <th>Time devoted to leisure and personal care</th>\n",
" <th>Voter turnout</th>\n",
" <th>Water quality</th>\n",
" <th>Years in education</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Country</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Australia</th>\n",
" <td>13.0</td>\n",
" <td>2.1</td>\n",
" <td>10.5</td>\n",
" <td>1.1</td>\n",
" <td>76.0</td>\n",
" <td>14.02</td>\n",
" <td>72.0</td>\n",
" <td>0.8</td>\n",
" <td>31588.0</td>\n",
" <td>47657.0</td>\n",
" <td>...</td>\n",
" <td>1.08</td>\n",
" <td>50449.0</td>\n",
" <td>92.0</td>\n",
" <td>2.3</td>\n",
" <td>85.0</td>\n",
" <td>512.0</td>\n",
" <td>14.41</td>\n",
" <td>93.0</td>\n",
" <td>91.0</td>\n",
" <td>19.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Austria</th>\n",
" <td>27.0</td>\n",
" <td>3.4</td>\n",
" <td>7.1</td>\n",
" <td>1.0</td>\n",
" <td>83.0</td>\n",
" <td>7.61</td>\n",
" <td>72.0</td>\n",
" <td>0.4</td>\n",
" <td>31173.0</td>\n",
" <td>49887.0</td>\n",
" <td>...</td>\n",
" <td>1.19</td>\n",
" <td>45199.0</td>\n",
" <td>89.0</td>\n",
" <td>1.6</td>\n",
" <td>69.0</td>\n",
" <td>500.0</td>\n",
" <td>14.46</td>\n",
" <td>75.0</td>\n",
" <td>94.0</td>\n",
" <td>17.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>2 rows × 24 columns</p>\n",
"</div>"
],
"text/plain": [
"Indicator Air pollution Assault rate Consultation on rule-making \\\n",
"Country \n",
"Australia 13.0 2.1 10.5 \n",
"Austria 27.0 3.4 7.1 \n",
"\n",
"Indicator Dwellings without basic facilities Educational attainment \\\n",
"Country \n",
"Australia 1.1 76.0 \n",
"Austria 1.0 83.0 \n",
"\n",
"Indicator Employees working very long hours Employment rate Homicide rate \\\n",
"Country \n",
"Australia 14.02 72.0 0.8 \n",
"Austria 7.61 72.0 0.4 \n",
"\n",
"Indicator Household net adjusted disposable income \\\n",
"Country \n",
"Australia 31588.0 \n",
"Austria 31173.0 \n",
"\n",
"Indicator Household net financial wealth ... \\\n",
"Country ... \n",
"Australia 47657.0 ... \n",
"Austria 49887.0 ... \n",
"\n",
"Indicator Long-term unemployment rate Personal earnings \\\n",
"Country \n",
"Australia 1.08 50449.0 \n",
"Austria 1.19 45199.0 \n",
"\n",
"Indicator Quality of support network Rooms per person Self-reported health \\\n",
"Country \n",
"Australia 92.0 2.3 85.0 \n",
"Austria 89.0 1.6 69.0 \n",
"\n",
"Indicator Student skills Time devoted to leisure and personal care \\\n",
"Country \n",
"Australia 512.0 14.41 \n",
"Austria 500.0 14.46 \n",
"\n",
"Indicator Voter turnout Water quality Years in education \n",
"Country \n",
"Australia 93.0 91.0 19.4 \n",
"Austria 75.0 94.0 17.0 \n",
"\n",
"[2 rows x 24 columns]"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"oecd_bli = pd.read_csv(datapath + \"oecd_bli_2015.csv\", thousands=',')\n",
"oecd_bli = oecd_bli[oecd_bli[\"INEQUALITY\"]==\"TOT\"]\n",
"oecd_bli = oecd_bli.pivot(index=\"Country\", columns=\"Indicator\", values=\"Value\")\n",
"oecd_bli.head(2)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Country\n",
"Australia 7.3\n",
"Austria 6.9\n",
"Belgium 6.9\n",
"Brazil 7.0\n",
"Canada 7.3\n",
"Name: Life satisfaction, dtype: float64"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"oecd_bli[\"Life satisfaction\"].head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 1인당 GDP 데이터 적재와 준비"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"위와 마찬가지로 필요하면 1인당 GDP 데이터를 새로 받을 수 있습니다. http://goo.gl/j1MSKe (=> imf.org)에서 다운받아 `datasets/lifesat/`에 저장하면 됩니다."
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Subject Descriptor</th>\n",
" <th>Units</th>\n",
" <th>Scale</th>\n",
" <th>Country/Series-specific Notes</th>\n",
" <th>GDP per capita</th>\n",
" <th>Estimates Start After</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Country</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Afghanistan</th>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>599.994</td>\n",
" <td>2013.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Albania</th>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>3995.383</td>\n",
" <td>2010.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Subject Descriptor Units \\\n",
"Country \n",
"Afghanistan Gross domestic product per capita, current prices U.S. dollars \n",
"Albania Gross domestic product per capita, current prices U.S. dollars \n",
"\n",
" Scale Country/Series-specific Notes \\\n",
"Country \n",
"Afghanistan Units See notes for: Gross domestic product, curren... \n",
"Albania Units See notes for: Gross domestic product, curren... \n",
"\n",
" GDP per capita Estimates Start After \n",
"Country \n",
"Afghanistan 599.994 2013.0 \n",
"Albania 3995.383 2010.0 "
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"gdp_per_capita = pd.read_csv(datapath+\"gdp_per_capita.csv\", thousands=',', delimiter='\\t',\n",
" encoding='latin1', na_values=\"n/a\")\n",
"gdp_per_capita.rename(columns={\"2015\": \"GDP per capita\"}, inplace=True)\n",
"gdp_per_capita.set_index(\"Country\", inplace=True)\n",
"gdp_per_capita.head(2)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Air pollution</th>\n",
" <th>Assault rate</th>\n",
" <th>Consultation on rule-making</th>\n",
" <th>Dwellings without basic facilities</th>\n",
" <th>Educational attainment</th>\n",
" <th>Employees working very long hours</th>\n",
" <th>Employment rate</th>\n",
" <th>Homicide rate</th>\n",
" <th>Household net adjusted disposable income</th>\n",
" <th>Household net financial wealth</th>\n",
" <th>...</th>\n",
" <th>Time devoted to leisure and personal care</th>\n",
" <th>Voter turnout</th>\n",
" <th>Water quality</th>\n",
" <th>Years in education</th>\n",
" <th>Subject Descriptor</th>\n",
" <th>Units</th>\n",
" <th>Scale</th>\n",
" <th>Country/Series-specific Notes</th>\n",
" <th>GDP per capita</th>\n",
" <th>Estimates Start After</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Country</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Brazil</th>\n",
" <td>18.0</td>\n",
" <td>7.9</td>\n",
" <td>4.0</td>\n",
" <td>6.7</td>\n",
" <td>45.0</td>\n",
" <td>10.41</td>\n",
" <td>67.0</td>\n",
" <td>25.5</td>\n",
" <td>11664.0</td>\n",
" <td>6844.0</td>\n",
" <td>...</td>\n",
" <td>14.97</td>\n",
" <td>79.0</td>\n",
" <td>72.0</td>\n",
" <td>16.3</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>8669.998</td>\n",
" <td>2014.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Mexico</th>\n",
" <td>30.0</td>\n",
" <td>12.8</td>\n",
" <td>9.0</td>\n",
" <td>4.2</td>\n",
" <td>37.0</td>\n",
" <td>28.83</td>\n",
" <td>61.0</td>\n",
" <td>23.4</td>\n",
" <td>13085.0</td>\n",
" <td>9056.0</td>\n",
" <td>...</td>\n",
" <td>13.89</td>\n",
" <td>63.0</td>\n",
" <td>67.0</td>\n",
" <td>14.4</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>9009.280</td>\n",
" <td>2015.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Russia</th>\n",
" <td>15.0</td>\n",
" <td>3.8</td>\n",
" <td>2.5</td>\n",
" <td>15.1</td>\n",
" <td>94.0</td>\n",
" <td>0.16</td>\n",
" <td>69.0</td>\n",
" <td>12.8</td>\n",
" <td>19292.0</td>\n",
" <td>3412.0</td>\n",
" <td>...</td>\n",
" <td>14.97</td>\n",
" <td>65.0</td>\n",
" <td>56.0</td>\n",
" <td>16.0</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>9054.914</td>\n",
" <td>2015.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Turkey</th>\n",
" <td>35.0</td>\n",
" <td>5.0</td>\n",
" <td>5.5</td>\n",
" <td>12.7</td>\n",
" <td>34.0</td>\n",
" <td>40.86</td>\n",
" <td>50.0</td>\n",
" <td>1.2</td>\n",
" <td>14095.0</td>\n",
" <td>3251.0</td>\n",
" <td>...</td>\n",
" <td>13.42</td>\n",
" <td>88.0</td>\n",
" <td>62.0</td>\n",
" <td>16.4</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>9437.372</td>\n",
" <td>2013.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Hungary</th>\n",
" <td>15.0</td>\n",
" <td>3.6</td>\n",
" <td>7.9</td>\n",
" <td>4.8</td>\n",
" <td>82.0</td>\n",
" <td>3.19</td>\n",
" <td>58.0</td>\n",
" <td>1.3</td>\n",
" <td>15442.0</td>\n",
" <td>13277.0</td>\n",
" <td>...</td>\n",
" <td>15.04</td>\n",
" <td>62.0</td>\n",
" <td>77.0</td>\n",
" <td>17.6</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>12239.894</td>\n",
" <td>2015.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Poland</th>\n",
" <td>33.0</td>\n",
" <td>1.4</td>\n",
" <td>10.8</td>\n",
" <td>3.2</td>\n",
" <td>90.0</td>\n",
" <td>7.41</td>\n",
" <td>60.0</td>\n",
" <td>0.9</td>\n",
" <td>17852.0</td>\n",
" <td>10919.0</td>\n",
" <td>...</td>\n",
" <td>14.20</td>\n",
" <td>55.0</td>\n",
" <td>79.0</td>\n",
" <td>18.4</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>12495.334</td>\n",
" <td>2014.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Chile</th>\n",
" <td>46.0</td>\n",
" <td>6.9</td>\n",
" <td>2.0</td>\n",
" <td>9.4</td>\n",
" <td>57.0</td>\n",
" <td>15.42</td>\n",
" <td>62.0</td>\n",
" <td>4.4</td>\n",
" <td>14533.0</td>\n",
" <td>17733.0</td>\n",
" <td>...</td>\n",
" <td>14.41</td>\n",
" <td>49.0</td>\n",
" <td>73.0</td>\n",
" <td>16.5</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>13340.905</td>\n",
" <td>2014.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Slovak Republic</th>\n",
" <td>13.0</td>\n",
" <td>3.0</td>\n",
" <td>6.6</td>\n",
" <td>0.6</td>\n",
" <td>92.0</td>\n",
" <td>7.02</td>\n",
" <td>60.0</td>\n",
" <td>1.2</td>\n",
" <td>17503.0</td>\n",
" <td>8663.0</td>\n",
" <td>...</td>\n",
" <td>14.99</td>\n",
" <td>59.0</td>\n",
" <td>81.0</td>\n",
" <td>16.3</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>15991.736</td>\n",
" <td>2015.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Czech Republic</th>\n",
" <td>16.0</td>\n",
" <td>2.8</td>\n",
" <td>6.8</td>\n",
" <td>0.9</td>\n",
" <td>92.0</td>\n",
" <td>6.98</td>\n",
" <td>68.0</td>\n",
" <td>0.8</td>\n",
" <td>18404.0</td>\n",
" <td>17299.0</td>\n",
" <td>...</td>\n",
" <td>14.98</td>\n",
" <td>59.0</td>\n",
" <td>85.0</td>\n",
" <td>18.1</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>17256.918</td>\n",
" <td>2015.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Estonia</th>\n",
" <td>9.0</td>\n",
" <td>5.5</td>\n",
" <td>3.3</td>\n",
" <td>8.1</td>\n",
" <td>90.0</td>\n",
" <td>3.30</td>\n",
" <td>68.0</td>\n",
" <td>4.8</td>\n",
" <td>15167.0</td>\n",
" <td>7680.0</td>\n",
" <td>...</td>\n",
" <td>14.90</td>\n",
" <td>64.0</td>\n",
" <td>79.0</td>\n",
" <td>17.5</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>17288.083</td>\n",
" <td>2014.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Greece</th>\n",
" <td>27.0</td>\n",
" <td>3.7</td>\n",
" <td>6.5</td>\n",
" <td>0.7</td>\n",
" <td>68.0</td>\n",
" <td>6.16</td>\n",
" <td>49.0</td>\n",
" <td>1.6</td>\n",
" <td>18575.0</td>\n",
" <td>14579.0</td>\n",
" <td>...</td>\n",
" <td>14.91</td>\n",
" <td>64.0</td>\n",
" <td>69.0</td>\n",
" <td>18.6</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>18064.288</td>\n",
" <td>2014.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Portugal</th>\n",
" <td>18.0</td>\n",
" <td>5.7</td>\n",
" <td>6.5</td>\n",
" <td>0.9</td>\n",
" <td>38.0</td>\n",
" <td>9.62</td>\n",
" <td>61.0</td>\n",
" <td>1.1</td>\n",
" <td>20086.0</td>\n",
" <td>31245.0</td>\n",
" <td>...</td>\n",
" <td>14.95</td>\n",
" <td>58.0</td>\n",
" <td>86.0</td>\n",
" <td>17.6</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>19121.592</td>\n",
" <td>2014.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Slovenia</th>\n",
" <td>26.0</td>\n",
" <td>3.9</td>\n",
" <td>10.3</td>\n",
" <td>0.5</td>\n",
" <td>85.0</td>\n",
" <td>5.63</td>\n",
" <td>63.0</td>\n",
" <td>0.4</td>\n",
" <td>19326.0</td>\n",
" <td>18465.0</td>\n",
" <td>...</td>\n",
" <td>14.62</td>\n",
" <td>52.0</td>\n",
" <td>88.0</td>\n",
" <td>18.4</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>20732.482</td>\n",
" <td>2015.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Spain</th>\n",
" <td>24.0</td>\n",
" <td>4.2</td>\n",
" <td>7.3</td>\n",
" <td>0.1</td>\n",
" <td>55.0</td>\n",
" <td>5.89</td>\n",
" <td>56.0</td>\n",
" <td>0.6</td>\n",
" <td>22477.0</td>\n",
" <td>24774.0</td>\n",
" <td>...</td>\n",
" <td>16.06</td>\n",
" <td>69.0</td>\n",
" <td>71.0</td>\n",
" <td>17.6</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>25864.721</td>\n",
" <td>2014.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Korea</th>\n",
" <td>30.0</td>\n",
" <td>2.1</td>\n",
" <td>10.4</td>\n",
" <td>4.2</td>\n",
" <td>82.0</td>\n",
" <td>18.72</td>\n",
" <td>64.0</td>\n",
" <td>1.1</td>\n",
" <td>19510.0</td>\n",
" <td>29091.0</td>\n",
" <td>...</td>\n",
" <td>14.63</td>\n",
" <td>76.0</td>\n",
" <td>78.0</td>\n",
" <td>17.5</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>27195.197</td>\n",
" <td>2014.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Italy</th>\n",
" <td>21.0</td>\n",
" <td>4.7</td>\n",
" <td>5.0</td>\n",
" <td>1.1</td>\n",
" <td>57.0</td>\n",
" <td>3.66</td>\n",
" <td>56.0</td>\n",
" <td>0.7</td>\n",
" <td>25166.0</td>\n",
" <td>54987.0</td>\n",
" <td>...</td>\n",
" <td>14.98</td>\n",
" <td>75.0</td>\n",
" <td>71.0</td>\n",
" <td>16.8</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>29866.581</td>\n",
" <td>2015.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Japan</th>\n",
" <td>24.0</td>\n",
" <td>1.4</td>\n",
" <td>7.3</td>\n",
" <td>6.4</td>\n",
" <td>94.0</td>\n",
" <td>22.26</td>\n",
" <td>72.0</td>\n",
" <td>0.3</td>\n",
" <td>26111.0</td>\n",
" <td>86764.0</td>\n",
" <td>...</td>\n",
" <td>14.93</td>\n",
" <td>53.0</td>\n",
" <td>85.0</td>\n",
" <td>16.3</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>32485.545</td>\n",
" <td>2015.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Israel</th>\n",
" <td>21.0</td>\n",
" <td>6.4</td>\n",
" <td>2.5</td>\n",
" <td>3.7</td>\n",
" <td>85.0</td>\n",
" <td>16.03</td>\n",
" <td>67.0</td>\n",
" <td>2.3</td>\n",
" <td>22104.0</td>\n",
" <td>52933.0</td>\n",
" <td>...</td>\n",
" <td>14.48</td>\n",
" <td>68.0</td>\n",
" <td>68.0</td>\n",
" <td>15.8</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>35343.336</td>\n",
" <td>2015.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>New Zealand</th>\n",
" <td>11.0</td>\n",
" <td>2.2</td>\n",
" <td>10.3</td>\n",
" <td>0.2</td>\n",
" <td>74.0</td>\n",
" <td>13.87</td>\n",
" <td>73.0</td>\n",
" <td>1.2</td>\n",
" <td>23815.0</td>\n",
" <td>28290.0</td>\n",
" <td>...</td>\n",
" <td>14.87</td>\n",
" <td>77.0</td>\n",
" <td>89.0</td>\n",
" <td>18.1</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>37044.891</td>\n",
" <td>2015.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>France</th>\n",
" <td>12.0</td>\n",
" <td>5.0</td>\n",
" <td>3.5</td>\n",
" <td>0.5</td>\n",
" <td>73.0</td>\n",
" <td>8.15</td>\n",
" <td>64.0</td>\n",
" <td>0.6</td>\n",
" <td>28799.0</td>\n",
" <td>48741.0</td>\n",
" <td>...</td>\n",
" <td>15.33</td>\n",
" <td>80.0</td>\n",
" <td>82.0</td>\n",
" <td>16.4</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>37675.006</td>\n",
" <td>2015.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Belgium</th>\n",
" <td>21.0</td>\n",
" <td>6.6</td>\n",
" <td>4.5</td>\n",
" <td>2.0</td>\n",
" <td>72.0</td>\n",
" <td>4.57</td>\n",
" <td>62.0</td>\n",
" <td>1.1</td>\n",
" <td>28307.0</td>\n",
" <td>83876.0</td>\n",
" <td>...</td>\n",
" <td>15.71</td>\n",
" <td>89.0</td>\n",
" <td>87.0</td>\n",
" <td>18.9</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>40106.632</td>\n",
" <td>2014.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Germany</th>\n",
" <td>16.0</td>\n",
" <td>3.6</td>\n",
" <td>4.5</td>\n",
" <td>0.1</td>\n",
" <td>86.0</td>\n",
" <td>5.25</td>\n",
" <td>73.0</td>\n",
" <td>0.5</td>\n",
" <td>31252.0</td>\n",
" <td>50394.0</td>\n",
" <td>...</td>\n",
" <td>15.31</td>\n",
" <td>72.0</td>\n",
" <td>95.0</td>\n",
" <td>18.2</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>40996.511</td>\n",
" <td>2014.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Finland</th>\n",
" <td>15.0</td>\n",
" <td>2.4</td>\n",
" <td>9.0</td>\n",
" <td>0.6</td>\n",
" <td>85.0</td>\n",
" <td>3.58</td>\n",
" <td>69.0</td>\n",
" <td>1.4</td>\n",
" <td>27927.0</td>\n",
" <td>18761.0</td>\n",
" <td>...</td>\n",
" <td>14.89</td>\n",
" <td>69.0</td>\n",
" <td>94.0</td>\n",
" <td>19.7</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>41973.988</td>\n",
" <td>2014.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Canada</th>\n",
" <td>15.0</td>\n",
" <td>1.3</td>\n",
" <td>10.5</td>\n",
" <td>0.2</td>\n",
" <td>89.0</td>\n",
" <td>3.94</td>\n",
" <td>72.0</td>\n",
" <td>1.5</td>\n",
" <td>29365.0</td>\n",
" <td>67913.0</td>\n",
" <td>...</td>\n",
" <td>14.25</td>\n",
" <td>61.0</td>\n",
" <td>91.0</td>\n",
" <td>17.2</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>43331.961</td>\n",
" <td>2015.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Netherlands</th>\n",
" <td>30.0</td>\n",
" <td>4.9</td>\n",
" <td>6.1</td>\n",
" <td>0.0</td>\n",
" <td>73.0</td>\n",
" <td>0.45</td>\n",
" <td>74.0</td>\n",
" <td>0.9</td>\n",
" <td>27888.0</td>\n",
" <td>77961.0</td>\n",
" <td>...</td>\n",
" <td>15.44</td>\n",
" <td>75.0</td>\n",
" <td>92.0</td>\n",
" <td>18.7</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>43603.115</td>\n",
" <td>2014.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Austria</th>\n",
" <td>27.0</td>\n",
" <td>3.4</td>\n",
" <td>7.1</td>\n",
" <td>1.0</td>\n",
" <td>83.0</td>\n",
" <td>7.61</td>\n",
" <td>72.0</td>\n",
" <td>0.4</td>\n",
" <td>31173.0</td>\n",
" <td>49887.0</td>\n",
" <td>...</td>\n",
" <td>14.46</td>\n",
" <td>75.0</td>\n",
" <td>94.0</td>\n",
" <td>17.0</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>43724.031</td>\n",
" <td>2015.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>United Kingdom</th>\n",
" <td>13.0</td>\n",
" <td>1.9</td>\n",
" <td>11.5</td>\n",
" <td>0.2</td>\n",
" <td>78.0</td>\n",
" <td>12.70</td>\n",
" <td>71.0</td>\n",
" <td>0.3</td>\n",
" <td>27029.0</td>\n",
" <td>60778.0</td>\n",
" <td>...</td>\n",
" <td>14.83</td>\n",
" <td>66.0</td>\n",
" <td>88.0</td>\n",
" <td>16.4</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>43770.688</td>\n",
" <td>2015.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Sweden</th>\n",
" <td>10.0</td>\n",
" <td>5.1</td>\n",
" <td>10.9</td>\n",
" <td>0.0</td>\n",
" <td>88.0</td>\n",
" <td>1.13</td>\n",
" <td>74.0</td>\n",
" <td>0.7</td>\n",
" <td>29185.0</td>\n",
" <td>60328.0</td>\n",
" <td>...</td>\n",
" <td>15.11</td>\n",
" <td>86.0</td>\n",
" <td>95.0</td>\n",
" <td>19.3</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>49866.266</td>\n",
" <td>2014.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Iceland</th>\n",
" <td>18.0</td>\n",
" <td>2.7</td>\n",
" <td>5.1</td>\n",
" <td>0.4</td>\n",
" <td>71.0</td>\n",
" <td>12.25</td>\n",
" <td>82.0</td>\n",
" <td>0.3</td>\n",
" <td>23965.0</td>\n",
" <td>43045.0</td>\n",
" <td>...</td>\n",
" <td>14.61</td>\n",
" <td>81.0</td>\n",
" <td>97.0</td>\n",
" <td>19.8</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>50854.583</td>\n",
" <td>2014.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Australia</th>\n",
" <td>13.0</td>\n",
" <td>2.1</td>\n",
" <td>10.5</td>\n",
" <td>1.1</td>\n",
" <td>76.0</td>\n",
" <td>14.02</td>\n",
" <td>72.0</td>\n",
" <td>0.8</td>\n",
" <td>31588.0</td>\n",
" <td>47657.0</td>\n",
" <td>...</td>\n",
" <td>14.41</td>\n",
" <td>93.0</td>\n",
" <td>91.0</td>\n",
" <td>19.4</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>50961.865</td>\n",
" <td>2014.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Ireland</th>\n",
" <td>13.0</td>\n",
" <td>2.6</td>\n",
" <td>9.0</td>\n",
" <td>0.2</td>\n",
" <td>75.0</td>\n",
" <td>4.20</td>\n",
" <td>60.0</td>\n",
" <td>0.8</td>\n",
" <td>23917.0</td>\n",
" <td>31580.0</td>\n",
" <td>...</td>\n",
" <td>15.19</td>\n",
" <td>70.0</td>\n",
" <td>80.0</td>\n",
" <td>17.6</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>51350.744</td>\n",
" <td>2014.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Denmark</th>\n",
" <td>15.0</td>\n",
" <td>3.9</td>\n",
" <td>7.0</td>\n",
" <td>0.9</td>\n",
" <td>78.0</td>\n",
" <td>2.03</td>\n",
" <td>73.0</td>\n",
" <td>0.3</td>\n",
" <td>26491.0</td>\n",
" <td>44488.0</td>\n",
" <td>...</td>\n",
" <td>16.06</td>\n",
" <td>88.0</td>\n",
" <td>94.0</td>\n",
" <td>19.4</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>52114.165</td>\n",
" <td>2015.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>United States</th>\n",
" <td>18.0</td>\n",
" <td>1.5</td>\n",
" <td>8.3</td>\n",
" <td>0.1</td>\n",
" <td>89.0</td>\n",
" <td>11.30</td>\n",
" <td>67.0</td>\n",
" <td>5.2</td>\n",
" <td>41355.0</td>\n",
" <td>145769.0</td>\n",
" <td>...</td>\n",
" <td>14.27</td>\n",
" <td>68.0</td>\n",
" <td>85.0</td>\n",
" <td>17.2</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>55805.204</td>\n",
" <td>2015.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Norway</th>\n",
" <td>16.0</td>\n",
" <td>3.3</td>\n",
" <td>8.1</td>\n",
" <td>0.3</td>\n",
" <td>82.0</td>\n",
" <td>2.82</td>\n",
" <td>75.0</td>\n",
" <td>0.6</td>\n",
" <td>33492.0</td>\n",
" <td>8797.0</td>\n",
" <td>...</td>\n",
" <td>15.56</td>\n",
" <td>78.0</td>\n",
" <td>94.0</td>\n",
" <td>17.9</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>74822.106</td>\n",
" <td>2015.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Switzerland</th>\n",
" <td>20.0</td>\n",
" <td>4.2</td>\n",
" <td>8.4</td>\n",
" <td>0.0</td>\n",
" <td>86.0</td>\n",
" <td>6.72</td>\n",
" <td>80.0</td>\n",
" <td>0.5</td>\n",
" <td>33491.0</td>\n",
" <td>108823.0</td>\n",
" <td>...</td>\n",
" <td>14.98</td>\n",
" <td>49.0</td>\n",
" <td>96.0</td>\n",
" <td>17.3</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>80675.308</td>\n",
" <td>2015.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Luxembourg</th>\n",
" <td>12.0</td>\n",
" <td>4.3</td>\n",
" <td>6.0</td>\n",
" <td>0.1</td>\n",
" <td>78.0</td>\n",
" <td>3.47</td>\n",
" <td>66.0</td>\n",
" <td>0.4</td>\n",
" <td>38951.0</td>\n",
" <td>61765.0</td>\n",
" <td>...</td>\n",
" <td>15.12</td>\n",
" <td>91.0</td>\n",
" <td>86.0</td>\n",
" <td>15.1</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>101994.093</td>\n",
" <td>2014.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>36 rows × 30 columns</p>\n",
"</div>"
],
"text/plain": [
" Air pollution Assault rate Consultation on rule-making \\\n",
"Country \n",
"Brazil 18.0 7.9 4.0 \n",
"Mexico 30.0 12.8 9.0 \n",
"Russia 15.0 3.8 2.5 \n",
"Turkey 35.0 5.0 5.5 \n",
"Hungary 15.0 3.6 7.9 \n",
"Poland 33.0 1.4 10.8 \n",
"Chile 46.0 6.9 2.0 \n",
"Slovak Republic 13.0 3.0 6.6 \n",
"Czech Republic 16.0 2.8 6.8 \n",
"Estonia 9.0 5.5 3.3 \n",
"Greece 27.0 3.7 6.5 \n",
"Portugal 18.0 5.7 6.5 \n",
"Slovenia 26.0 3.9 10.3 \n",
"Spain 24.0 4.2 7.3 \n",
"Korea 30.0 2.1 10.4 \n",
"Italy 21.0 4.7 5.0 \n",
"Japan 24.0 1.4 7.3 \n",
"Israel 21.0 6.4 2.5 \n",
"New Zealand 11.0 2.2 10.3 \n",
"France 12.0 5.0 3.5 \n",
"Belgium 21.0 6.6 4.5 \n",
"Germany 16.0 3.6 4.5 \n",
"Finland 15.0 2.4 9.0 \n",
"Canada 15.0 1.3 10.5 \n",
"Netherlands 30.0 4.9 6.1 \n",
"Austria 27.0 3.4 7.1 \n",
"United Kingdom 13.0 1.9 11.5 \n",
"Sweden 10.0 5.1 10.9 \n",
"Iceland 18.0 2.7 5.1 \n",
"Australia 13.0 2.1 10.5 \n",
"Ireland 13.0 2.6 9.0 \n",
"Denmark 15.0 3.9 7.0 \n",
"United States 18.0 1.5 8.3 \n",
"Norway 16.0 3.3 8.1 \n",
"Switzerland 20.0 4.2 8.4 \n",
"Luxembourg 12.0 4.3 6.0 \n",
"\n",
" Dwellings without basic facilities Educational attainment \\\n",
"Country \n",
"Brazil 6.7 45.0 \n",
"Mexico 4.2 37.0 \n",
"Russia 15.1 94.0 \n",
"Turkey 12.7 34.0 \n",
"Hungary 4.8 82.0 \n",
"Poland 3.2 90.0 \n",
"Chile 9.4 57.0 \n",
"Slovak Republic 0.6 92.0 \n",
"Czech Republic 0.9 92.0 \n",
"Estonia 8.1 90.0 \n",
"Greece 0.7 68.0 \n",
"Portugal 0.9 38.0 \n",
"Slovenia 0.5 85.0 \n",
"Spain 0.1 55.0 \n",
"Korea 4.2 82.0 \n",
"Italy 1.1 57.0 \n",
"Japan 6.4 94.0 \n",
"Israel 3.7 85.0 \n",
"New Zealand 0.2 74.0 \n",
"France 0.5 73.0 \n",
"Belgium 2.0 72.0 \n",
"Germany 0.1 86.0 \n",
"Finland 0.6 85.0 \n",
"Canada 0.2 89.0 \n",
"Netherlands 0.0 73.0 \n",
"Austria 1.0 83.0 \n",
"United Kingdom 0.2 78.0 \n",
"Sweden 0.0 88.0 \n",
"Iceland 0.4 71.0 \n",
"Australia 1.1 76.0 \n",
"Ireland 0.2 75.0 \n",
"Denmark 0.9 78.0 \n",
"United States 0.1 89.0 \n",
"Norway 0.3 82.0 \n",
"Switzerland 0.0 86.0 \n",
"Luxembourg 0.1 78.0 \n",
"\n",
" Employees working very long hours Employment rate \\\n",
"Country \n",
"Brazil 10.41 67.0 \n",
"Mexico 28.83 61.0 \n",
"Russia 0.16 69.0 \n",
"Turkey 40.86 50.0 \n",
"Hungary 3.19 58.0 \n",
"Poland 7.41 60.0 \n",
"Chile 15.42 62.0 \n",
"Slovak Republic 7.02 60.0 \n",
"Czech Republic 6.98 68.0 \n",
"Estonia 3.30 68.0 \n",
"Greece 6.16 49.0 \n",
"Portugal 9.62 61.0 \n",
"Slovenia 5.63 63.0 \n",
"Spain 5.89 56.0 \n",
"Korea 18.72 64.0 \n",
"Italy 3.66 56.0 \n",
"Japan 22.26 72.0 \n",
"Israel 16.03 67.0 \n",
"New Zealand 13.87 73.0 \n",
"France 8.15 64.0 \n",
"Belgium 4.57 62.0 \n",
"Germany 5.25 73.0 \n",
"Finland 3.58 69.0 \n",
"Canada 3.94 72.0 \n",
"Netherlands 0.45 74.0 \n",
"Austria 7.61 72.0 \n",
"United Kingdom 12.70 71.0 \n",
"Sweden 1.13 74.0 \n",
"Iceland 12.25 82.0 \n",
"Australia 14.02 72.0 \n",
"Ireland 4.20 60.0 \n",
"Denmark 2.03 73.0 \n",
"United States 11.30 67.0 \n",
"Norway 2.82 75.0 \n",
"Switzerland 6.72 80.0 \n",
"Luxembourg 3.47 66.0 \n",
"\n",
" Homicide rate Household net adjusted disposable income \\\n",
"Country \n",
"Brazil 25.5 11664.0 \n",
"Mexico 23.4 13085.0 \n",
"Russia 12.8 19292.0 \n",
"Turkey 1.2 14095.0 \n",
"Hungary 1.3 15442.0 \n",
"Poland 0.9 17852.0 \n",
"Chile 4.4 14533.0 \n",
"Slovak Republic 1.2 17503.0 \n",
"Czech Republic 0.8 18404.0 \n",
"Estonia 4.8 15167.0 \n",
"Greece 1.6 18575.0 \n",
"Portugal 1.1 20086.0 \n",
"Slovenia 0.4 19326.0 \n",
"Spain 0.6 22477.0 \n",
"Korea 1.1 19510.0 \n",
"Italy 0.7 25166.0 \n",
"Japan 0.3 26111.0 \n",
"Israel 2.3 22104.0 \n",
"New Zealand 1.2 23815.0 \n",
"France 0.6 28799.0 \n",
"Belgium 1.1 28307.0 \n",
"Germany 0.5 31252.0 \n",
"Finland 1.4 27927.0 \n",
"Canada 1.5 29365.0 \n",
"Netherlands 0.9 27888.0 \n",
"Austria 0.4 31173.0 \n",
"United Kingdom 0.3 27029.0 \n",
"Sweden 0.7 29185.0 \n",
"Iceland 0.3 23965.0 \n",
"Australia 0.8 31588.0 \n",
"Ireland 0.8 23917.0 \n",
"Denmark 0.3 26491.0 \n",
"United States 5.2 41355.0 \n",
"Norway 0.6 33492.0 \n",
"Switzerland 0.5 33491.0 \n",
"Luxembourg 0.4 38951.0 \n",
"\n",
" Household net financial wealth ... \\\n",
"Country ... \n",
"Brazil 6844.0 ... \n",
"Mexico 9056.0 ... \n",
"Russia 3412.0 ... \n",
"Turkey 3251.0 ... \n",
"Hungary 13277.0 ... \n",
"Poland 10919.0 ... \n",
"Chile 17733.0 ... \n",
"Slovak Republic 8663.0 ... \n",
"Czech Republic 17299.0 ... \n",
"Estonia 7680.0 ... \n",
"Greece 14579.0 ... \n",
"Portugal 31245.0 ... \n",
"Slovenia 18465.0 ... \n",
"Spain 24774.0 ... \n",
"Korea 29091.0 ... \n",
"Italy 54987.0 ... \n",
"Japan 86764.0 ... \n",
"Israel 52933.0 ... \n",
"New Zealand 28290.0 ... \n",
"France 48741.0 ... \n",
"Belgium 83876.0 ... \n",
"Germany 50394.0 ... \n",
"Finland 18761.0 ... \n",
"Canada 67913.0 ... \n",
"Netherlands 77961.0 ... \n",
"Austria 49887.0 ... \n",
"United Kingdom 60778.0 ... \n",
"Sweden 60328.0 ... \n",
"Iceland 43045.0 ... \n",
"Australia 47657.0 ... \n",
"Ireland 31580.0 ... \n",
"Denmark 44488.0 ... \n",
"United States 145769.0 ... \n",
"Norway 8797.0 ... \n",
"Switzerland 108823.0 ... \n",
"Luxembourg 61765.0 ... \n",
"\n",
" Time devoted to leisure and personal care Voter turnout \\\n",
"Country \n",
"Brazil 14.97 79.0 \n",
"Mexico 13.89 63.0 \n",
"Russia 14.97 65.0 \n",
"Turkey 13.42 88.0 \n",
"Hungary 15.04 62.0 \n",
"Poland 14.20 55.0 \n",
"Chile 14.41 49.0 \n",
"Slovak Republic 14.99 59.0 \n",
"Czech Republic 14.98 59.0 \n",
"Estonia 14.90 64.0 \n",
"Greece 14.91 64.0 \n",
"Portugal 14.95 58.0 \n",
"Slovenia 14.62 52.0 \n",
"Spain 16.06 69.0 \n",
"Korea 14.63 76.0 \n",
"Italy 14.98 75.0 \n",
"Japan 14.93 53.0 \n",
"Israel 14.48 68.0 \n",
"New Zealand 14.87 77.0 \n",
"France 15.33 80.0 \n",
"Belgium 15.71 89.0 \n",
"Germany 15.31 72.0 \n",
"Finland 14.89 69.0 \n",
"Canada 14.25 61.0 \n",
"Netherlands 15.44 75.0 \n",
"Austria 14.46 75.0 \n",
"United Kingdom 14.83 66.0 \n",
"Sweden 15.11 86.0 \n",
"Iceland 14.61 81.0 \n",
"Australia 14.41 93.0 \n",
"Ireland 15.19 70.0 \n",
"Denmark 16.06 88.0 \n",
"United States 14.27 68.0 \n",
"Norway 15.56 78.0 \n",
"Switzerland 14.98 49.0 \n",
"Luxembourg 15.12 91.0 \n",
"\n",
" Water quality Years in education \\\n",
"Country \n",
"Brazil 72.0 16.3 \n",
"Mexico 67.0 14.4 \n",
"Russia 56.0 16.0 \n",
"Turkey 62.0 16.4 \n",
"Hungary 77.0 17.6 \n",
"Poland 79.0 18.4 \n",
"Chile 73.0 16.5 \n",
"Slovak Republic 81.0 16.3 \n",
"Czech Republic 85.0 18.1 \n",
"Estonia 79.0 17.5 \n",
"Greece 69.0 18.6 \n",
"Portugal 86.0 17.6 \n",
"Slovenia 88.0 18.4 \n",
"Spain 71.0 17.6 \n",
"Korea 78.0 17.5 \n",
"Italy 71.0 16.8 \n",
"Japan 85.0 16.3 \n",
"Israel 68.0 15.8 \n",
"New Zealand 89.0 18.1 \n",
"France 82.0 16.4 \n",
"Belgium 87.0 18.9 \n",
"Germany 95.0 18.2 \n",
"Finland 94.0 19.7 \n",
"Canada 91.0 17.2 \n",
"Netherlands 92.0 18.7 \n",
"Austria 94.0 17.0 \n",
"United Kingdom 88.0 16.4 \n",
"Sweden 95.0 19.3 \n",
"Iceland 97.0 19.8 \n",
"Australia 91.0 19.4 \n",
"Ireland 80.0 17.6 \n",
"Denmark 94.0 19.4 \n",
"United States 85.0 17.2 \n",
"Norway 94.0 17.9 \n",
"Switzerland 96.0 17.3 \n",
"Luxembourg 86.0 15.1 \n",
"\n",
" Subject Descriptor \\\n",
"Country \n",
"Brazil Gross domestic product per capita, current prices \n",
"Mexico Gross domestic product per capita, current prices \n",
"Russia Gross domestic product per capita, current prices \n",
"Turkey Gross domestic product per capita, current prices \n",
"Hungary Gross domestic product per capita, current prices \n",
"Poland Gross domestic product per capita, current prices \n",
"Chile Gross domestic product per capita, current prices \n",
"Slovak Republic Gross domestic product per capita, current prices \n",
"Czech Republic Gross domestic product per capita, current prices \n",
"Estonia Gross domestic product per capita, current prices \n",
"Greece Gross domestic product per capita, current prices \n",
"Portugal Gross domestic product per capita, current prices \n",
"Slovenia Gross domestic product per capita, current prices \n",
"Spain Gross domestic product per capita, current prices \n",
"Korea Gross domestic product per capita, current prices \n",
"Italy Gross domestic product per capita, current prices \n",
"Japan Gross domestic product per capita, current prices \n",
"Israel Gross domestic product per capita, current prices \n",
"New Zealand Gross domestic product per capita, current prices \n",
"France Gross domestic product per capita, current prices \n",
"Belgium Gross domestic product per capita, current prices \n",
"Germany Gross domestic product per capita, current prices \n",
"Finland Gross domestic product per capita, current prices \n",
"Canada Gross domestic product per capita, current prices \n",
"Netherlands Gross domestic product per capita, current prices \n",
"Austria Gross domestic product per capita, current prices \n",
"United Kingdom Gross domestic product per capita, current prices \n",
"Sweden Gross domestic product per capita, current prices \n",
"Iceland Gross domestic product per capita, current prices \n",
"Australia Gross domestic product per capita, current prices \n",
"Ireland Gross domestic product per capita, current prices \n",
"Denmark Gross domestic product per capita, current prices \n",
"United States Gross domestic product per capita, current prices \n",
"Norway Gross domestic product per capita, current prices \n",
"Switzerland Gross domestic product per capita, current prices \n",
"Luxembourg Gross domestic product per capita, current prices \n",
"\n",
" Units Scale \\\n",
"Country \n",
"Brazil U.S. dollars Units \n",
"Mexico U.S. dollars Units \n",
"Russia U.S. dollars Units \n",
"Turkey U.S. dollars Units \n",
"Hungary U.S. dollars Units \n",
"Poland U.S. dollars Units \n",
"Chile U.S. dollars Units \n",
"Slovak Republic U.S. dollars Units \n",
"Czech Republic U.S. dollars Units \n",
"Estonia U.S. dollars Units \n",
"Greece U.S. dollars Units \n",
"Portugal U.S. dollars Units \n",
"Slovenia U.S. dollars Units \n",
"Spain U.S. dollars Units \n",
"Korea U.S. dollars Units \n",
"Italy U.S. dollars Units \n",
"Japan U.S. dollars Units \n",
"Israel U.S. dollars Units \n",
"New Zealand U.S. dollars Units \n",
"France U.S. dollars Units \n",
"Belgium U.S. dollars Units \n",
"Germany U.S. dollars Units \n",
"Finland U.S. dollars Units \n",
"Canada U.S. dollars Units \n",
"Netherlands U.S. dollars Units \n",
"Austria U.S. dollars Units \n",
"United Kingdom U.S. dollars Units \n",
"Sweden U.S. dollars Units \n",
"Iceland U.S. dollars Units \n",
"Australia U.S. dollars Units \n",
"Ireland U.S. dollars Units \n",
"Denmark U.S. dollars Units \n",
"United States U.S. dollars Units \n",
"Norway U.S. dollars Units \n",
"Switzerland U.S. dollars Units \n",
"Luxembourg U.S. dollars Units \n",
"\n",
" Country/Series-specific Notes \\\n",
"Country \n",
"Brazil See notes for: Gross domestic product, curren... \n",
"Mexico See notes for: Gross domestic product, curren... \n",
"Russia See notes for: Gross domestic product, curren... \n",
"Turkey See notes for: Gross domestic product, curren... \n",
"Hungary See notes for: Gross domestic product, curren... \n",
"Poland See notes for: Gross domestic product, curren... \n",
"Chile See notes for: Gross domestic product, curren... \n",
"Slovak Republic See notes for: Gross domestic product, curren... \n",
"Czech Republic See notes for: Gross domestic product, curren... \n",
"Estonia See notes for: Gross domestic product, curren... \n",
"Greece See notes for: Gross domestic product, curren... \n",
"Portugal See notes for: Gross domestic product, curren... \n",
"Slovenia See notes for: Gross domestic product, curren... \n",
"Spain See notes for: Gross domestic product, curren... \n",
"Korea See notes for: Gross domestic product, curren... \n",
"Italy See notes for: Gross domestic product, curren... \n",
"Japan See notes for: Gross domestic product, curren... \n",
"Israel See notes for: Gross domestic product, curren... \n",
"New Zealand See notes for: Gross domestic product, curren... \n",
"France See notes for: Gross domestic product, curren... \n",
"Belgium See notes for: Gross domestic product, curren... \n",
"Germany See notes for: Gross domestic product, curren... \n",
"Finland See notes for: Gross domestic product, curren... \n",
"Canada See notes for: Gross domestic product, curren... \n",
"Netherlands See notes for: Gross domestic product, curren... \n",
"Austria See notes for: Gross domestic product, curren... \n",
"United Kingdom See notes for: Gross domestic product, curren... \n",
"Sweden See notes for: Gross domestic product, curren... \n",
"Iceland See notes for: Gross domestic product, curren... \n",
"Australia See notes for: Gross domestic product, curren... \n",
"Ireland See notes for: Gross domestic product, curren... \n",
"Denmark See notes for: Gross domestic product, curren... \n",
"United States See notes for: Gross domestic product, curren... \n",
"Norway See notes for: Gross domestic product, curren... \n",
"Switzerland See notes for: Gross domestic product, curren... \n",
"Luxembourg See notes for: Gross domestic product, curren... \n",
"\n",
" GDP per capita Estimates Start After \n",
"Country \n",
"Brazil 8669.998 2014.0 \n",
"Mexico 9009.280 2015.0 \n",
"Russia 9054.914 2015.0 \n",
"Turkey 9437.372 2013.0 \n",
"Hungary 12239.894 2015.0 \n",
"Poland 12495.334 2014.0 \n",
"Chile 13340.905 2014.0 \n",
"Slovak Republic 15991.736 2015.0 \n",
"Czech Republic 17256.918 2015.0 \n",
"Estonia 17288.083 2014.0 \n",
"Greece 18064.288 2014.0 \n",
"Portugal 19121.592 2014.0 \n",
"Slovenia 20732.482 2015.0 \n",
"Spain 25864.721 2014.0 \n",
"Korea 27195.197 2014.0 \n",
"Italy 29866.581 2015.0 \n",
"Japan 32485.545 2015.0 \n",
"Israel 35343.336 2015.0 \n",
"New Zealand 37044.891 2015.0 \n",
"France 37675.006 2015.0 \n",
"Belgium 40106.632 2014.0 \n",
"Germany 40996.511 2014.0 \n",
"Finland 41973.988 2014.0 \n",
"Canada 43331.961 2015.0 \n",
"Netherlands 43603.115 2014.0 \n",
"Austria 43724.031 2015.0 \n",
"United Kingdom 43770.688 2015.0 \n",
"Sweden 49866.266 2014.0 \n",
"Iceland 50854.583 2014.0 \n",
"Australia 50961.865 2014.0 \n",
"Ireland 51350.744 2014.0 \n",
"Denmark 52114.165 2015.0 \n",
"United States 55805.204 2015.0 \n",
"Norway 74822.106 2015.0 \n",
"Switzerland 80675.308 2015.0 \n",
"Luxembourg 101994.093 2014.0 \n",
"\n",
"[36 rows x 30 columns]"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"full_country_stats = pd.merge(left=oecd_bli, right=gdp_per_capita, left_index=True, right_index=True)\n",
"full_country_stats.sort_values(by=\"GDP per capita\", inplace=True)\n",
"full_country_stats"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"GDP per capita 55805.204\n",
"Life satisfaction 7.200\n",
"Name: United States, dtype: float64"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"full_country_stats[[\"GDP per capita\", 'Life satisfaction']].loc[\"United States\"]"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
"remove_indices = [0, 1, 6, 8, 33, 34, 35]\n",
"keep_indices = list(set(range(36)) - set(remove_indices))\n",
"\n",
"sample_data = full_country_stats[[\"GDP per capita\", 'Life satisfaction']].iloc[keep_indices]\n",
"missing_data = full_country_stats[[\"GDP per capita\", 'Life satisfaction']].iloc[remove_indices]"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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jBgxInJsuP7E5MmTGThwYGT7xo0befTRR7nyyiu5/vrreeKJJ1JikVDjb5aAfSD8dTtVFp5MNVlZWZG15YqLi2nWrFlk32OPPca8efMoLy+nvLycQw45pNJsxL179zJjxgyeffZZZs6cSY8ePXj44Yc5//zz+fOf/0yfPn2S/n5Mw2EJ2AdsCJp7rr76aj766CPee+89Jk6cGNl+1VVXMXXqVMaOHUt6enql8cb33HMPrVo569GWl5eTlZXFO++8E0nMN954I+eccw5LliyxBGzqxRKwD3z22WdAahSdSTVTp8afJR8MBrnppptYtWoVmZmZlJWVcckll9CzZ0/AWavv2muvPeB1J5xwAieccIIrMZvGwxKwDyxYsADACvEkWNXZY1X17NmTLl260LJly8iKxhUVFQwZMoRTTz2VAQMG1FgKc+TIkYwcOTKhcZvGwxKwD7z77rteh9Ag1Wb22HPPPcfixYvZvHkzRx55JOvWrePbb7/l8MMPB35Yat4YN1gC9glbysYbl19+OarKLbfcwo4dO+jYsSMPP/wwxx9/vNehmUbANysdisjVIvKRiBSIyGoRuc7rmJKhqKgIgMGDB3scSfXCiSh8g/C6664jNzeX3NxcFi5cCNRu5lheXp5vv6oPHz6cF198kbfeeotnnnmGAQMGeB2SaSR80QIOlbnsCvRT1X0i0gFYLyJzVPUrj8NzVXgIWnQRba/84x//4NZbb6V9+/Z06dKF559/vtL+m266ibKyMk488UQAnn/++chy7GF33303Tz/9NO3ataO0tJQjjjgiUlYy2qBBg9i7d2+lbZ9//jl79uxJ8Lsyxr98kYBDtSTGRm3aAZRRZakjERkNjAbo1KlT0uJzk99WfRg9enTM6bg33ngjmzdv5r333qNNmzYMHDiQww477IBatHfccQcjRoygsLCQa665ptpzvf322wds69GjR73jNyaV+KYLooqHgBdU9cvojao6TVVzVDWnXbt2HoWWWEcddRSnnHKKL1rA1dm0aRM5OTls27aNoqIibr75Zg499FAKCwsZP348hx56KOCMtx07dmwNZ4MVK1aQk5NzwKNnz55s2LCBnJwcZs6c6fbbMsYXfNECjiYid+OUvBzmdSzJkJuby6pVq7wOI6ZjjjmGgoICunTpwvvvv8/PfvYzRo0aRWlpaaVxsFOnTmXgwIHc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\n",
"text/plain": [
"<Figure size 360x216 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"ax = sample_data.plot(kind='scatter', x=\"GDP per capita\", y='Life satisfaction', figsize=(5,3))\n",
"ax.set(xlabel='1인당 GDP', ylabel='삶의 만족도')\n",
"plt.axis([0, 60000, 0, 10])\n",
"position_text = {\n",
" \"Hungary\": (5000, 1, '헝가리'),\n",
" \"Korea\": (18000, 1.7, '대한민국'),\n",
" \"France\": (29000, 2.4, '프랑스'),\n",
" \"Australia\": (40000, 3.0, '호주'),\n",
" \"United States\": (52000, 3.8, '미국'),\n",
"}\n",
"for country, pos_text in position_text.items():\n",
" pos_data_x, pos_data_y = sample_data.loc[country]\n",
" country = \"U.S.\" if country == \"United States\" else country\n",
" plt.annotate(pos_text[2], xy=(pos_data_x, pos_data_y), xytext=pos_text[:2],\n",
" arrowprops=dict(facecolor='black', width=0.5, shrink=0.1, headwidth=5))\n",
" plt.plot(pos_data_x, pos_data_y, \"ro\")\n",
"save_fig('money_happy_scatterplot')\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"sample_data.to_csv(os.path.join(\"datasets\", \"lifesat\", \"lifesat.csv\"))"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>GDP per capita</th>\n",
" <th>Life satisfaction</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Country</th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Korea</th>\n",
" <td>27195.197</td>\n",
" <td>5.8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Australia</th>\n",
" <td>50961.865</td>\n",
" <td>7.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Hungary</th>\n",
" <td>12239.894</td>\n",
" <td>4.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>United States</th>\n",
" <td>55805.204</td>\n",
" <td>7.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>France</th>\n",
" <td>37675.006</td>\n",
" <td>6.5</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" GDP per capita Life satisfaction\n",
"Country \n",
"Korea 27195.197 5.8\n",
"Australia 50961.865 7.3\n",
"Hungary 12239.894 4.9\n",
"United States 55805.204 7.2\n",
"France 37675.006 6.5"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sample_data.loc[list(position_text.keys())]"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 360x216 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import numpy as np\n",
"\n",
"ax = sample_data.plot(kind='scatter', x=\"GDP per capita\", y='Life satisfaction', figsize=(5,3))\n",
"ax.set(xlabel='1인당 GDP', ylabel='삶의 만족도')\n",
"plt.axis([0, 60000, 0, 10])\n",
"X=np.linspace(0, 60000, 1000)\n",
"plt.plot(X, 2*X/100000, \"r\")\n",
"plt.text(40000, 2.7, r\"$\\theta_0 = 0$\", fontsize=14, color=\"r\")\n",
"plt.text(40000, 1.8, r\"$\\theta_1 = 2 \\times 10^{-5}$\", fontsize=14, color=\"r\")\n",
"plt.plot(X, 8 - 5*X/100000, \"g\")\n",
"plt.text(5000, 9.1, r\"$\\theta_0 = 8$\", fontsize=14, color=\"g\")\n",
"plt.text(5000, 8.2, r\"$\\theta_1 = -5 \\times 10^{-5}$\", fontsize=14, color=\"g\")\n",
"plt.plot(X, 4 + 5*X/100000, \"b\")\n",
"plt.text(5000, 3.5, r\"$\\theta_0 = 4$\", fontsize=14, color=\"b\")\n",
"plt.text(5000, 2.6, r\"$\\theta_1 = 5 \\times 10^{-5}$\", fontsize=14, color=\"b\")\n",
"save_fig('tweaking_model_params_plot')\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(4.853052800266436, 4.911544589158483e-05)"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from sklearn import linear_model\n",
"lin1 = linear_model.LinearRegression()\n",
"Xsample = np.c_[sample_data[\"GDP per capita\"]]\n",
"ysample = np.c_[sample_data[\"Life satisfaction\"]]\n",
"lin1.fit(Xsample, ysample)\n",
"t0, t1 = lin1.intercept_[0], lin1.coef_[0][0]\n",
"t0, t1"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 360x216 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"ax = sample_data.plot(kind='scatter', x=\"GDP per capita\", y='Life satisfaction', figsize=(5,3))\n",
"ax.set(xlabel='1인당 GDP', ylabel='삶의 만족도')\n",
"plt.axis([0, 60000, 0, 10])\n",
"X=np.linspace(0, 60000, 1000)\n",
"plt.plot(X, t0 + t1*X, \"b\")\n",
"plt.text(5000, 3.1, r\"$\\theta_0 = 4.85$\", fontsize=14, color=\"b\")\n",
"plt.text(5000, 2.2, r\"$\\theta_1 = 4.91 \\times 10^{-5}$\", fontsize=14, color=\"b\")\n",
"save_fig('best_fit_model_plot')\n",
"plt.show()\n"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"22587.49\n"
]
},
{
"data": {
"text/plain": [
"5.96244744318815"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"cyprus_gdp_per_capita = gdp_per_capita.loc[\"Cyprus\"][\"GDP per capita\"]\n",
"print(cyprus_gdp_per_capita)\n",
"cyprus_predicted_life_satisfaction = lin1.predict(cyprus_gdp_per_capita)[0][0]\n",
"cyprus_predicted_life_satisfaction"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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8j34YJgzJ16S6NsXVq2Kr//++3YIU2hr1ljNKub3v7f+vhdcYMl1xx3tl/yaa+LrvP++1bLXrLH3uf/+1td4550LH79rPT6rrOaRilWcXN6P7p1Ls87fvBn+85+6SfY//0muz+6wgyXWU09NTrR9+6ZvEEWJaLpmXBEoLy/XioqKUGOoqbFeBLNmWblin33g2WehT59Qw3IusqbOWc7kZxbz09FDOW/UIMDOtUye8T5/eGot+2xbRvsN231Vn42VzUTi9dnEaejQxh1d5kpEXlXV8vrXbBxvATdB27bw299awb621noaePINR//+0LWr1eq3285+FAstU+uupe87F6rw8cfQa0MZB2zqyiszuvPwtdai/egjgJ2AnZhdqgweDCNG2BFaLNHuumvd+mxL4Am4iRKvOHPhmjvX6n5heaRiFZOfsUJ8rHWXKJ9JMtu+P6usZvrcdwHhzAP75zVBx+qz6U6ErVsH0A7oSYdOtey2Wy1HH90mqUU7YIBEpj5bCK3orTbNbbfBLbdYL4dRo+xkXAEuxnNF5OTyfkmPqepL0Pna9yMVq7j1uWUAdCotaZZ9b9qUuT67eXN8vV69LLGefno8yVZ88R53vvIO448b2uyfQ9FR1aKc9tlnHy2UiRNVd95Z9bnnVN98U3XwYNWzzirY7r9y/fWqoHrhhdnXW79e9eKLVcvKVDt0UD3gANX585PXmTNHdcwY1T59bJt//GN+Ys51P7ffrtq/v2r79qp77636r381bD/9+9vrystVH3igyWHnxdoNm/Wu2ct07YbNBd/vlH8u1in/XNLgfX/xherLL6ved5/q5ZernnCC6qBBqm3a2N8TVEVUBw5UPf541QkTVO+9V3XuXNXlq9K/33x9DvnYLlChecxj3gKuRzGOhnbOOXb13vTp1jf5gQesK87ChfH+xhs2WFe2730vuXtaNnPn2onG1Is/3n03fpIkVS77eeghq5/fcYeNY3HHHXal3sKF1k0OkrvdJXrmGeuL/dJLVn//6CN7r3vsYRegREn3zqWhtPi6dy7lJ0cNybhc1T63dGWDjz+Or1daarXYvfe2waES67MdO9bd7tQ56Vv8+foc8nmEkTf5zO75nArVAh43TnXUqOR5M2bYr36hfPGFtTCee85iydYC3rhRtaRE9bHHkufvvbfqVVelf03nzvW3gGtrbRsnnKBa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\n",
"text/plain": [
"<Figure size 360x216 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"ax = sample_data.plot(kind='scatter', x=\"GDP per capita\", y='Life satisfaction', figsize=(5,3), s=1)\n",
"ax.set(xlabel='1인당 GDP', ylabel='삶의 만족도')\n",
"X=np.linspace(0, 60000, 1000)\n",
"plt.plot(X, t0 + t1*X, \"b\")\n",
"plt.axis([0, 60000, 0, 10])\n",
"plt.text(5000, 7.5, r\"$\\theta_0 = 4.85$\", fontsize=14, color=\"b\")\n",
"plt.text(5000, 6.6, r\"$\\theta_1 = 4.91 \\times 10^{-5}$\", fontsize=14, color=\"b\")\n",
"plt.plot([cyprus_gdp_per_capita, cyprus_gdp_per_capita], [0, cyprus_predicted_life_satisfaction], \"r--\")\n",
"plt.text(25000, 5.0, r\"예측 = 5.96\", fontsize=14, color=\"b\")\n",
"plt.plot(cyprus_gdp_per_capita, cyprus_predicted_life_satisfaction, \"ro\")\n",
"save_fig('cyprus_prediction_plot')\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>GDP per capita</th>\n",
" <th>Life satisfaction</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Country</th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Portugal</th>\n",
" <td>19121.592</td>\n",
" <td>5.1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Slovenia</th>\n",
" <td>20732.482</td>\n",
" <td>5.7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Spain</th>\n",
" <td>25864.721</td>\n",
" <td>6.5</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" GDP per capita Life satisfaction\n",
"Country \n",
"Portugal 19121.592 5.1\n",
"Slovenia 20732.482 5.7\n",
"Spain 25864.721 6.5"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sample_data[7:10]"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"5.766666666666667"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(5.1+5.7+6.5)/3"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>GDP per capita</th>\n",
" <th>Life satisfaction</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Country</th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Brazil</th>\n",
" <td>8669.998</td>\n",
" <td>7.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Mexico</th>\n",
" <td>9009.280</td>\n",
" <td>6.7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Chile</th>\n",
" <td>13340.905</td>\n",
" <td>6.7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Czech Republic</th>\n",
" <td>17256.918</td>\n",
" <td>6.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Norway</th>\n",
" <td>74822.106</td>\n",
" <td>7.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Switzerland</th>\n",
" <td>80675.308</td>\n",
" <td>7.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Luxembourg</th>\n",
" <td>101994.093</td>\n",
" <td>6.9</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" GDP per capita Life satisfaction\n",
"Country \n",
"Brazil 8669.998 7.0\n",
"Mexico 9009.280 6.7\n",
"Chile 13340.905 6.7\n",
"Czech Republic 17256.918 6.5\n",
"Norway 74822.106 7.4\n",
"Switzerland 80675.308 7.5\n",
"Luxembourg 101994.093 6.9"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"missing_data"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [],
"source": [
"position_text2 = {\n",
" \"Brazil\": (1000, 9.0, '브라질'),\n",
" \"Mexico\": (11000, 9.0, '멕시코'),\n",
" \"Chile\": (25000, 9.0, '칠레'),\n",
" \"Czech Republic\": (35000, 9.0, '체코'),\n",
" \"Norway\": (60000, 3, '노르웨이'),\n",
" \"Switzerland\": (72000, 3.0, '스위스'),\n",
" \"Luxembourg\": (90000, 3.0, '룩셈부르크'),\n",
"}"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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u7J//37uuecesrOzadq0Ke+++26hayQlJTFq1Cj+/vtv6tevzzvvvENERIRT3k9JmjRpwsGDB+32LV68mIULFxIYGEhERARLly4tNnvyvn37eOyxx1i3bl2Rx33dhx9+yOuvv2637+jRo8ybN49BgwYBJknjnj17APPvnpubW+77jB071lZmwWrv3r2cO3fOtt21a1eys7PtzomLi+Pw4cPlvp+3K67YZuOi9iul/IHDWusOBfanO6FtQgjhsUaOHMnIkSPt9uUvXjhv3jyefPJJBgwYwH333ce3335b6BpTp06lT58+jBkzhgULFvDCCy8U+qB0tj/++IMTJ05w5MgRW4b49PR0Zs6cya5duwgKCuLtt99mzpw5vPDCC0VeY9OmTRw/fpzs7OyLsuZUUFAQnTt3tsuw/+eff1KrVi0A4uPjSU1N5ddff2X06NH8/vvvRV5n7NixVKlSxbZ98OBBu6zV8+bNK/Q1BXvUiurxiY4uNSeeTyrTd6JSSgH/Bh4EaiqlZhU4xd/RDRNCCE82ffp03n77bWrUsC/LV7WqyY/aokULNm/eTIMGDdi/fz9NmhSuT7x582Zb0DBs2DCuv/565zc8n7S0NMaOHcv06dO5++67WbVqFdWqVaNy5crUrl2br776igYNGrB582Zuu+22Iq9x6NAh5s6dy5133sm4ceN46623MB8ZF4/Dhw+zevXqQpmBd+3aRUxMDE8//TT33nsvs2bNYvPmzdxwQ9HlFseNG0ebNm1s26+88ord8T59+nDy5Em7Egu1a9cusW0JCQmEhISU9y35hLKG2uOA2lrr80qpN7DPgRMKLHBG44QQwp02b95MTEyM3b4hQ4bw+OOPA/D0008XWxfq/vvvZ+XKlaxbt47XXnuNSy65pNA5BQMBVwUGubm5rFy5kpkzZ/LQQw/xr3/9iw4dOtC7d28mTpzITTfdxNq1a/nss8/466+/GD9+fKHCjGfPnuWdd97h3XffZcWKFbRr14433niDvn37MnXqVK688kqXvBd3+/rrr2nWrBlz5swp8vj111/P7bffzujRo1mxYgULFy4s8rwHHniAQ4cOERcXZ9t39913c/nll9ud9/HHHxc7D+rEiRMMGDAAAD8/PwICAggODi41CPJVpQY4SqmhwP8BXS0Vv/tYDmmtdWel1DVA0f9iQgjhpdq3b09Skim1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\n",
"text/plain": [
"<Figure size 576x216 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"ax = sample_data.plot(kind='scatter', x=\"GDP per capita\", y='Life satisfaction', figsize=(8,3))\n",
"ax.set(xlabel='1인당 GDP', ylabel='삶의 만족도')\n",
"plt.axis([0, 110000, 0, 10])\n",
"\n",
"for country, pos_text in position_text2.items():\n",
" pos_data_x, pos_data_y = missing_data.loc[country]\n",
" plt.annotate(pos_text[2], xy=(pos_data_x, pos_data_y), xytext=pos_text[:2],\n",
" arrowprops=dict(facecolor='black', width=0.5, shrink=0.1, headwidth=5))\n",
" plt.plot(pos_data_x, pos_data_y, \"rs\")\n",
"\n",
"X=np.linspace(0, 110000, 1000)\n",
"plt.plot(X, t0 + t1*X, \"b:\")\n",
"\n",
"lin_reg_full = linear_model.LinearRegression()\n",
"Xfull = np.c_[full_country_stats[\"GDP per capita\"]]\n",
"yfull = np.c_[full_country_stats[\"Life satisfaction\"]]\n",
"lin_reg_full.fit(Xfull, yfull)\n",
"\n",
"t0full, t1full = lin_reg_full.intercept_[0], lin_reg_full.coef_[0][0]\n",
"X = np.linspace(0, 110000, 1000)\n",
"plt.plot(X, t0full + t1full * X, \"k\")\n",
"\n",
"save_fig('representative_training_data_scatterplot')\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/haesun/anaconda3/envs/handson-ml/lib/python3.5/site-packages/numpy/core/_methods.py:116: RuntimeWarning: overflow encountered in multiply\n",
" x = um.multiply(x, x, out=x)\n",
"/home/haesun/anaconda3/envs/handson-ml/lib/python3.5/site-packages/numpy/core/_methods.py:117: RuntimeWarning: overflow encountered in reduce\n",
" ret = umr_sum(x, axis, dtype, out, keepdims)\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAADQCAYAAAAK/RswAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvFvnyVgAAIABJREFUeJzt3XeYW9W19/HvUpvicfe4Y2xjGzeMAdNNDSU033AJCSE9BCeXNzeVAIEbAqSRRkJuIIQQAkngktBiIJBA6KbaGHeDO+72eFynaVT2+4eksUbWzGgsaSSNf5/n0WN0zpG0fXzQWVp77b3NOYeIiIhId+IpdANEREREck0BjoiIiHQ7CnBERESk21GAIyIiIt2OAhwRERHpdhTgiIiISLejAEdERES6nS4NcMzMb2ZXm1nIzC5L2n6amc0zs4VmNtfMTujKdomIiEj34uviz7sScMCbiQ1m1gd4DLjQOfeGmZ0OzDKzUc65hi5un4iIiHQDXZrBcc7d6Zz7BRBJ2nwu8L5z7o34MS8Bm4EPdWXbREREpPvo6gxOOqOBVSnbVsW3t2JmM4GZAD169Dhm/Pjx+W+diBTUmu31RKKOMQOrWm3ftKuRXQ0hJg7tVaCWHRx2NTSzfmcjhw/qScCX39/EzZEo72/Zy/C+FfStDOT1s6RjyzbvoVeFn2F9KgrdlFbeeeed7c656o6OK4YAx2id0QEIkya75Jy7G7gbYNq0aW7u3Ln5b52IFNSJP36eE0f357aPT221/bZn3+c3L67k7R+ej8djBWpd9/f4uxv4xl8X8MTVpzNyQI+8ftaGnQ1M/8mL/PijU/jYtEPy+lnSsWk/eI5zJw3mhxcfUeimtGJmH2RyXDGMotoAjEjZNiK+XUQOYnXBMJt3N3FYSvYGoFeFn6iDuuZwAVomIsWuGAKcWcAUMzsCwMyOA8YDzxW0VSJScGtq6gE4rDp9gAOwpzHUpW0SkdJQ8C4q59xuM7sUuNfMHLHuqfOdc7sK3DQRKbCVNXsBGDNw/66RXuWxAGd3Y4jhfbu0WSJSAgoS4DjnTk95/iJwbCHaIiLFa9W2erweY0S//QOcnuWxr6/6YGoJn4hIcXRRiYiktaqmjkP7VaYdvVMZ8AJQrxocEUlDAY6IFK1VNXWMTlN/A9CjLJHBUYAjIvtTgCMiRSkcibJ2ewOHpam/gX0BToO6qEQkDQU4IlKUNuxspDkSTTuCCqBHvIuqThkcEUlDAY6IFKVVNXVA+iHiAJWBeAZHNTgikoYCHBEpSvsCnPRdVAGfh4DXQ526qEQkDQU4IlKUVm2rZ0BVgD7trElUWeZVBkdE0lKAIyJFqb0RVAk9Aj7NgyMiaSnAEZGi45xjZU3dfiuIp+pR5tUwcRFJSwGOiBSdmr1BdjWEGNNBBqcy4NNEfyKSlgIcESk6y7bE1qCaMKRXu8eV+z0EQ9GuaJKIlBgFOCJSdJZt3gPAxA4CnAq/l8aQanBEZH8KcESk6CzbvIehvcvpXelv97iKgAIcEUlPAY6IFJ1lm/cwvoPsDUC5z0uTAhwRSUMBjogUlWA4wqqaeiYM6dnhseUBBTgikp4CHBEpKiu21hGJug4LjCGRwVGRsYjsTwGOiBSVRIFxJgFORcBDYyiCcy7fzRKREqMAR0SKypJNe6jwexnZP/0aVMkq/F4iUUcoogBHRFpTgCMiReXd9bs4YnhvvB7r8NhyvxeAprDqcESkNQU4IlI0mkIRlm7azdEj+mZ0fEuA06wAR0RaU4AjIkVj8cbdhCKOo0f0yej4lgBHhcYikkIBjogUjXnrdgJwVIYZnIp4gKPJ/kQkVdEEOGb2bTNbaGZvxf+8vtBtEpGu9dbqHYzsX0l1z7KMjq8IxL7CFOCISCpfoRsAYGanAF8Hpjjnas2sHzDPzOY4554rcPNEpAuEIlHeXF3LxUcPy/g1Zb5EF5UCHBFprVgyODXxPxN56V7E2rY1+SAzm2lmc81sbk1NDSLSfby7bhf1zRGmj6nO+DVlvthXWHNYNTgi0lpRBDjOufeAmcAcM1sOzAe+7pxbmHLc3c65ac65adXVmX8Jikjxm72iBo/BiYf1z/g1iQyOAhwRSVUsXVTjgLuAs51zc81sDPCUmW1yzr1Z4OaJSJ4553h68RamjexH74r2VxBPFohncIIKcEQkRVFkcIAZwGzn3FwA59xK4HHg8oK2SkS6xPtb97JyWx0XHTm0U68rawlwVIMjIq0VS4CzHJhuZkMAzKwXcC7wfkFbJSJd4on5m/AYnDd5cKdeV+ZXDY6IpFcUXVTOuSfi3VL/NLNGoBL4B7FuKxEpcbV1QTbsbGR43wr6V5W12r6qpo4H317HmeMHMqAqs+HhCQGvuqi6o/U7GqitC7a6VkQ6qygCHADn3G3AbYVuh4jk1qz5G7n20YX4PR5C0Sg/vWQKM6YOa9nuXCxAmTC4Z6ffuyw+0Z+6qLqH55bGBs7+/pXV/P7V1S3XisiBKJYuKpGSVlsXZMH6XdTWBQ+qz+5IbV2Qax9dSFMoyt5gmKZQlGseXcjKrXtbtieyL3e/urrTfwcNE8+/uqYwALsamvP6ObV1QW59ZhkATeFoy7VSjNe1lIaiyeCIlKq2MhTJ2uqiyedn19YFWbJpD+CYNLR3QdL9G3Y24vd4aGJfAOL3eJi/fhc+a71aeMDrZcPOxk610+cxzNRFlS+z5m/klqeWAvCxu9/g5x89Mm8ZlQ07G/F5PATZl43zezydviZEEhTgiGQhOUORuIlf8+hCTh4zoOVLOZMAKNefPXvldr71t/kk7vt+r/GLS/N3c2rL8L4VNIbCrbY1hsJMHtqLxpRupVA0yvC+FZ16fzOjzOdRgJMHiesrFHEANIfdftd2Lg3vW0E42vrf8UCuCZEEdVGJZCGRoUiW+NUJbXfR5CLt3tZnL9m0h2seWUDyPT8UcXz7ka5J9yd3maXesACiDq788ztEouD1QFXAS7nfw08vmXJAN06/18PGnY3qysixjq7tXOtfVcZ3zpsAQLnPk9U1IQLK4IhkZXjfCkLt/Opsq4smF2n3tj4bHF7zAK0zJF6P5T3dP2v+Rq55ZAHOGaFoFK8ZqcmVqIOqch/3fGYaR43ok1XX3az5G9nbFObZJVt4/r2tKkrNoY6u7Xw4a+IgbnpyKVeeOprPnTRSwY1kRRmcHPvbnPV8/o9vs2FnQ6GbIl2gf1UZP71kCuV+Dz3LfPv96sznTaJ/VRnfnzGJgNeo8Hnwe41PHDuCxuYI4ej+o4oiUZfXm9PSTbv55l/nEww7miNRnIvNUOzztK61KfMZf7nieM6aOIj+VWUceUifA7qRJbJjAKGoU1FqjiWubb839u8X8FmXZVQO6Vep4EaypgxODtUHw9z85BLqmyP8+OllzDz1sJwXlaaav34Xv391NU3NEWZMHcqMI4diKcWbkl8zpg7j5DED0mYiEjeJa1JqcA70mli7vY5nFm9h+dY65q/fxdraepwDiNVJ/PH1tfzx9bX7vc7ngZ99ND83J+ccf5u7npufXEq8XKNFZcDHzFNHc8dLK/F7PDRHInzljLE5+dx8ZsckZsbUYexuDPHdWUv428wTmTqib8cvEikSCnByaP762GrI/XsE+MeiLbz8fg1h5/KWNv/b3PVc9+hC+lYG6FHm42sPzef5Zdv45cen4vUoyOkq2/Y28f6WvWze1cT89btwztG3R4ABVWWMru7BRUcObTMA6kjN3iZeXl7Dqm11/HPJVtZsr2/ZN3lYL75x1jjGDerJwF5l9Cr3E4k6tu1tYuW2Ol5fVctrK7fT0ByhZ7mfZZv3cPr4gfQqz3ytp45s3t3IdY8u4uXlNRw9og+LN+2mObwvyglFo1x+/AguP34ED7y1jjteXMndr6zmjpdWZv3/RSG6UA5GVeWx20SfykCBWyJdLeqgtq65ZCddzCrAMbNznHPP5qoxpW7++l0A7GkKAVDXHOsmyMfIg3nrdnLD44s46bAB/PZTR1MZ8HHniyv5xXPL6VPp55b/mJyzz5L91dYFeWjOep5csIn3tuxt99geAS+HDaxizMAqxg3qydj4fw+oKqMy4G3JuEWijtr6IGtq6lm0cTdPL9rMvHW7Wt4nNWRdua2O+z8/Yr/r6vDBPTllbDWfP3kUj83bwLWPLmRPY5jfvrya+17/gC+fdhifnz4yq0DHOcfDczfw/aeWEo46brpoIp85cSRPLdyUNltVWxfkzpdWEgzvm/cm2/8vEtmxr/11Ph4Mfxd2oYh0d7Pmb2RHfTPPL9vKS8u3lWR92wEHOGbmBZ4BvLlrTmlbunkPg3uVU9cUIhTJ31wO0ajju39fTHVVGXdcfjQ94zeq//7QWHY3hrhn9hpOG1fNhyYMysnn5VI06tjR0IzHjL6V/pLrTqsLhvntSyu559U1BMNRjhvVj+vOG8+Rw/twSL8KKuIz6+5qDLF1dxOrttezalsdK7fV8drK7Tw2b2Or9yvzeagIeIlEHQ3NESJRl+5jgUQn1D4dXVe1dUGuf3xRyzBfiM34+8t/L+cPs1dzxfTRfO7kkZ1avRtgXW0DN/x9Ea+u2M5xo/rxs49O4dD+PYC2u+vy1Z00Y+ow7nt9Lc3hKPd/4TgFNyI5kFrfFormd4qAfGkzwDGzy4GHnHPRpG3XAz9xziXu3qV1d8qzDTsbObR/JQs27Gq1vTkSyUnaPDFZ3MINu1iyaQ+3XzaV3pWtb07f/vDhzF65nRtnLeHkMQMo9xdH/LlldxO/fWklTy7czI762IyoA3uWceGUocw8dTSDe5cXuIUdm7N2B19/aD4bdzXykalD+cqZYxgzMP3yAv2ryjisuoqTxgxotX13Y4iV2+pYXVNHbX0zO+qbaQpF8JjRo8zL4F7lDO9XiQf4yoPvsjcYTvv+0HF3zIadjbiUgMnvMW69ZArPLN7CL/+9nHtmr+aK6aP43EkjO+yC2NsU4t7Za/ntyyvxmnHzjEl8+oRD8aR0h/avKtvvSzCf3UkV8SxYKX3xihSz7lLf1l4G58/A34Hk4UDfB36VtK3tn5sHoY07Gzh74iA+efwIvvbQ/JaTE3Xw2srtWaX3EpPF+cyob44wpHc5F00Zut9xZT4v371wIp+85y3+9MZaZp562AF/Zq48uWAT33lsEcFwhA9PHsLRI/oQdTB37Q7+9MZaHp67nu9eNJFLjxletBmd+15bwy1PLWV430oe+fKJTBvZ74Dep3eFn2MO7csxh7ZfrFlbF9wvIPB5wOvxEPBmVqzcI+AlmFL1G4w4jhjWm4uPHs7ijbv59fMr+NW/V3Dni6s4Z9Igzps8hGNH9qW6ZxlmRkNzmEUbdvPM4i08/u5GdjeGOG/yYG68aCJDemcenOS62DqZ3+thb1PbgaCIdE53qW9rL8BJd6cpzrtPEWhsjrC9rpnhfSs5ecwAPB5r6W4IRbJL7yVPFpdQUxdkZ0Nz2vc7ecwATj+8mt+8sJKPTTukoMWB97++lu89sYRjDu3LbR87sqUrA+CK6aP4oLaebz+ykGseWcjijbv53kWTiqpAOhJ1/PAfy7j3tTWcPXEQt33syJYuwXxqKyDoTLFyfXOEcr+n1XVT7vdQH68NmzysN3d/ZhrLNu/hr3PW8/f5G3lq4WYAAj4PPo/RED824PVw9sRBzDx1NEce0ueA/k7tjTbLht/radUNJyLZSXz/fPWh+fg9htdbmvVt7QU4bX1jBMws3MFrDzqbdsdm9xzapzye3rNW9RTZpPfSpQvLve2/37UfHs95t7/Kn974gK9+aP9huflaGynZg2+t43tPLOHsiYP4zeVHUebbv7vs0P49eOjKE7j1n+9x9yur2dkQ4lcfn8quhua8t68j0ajjukcX8vA7G/jCyaO44YIJOQm+Mj33bQUEmZ6Ptn5tpW6fMKQXN82YxA0XTGDRxt0sWL+LLbubCEcdvSv8TBrai2mH9tuvO/RApOu+ypbfa4QiWqpBJJdmTB3GTU8u5biR/fjhxZNLLriBzmdwAGqT9utnU1xtXayuZEBVGcP7VhBNOTXZpPfSpQvDrv1J2yYM6cWZ4wdy3+trufKU0VQE9gUX+VobKdnba3Zw46zFnH54NXd+8mj83rbnlPR4jOvPn0CfSj8//ef77Gpo5u01tQS83ry1ryPRqOP6xxfx8Dsb+PpZY/n6WeNy8r6dPffZBASd7Rbyez0cPaIvR5fYXCd+r4ewAhyRnPMY9K8KlGRwAwc2k/FpwHHAiTluS0lLzJ7av0dZy40FYr8us11TJXVGUX+G6cIvnTqaHfXNPPLO+lbtzNfaSAk76pu56oF5HNKvktsvO6rd4CbZVaeP4TMnHsqrK7YTDLu8tS8TP/nXezw0Zz3/feYYvpYmA3YguuLcp5oxdRivXXsmf/ni8bx27ZklN8wzEz6PuqhEZH/t3Xkc+2doHDDPOfcOMDdvrSpBtfGRQf2rYvUuHzlqOOMGVXHk8D45ubHMmDqMsycMoqrMx6vXnJHR+x03qh9HjejDPbPXtHSXdcUCejfOWszuxmbu/OTRnR6CfPFRw/ab2j+fC/yl839vr+N3L6/mUyeM4Jtnj8tZ4XNXL16YkM1yCKUg4DOalcERkRTtBTgG3G5mdyYeXdWoUpToouqbVNA7ZmAVtfXpC4E7KxiO8MqK7VxwxBAGZzh6xcz44vTRfFDbwAvvbQPyXx3/zKLNPLVwM189cywThvTq9OtH9KskNeHTldX7r66o4X/+vpjTxlVz00WTcjqqq7uMTCg26qISkXTaC3DuB/xARdLjT0CoC9pVcnbUB+lV7iPg23dKRw3owfodDTkpgJy7did1wTDnTOrc5H3nThrE0N7l3Dt7DdDx4pDZiK1Zs5jJw3rx5dMPbHh6/6oyfvbRIynzGUYsyr5lxqQuyT68v2UvV/1lHmMHVvGby4/Cl2HXWqbyee4PZuqiEpF02iwyds59PoPXF8943gJLl6kZNaCKcNSxYWcjowb0aOOVmXlleQ1+r3HC6P6dep3P6+GzJ43kx8+8x9JNe5g4tFfehuv+7/MrqK1v5r7PH5dx3U06ifY9vWgz33tiCS++X8Ol0w7J6xw52/Y28YX75lAR8HLv547N21DwfJ37g5nfp1FUIrK/bH6iRolleQTY0xSmV0q9yagBlQCs2V6X9fu/vLyGaYf2o0dZ50bn19YFmTy0N+V+D398bU3L9lzXZazZXs/9b6zlY8ccwuRhvbN+v/5VZXz6xJFcd954nlm8hd+9sjr7RrahsTnClffPZUd9M3/47LEM7ZPfLqPuXhPT1fwejwIcEdlPRgGOxX86m9kOM/MDuJhMsjwZM7NvmdliM5tjZnPNrDKX759PexpD9CpvHXwkCmyXbNyT1Xtv29PEe1v2cuq46k69btb8jZz8kxf48l/eIRSJ8ti7G9mepxE7P3p6GQGvh2+dm5vh1AlXnjKaC6YM4af/fI9XV9R0+vW1dUEWrN/V5kilaNTxjb/OZ+HG3dx+2VSOGJ59cCZdy+/1EHW0u46XiBx8OgxwzGwAsSUbAPqQp24pM7sZqAamOueOBc4CmvLxWfmwtynUanXmWfM3csGvXwXgV88v54n5G9t6aYdeWbEdgFPHDejgyH1ShyRHorEbwO/zkAl5fdV2nlu6lavOGMPAnrldU8osNiR+zMAqvvp/77J+R0PHL4pLBHifuuctTv7JC2n/DX7yr/f455It3HD+BM6ZNDiXTZcu4vfFvpKUxRGRZG0GOGZ2Zvw/jwXqUvaVmVkk5THiQBthZn2Ac4G9wGtm9jJwYvJCn8VuT1OYnvEMTiK4CIZjvygjUbKa7+S1ldsZUBVgwuDMRyWlG5Ls9RgPzVlPMBxp41WdF4k6vv/UMob1qeCK6aNy9r7JepT5+N2npxGOOP7rgXdoCnXc/kzmnEkeDp5oe0cZHyk+ietcAY6IJGsvg/OUmZ0KXAg8nWa/EZvwL/HYlEU7jgEmARucc8cDXwceNLNWQ3HMbGa862puTU3nuyvyaW9TqKUGJ1fzndTWBZm/bievr9rO8aP677dqc3vSDUn2WGyk05MLNneqHe15eO56lm3ew3Xnjc/ryuWjBvTgV5dNZfHGPVxx3xy27Wk/udfRv8G/lmzZbzh4JhkfKT6JCTDDGkklIknaC3B8wK3AOcBjafY759w7SY9slvMdCKx1zt0ff+N3geeBD6d84N3OuWnOuWnV1Z2rR8mn5nCUplCUnvEC4HTBRXMk0qn5ThI320/e8xZb9wSp8HeuHjzdkOSff3QK4wZVce/sNTiX/c2gLhjm588u55hD+3LhlCFZv18mn+fzGK+tquXEW59n1rsb2jy2vTlnXl5ew38/+C5HDOvNHZ88Gp/XU5BZhiU3EsP5lcERkWQdTfT3IPAS8AUz+y35W3tqG5BaiRsFcteXkkd7m2JTAyUyOMnBRXl8XpxvnDUu41EzyTfbxMrPTyzc1Ombbeo0/f9x1HC+cPIolm7ew1trdnTqvdK18XuzFrO9Lsh3L5yY1yHcic+79tGFhKP7uv2++fACtu9Nn8lpa86Zeet2MfNPcxkzsIr7P38cVfGgtFCzDEv2AvEAR7MZi0iyjpZqeJBY11EVsQLjfHkVGG1m0wHM7HDgTODZPH5mzuxpiiWveiaNokoEFz/+zyOA2MnMNEBJd7MNHODNNnVI8keOGkbfSj93vbzqgGtNZs3fyIm3Ps+j8zbiMVhXW9/p9+isdOckEoXrH19Mczj9jS05wJt9zRnsqG/mS3+ey/jBPfnzFce1Wh1bswyXrkSRsbqoRCRZR/0edcAHwNPOuU+QpxFUzrlm4HxiS0O8Syyw+qxzLn+Tn+RQfTAW4KTOUdO/qqwlbf7L51ZkXNdxIKuHZ6rc7+XYkf146f0aLv/9m52uNUlkUprjBdRRl10BdabSnROvB55dupWP3vU6K7eln2uof1UZ1T3LuP7xxdz05FLOOHwgD155wn7ZNM0yXLp8KjIWkTQymTXuJeA8YFE+GxKvuzkmn5+RL4kApyolwKmtC3LjE0uAePo8EgsGTh4zoN0bZ+Jm++1HFhAMO3yezFYPz0RtXZCXl8fWpUp0f2XSpoQNOxsx0i+Gmc9gIHFOrnl0YWxit2iUn14yhYDPwzWPLOScX77MR44axkemDmP8kJ4Yxoqte/nHos088s4GnIMbzp/AFdNHtVmsrVmGS5O/pQZHGRwR2ae9ACdxF5gDXN3O/oNeQzxQqAy0HkWU6FZpYt8vy0yDgRlTh1EfDPOdxxfzx88dyymdnOSvLRt2NhLwegmG99WEdyZAGdSrbL9h2l3VldNWAHLMof343cureOCtdTw2r3U2qtzv4cIpQ/nG2WMZ3rfjeSP7V5UpsCkxiVFUyuCISLL2ApzznXPNZrYSGJayLwR8I3/NKi2JACe1iyrbuo6lm/fSI+DlxMM6t/5Ue7Jt08NzN+CI3VTKfd6WTEpXBQXpApDqnmX8z4UT+dY5hzNn7Q7W1tbjHBzSr4ITRvenMtC55S2ktPg1ikpE0mhvsc3n4n/uMbMLUvZFgdvz3LaSUd8cy4akZnAS3Srf/NsCwlFHma9zXU1vr9nB0Yf2zemq1sldPZGoIxRxfP1DYzNq0/Kte/nfF1ZywZQh3DJjUtF15VQEvJw6rppTKZ4pBCT/1EUlIulkslRDGXBN/OkZ8YJgSdIQTAQ4+8eLM6YO42eXTgHgd5+axoypqcmw9HY1NPP+1r0cP6pf7hqa1KbXrj2TP37uWHpX+Hlm8RbCHfz6rQ+GueqBefSq8HPTRZO0YKQUDXVRiUg6maQGyoEbAJxzL+e3OaWpvo0anIQjh8dG2NfWZx4bzl27E4BjR+Y+wIFYJmf62Gp+ePFkFmzYzS//vbzNY6NRx7WPLmR1TR2/vmwq1T0V1EjxSGRwwlEFOCKyT9ouKjO7MelpeWxTq20AdzvntphZOfCCc+6kfDWy2DU0h/F6jDJf+njxkH6VeD3G6u3phzKn8/baHQS8Ho48JJ/TD8GFU4Yye8V27nhxFSP6VfLxY2NLitXWBdmws5Ehvcu5/fkVPLVwM9d+eDwnjcl8wU+RruCLZ3ASUxeIiEDbNTjHpjz/R5ptf4n/6QWOz2WjSk1Dc4TKgLfN2Xz9Xg8j+lWyZnvmE+K9vWYHU4b3zuv6Tgm3/MdkNu5q5NpHF7F8ax2HVffg5ieX4DUPTeEIUQdfPu0wvnza6Ly3RaSzAioyFpE00gY4zrmLurohpawhGKFHByN1Rg3oweqazAKchuYwizfuZuapXRNQBHwe/vDZY7n5ySX8YfaapD2xrjef17jylFF5X45B5ECoi0pE0snd8JyDWH1zmMqy9jMtowf0YG1tPdFox2n0+et2EY46BlSVddlijwGfhx9efAS3f3xqyy/ihAqfV2sySdFKdFGF1EUlIknaDHDM7O00j7e6snGloikUoaKDrqQxA6toCkUzChT+9MZaAG579v1OL6VwIGrrgi3rUk0fO4CUJZ+0JpMUtZYuKmVwRCRJe/0q04CZxCb1AwgAd+W9RSUoGI52WCszfkgvAJZu3sOI/m3PqFtbF+TZpVsBqDuApRQ6a9b8jVybsvxBuiURNBxcilVinqhQG4uuisjBqaMpXv+UmPcmPh+OApw0mkKRNkdQJYwbVIUZvLdlDx+ePLjN49Zsrye1Fytfaz0lFs5sCkVblpO45tGFvHbtmbx27ZlFN5GfSDr75sFRF5WI7NNegNPut4WZ1QD9iK1JdVB/swTD0f0W2kxVGfAxqn8P3tu8t93j9jaF9tuWry6i9tbK0iR+Uir86qISkTQ6yuAcYWbJXVTJzgX8uW9S6QmGopT5Oh7OPX5IT5Zs2tPuMQs27MaAgM8IePO71lO261KJFIOWAEdFxiKSpKPVxOekbGv5BnHOzctLi0pQMByh3N/xgLQJg3vx9KIt7G0K0bM8fWz4yvIaphzSh3s/Oy3vXUTJ61Kp3kZKlddjeEzDxEWktfYW29QQ8gw1ZZjBScxKvGD9bqaP3X9G4N2NIeav38X/O2NM2lWz82HG1GGcPGaA6m2kpPm8Hpo10Z+IJFEQkwPBcISyDDI4U0f0wQzmfrAj7f7XV26HMIoqAAARZUlEQVQn6uDUcV27GrYWzpRSF/B61EUlIq0owMmBYDja4SgqgF7lfg4f1JN3PtiZdv8rK2roWeZjap7XnxLpbvxeUxeViLSiACcHYgFOZmtGTRvZl3fX7SKSMhY8EnU8t3Qb08cOaCmaFJHM+LwerUUlIq3oTpqlUCRKJOoyKjIGOH5Uf+qCYeata53FeWt1Ldvrglw4ZWg+minSrQW8Hs2DIyKtpC0yNrM36OTcNs65k3LSohITjM+emmkG5/TDqwl4PTyzaAvHjuzXsv3JhZuoDHg5c/zAvLRTpDvzeU0ZHBFppa1RVJqxOEPBUGw5hUyKjAF6lvs5ZewA/rVkC9+9cAJmxs76ZmbN38R5k4dQEcgsUBKRffzqohKRFGkDHOfc/e29yMxOB250zp2Z6waZ2STgVeDXzrmbcv3+ubYvg5N5b98FU4bw/HvbeHXFdk4dV819r6+loTnCl04bna9minRrfnVRiUiKdu/KZtbHzD5uZp8ws+SxyxuAnN+NzawPcAfwf7l+73xpimdwOlpsM9kFU4YwpHc5P3p6Ga8sr+HuV1ZzzsRBjBvUM1/NFOnW/OqiEpEUbQY4ZjYBWAr8ArgVWGpmR8d31wA5nazFzDzA/cD18fcvCQeSwSnzefnRfx7Bym11fObet+ld4eeW/5icryaKdHt+r4ewMjgikqS9pRp+BjzknPsmgJndBPwvcLJzbreZlZtZILHaeA78AHjOOfe6mZ2T7gAzmwnMBBgxYkSOPjY7nS0yTjjj8IHM+srJLFi/m7MnDqK6pybZEzlQPo9pJmMRaaW9tMNJwC+Tnv8SONrMLP48CFTlohFmdgkwwjn3m/aOc87d7Zyb5pybVl3dtbP9tqWlyLgTGZyESUN7c/nxIxTciGQp4FORsYi01l4Gpw7olfS8FxB0ziXywCH2X2H8QJ0HTDCzN+PPh0Os4Ng5d2mOPiMvmhIZnE7U4IhIbnk9RjSqLioR2ae9AOcfwB1m9lUgQqzL6umk/VFiK45nzTn3xeTn8e4wSmIUVRYZHBHJDa8ZYQU4IpKkvbvydcSyOPOBhYAf+FrSfkeOApxSlqjByXQmYxHJPa/H9lv+REQObm1mcJxzu4ELzaw34HHOpa4QmbfgphQyNwlNLRkcdVGJFIrPqwBHRFrraB4cH3BumuAG51xf59ymvLWsRBzIMHERyS2vx6MAR0Ra6eiu3IMSmnSvEIIqMhYpOJ9HNTgi0lpbi23+Z/w/K2NP7WJiXVJvAieke41z7rG8tLDIBcMqMhYpNNXgiEiqtmpwfpH03x8AtxErKv4q8ADwXsrxR7TzXt1aU0hdVCKFFsvgaB4cEdmnrcU2R6XbbmZeYK1z7qiU7Y15aFtJCIYjBHwe9s1/KCJdzaMMjoikyCjrEp+9+A/AVcBAM7st5ZCDtgAlGIpSruyNSEH5FOCISIpMu5W+Agx2zjWZ2a9pPQdOD+CufDSuFATDURUYixSYV0XGIpKiwwDHzD4O3AhMj6/4/eH4LuecO8nMTgV+l8c2FrVgKKL6G5ECUwZHRFK1NYrqXWAP0ACcApzpnHs/XoMznlhG5w/xw5cAh3RBW4tSMBxVgCNSYF6PRxkcEWmlrTvz74DngaHEhop/IWlfo3PuAcCZ2dj4MRV5bWURC4YjmsVYpMCUwRGRVG2NokrU1NxiZpcC95nZRuBH7Ku9MWLDxY1YTc5BKRiOElAGR6SgEvPgOOc0olFEgAxqcJxzD5vZduAJYnPgDIvvqkSLbRKOOAJeBTgiheT1xL6KIlGHz3vQfy2JCBmOonLOvWhm3wfMOReNb9OsWkAoogyOSKElApxw1KEeYxGBTsw+7Jz7aT4bUqpCUUcPZXBECsoXD3Ci7qDtLReRFLozZykUjuJXSlykoJIzOCIioAAna+FoFL8yOCIFlcjgRCIKcEQkRnfmLIUiDp8CHJGC8sb/H1QGR0QSdGfOUiiiLiqRQvMljaISEQEFOFkLRaL4PTqNIoXktUQNjgZ3ikiM7sxZCkccfp8yOCKF5FUGR0RSKMDJUnMkik8ZHJGCSkzupwBHRBJ0Z85SOOJUgyNSYMrgiEiqoglwzOxLZrbAzOaa2UIzu6rQbcpErMi4aE6jyEHJp3lwRCRFxjMZ55OZeYGxwMnOuTozGwasNLNZzrmNBW5em5xz8anhFeCIFJI33k2sDI6IJBTFndk5F3HOXe2cq4tvqgWagVarypjZzHiGZ25NTU2XtzNVKD6pWEBdVCIFpQyOiKQqigAnjV8Bf3XOrUve6Jy72zk3zTk3rbq6ukBN2ycxJFUZHJHC2leDo2HiIhJTFF1UyczsB8Aw4JJCt6UjoXDs16JqcEQKq2UtKi3VICJxRRXgmNnPgcOAS5xzzYVuT0dC8V+LGkUlUlgtGRytJi4icUUR4JiZB7gT6Atc6pwLF7hJGQlFEgGOMjgihaSlGkQkVbHcmc8HvgSMBmab2Zvxx1kFble7EunwxJeriBSGV0XGIpKiKDI4zrmngJKLEprjGZyAr1jiRJGDU2I28YhqcEQkTnfmLOzL4Og0ihSSMjgikkp35izsq8EpueSTSLeitahEJJUCnCyoyFikOHgskcHRPDgiEqM7cxYSMxkrwBEprEShf1TDxEUkTnfmLIQjiZmM1UUlUkia6E9EUinAyUKzuqhEioJqcEQkle7MWQi3dFEpgyNSSBpFJSKpFOBkQUXGIsWhZR4cBTgiEqc7cxZCUWVwRIqBMjgikkoBThZCYWVwRIpBy2KbGiYuInG6M2chMeeGTwGOSEHtW2yzwA0RkaKhO3MWmlVkLFIUlMERkVQKcLKQmAfHr7WoRArKa6rBEZHWdGfOQssoKq0mLlJQHo/hMY2iEpF9dGfOQqhlNXF1UYkUms/jUQZHRFoowMmC5sERKR5ejymDIyItdGfOQjji8Ni+AkcRKRyvx7QWlYi0UICThVAkquyNSJHwekyriYtIC92dsxCKOAU4IkXC57GWualERHR3zkIsg6PuKZFioBocEUmmACcL4WhUsxiLFAmfanBEJEnR3J3N7DQzm2dmC81srpmdUOg2daQ57AgowBEpCl6vMjgiso+v0A0AMLM+wGPAhc65N8zsdGCWmY1yzjUUtnVti2Vw1EUlUgw0D46IJCuW9MO5wPvOuTcAnHMvAZuBDxWyUR0JRaKa5E+kSKgGR0SSmSuCYZVm9h1gonPu00nbHgVecc7dnrRtJjAz/nQysLhLGyoDgO2FbsRBRue86+mcdz2d88Io1fN+qHOuuqODiqKLCjAgkrItTEqGyTl3N3A3gJnNdc5N65rmCeicF4LOedfTOe96OueF0d3Pe7F0UW0ARqRsGxHfLiIiItIpxRLgzAKmmNkRAGZ2HDAeeK6grRIREZGSVBRdVM653WZ2KXCvmTli3VPnO+d2tfOyu7umdZJE57zr6Zx3PZ3zrqdzXhjd+rwXRZGxiIiISC4VSxeViIiISM4owBEREZFuRwGOiIiIdDslF+CU4ppVxcLMvmRmC+LnbaGZXRXfPtnMXotvW2RmFya9Juf7DkZmNsnMdpjZTfHnbV7H+dh3MDKzb5nZYjObEz8flTrv+WFm347//d+K/3l9fLu+W3LIzPxmdrWZhczssqTtXXpdl8w175wrmQfQB6gFTow/Px3YClQWum3F/gC8wM+BqvjzYUBj/M+VwMfj2ycAO4DhxALgnO4r9Hko0LnvA7wE3AHc1N51nI99hf77F+ic3wzcCviS/g366bzn5VyfAmwE+sef9wPWEluCR98tuT3XVwHfAl4FLku6trvsui6la77UMjgluWZVMXDORZxzVzvn6uKbaoFmYAxQAfwtftwy4BXgYuDYPOw7qJiZB7gfuB6oiW9u7zrOx76DisUW7z0X2Au8ZmYvAycCZ6Pzng+J67pv/M9exAKRJvTdklPOuTudc7+g9cz/Xf19UjLXfFHMg9MJo4FVKdtWxbdL5/wK+CswFFjt4qF4XOKcbs/DvoPND4DnnHOvm9k58W3tXceVedh3sDkGmAT81jl3vJkdBbxALIOp855jzrn3LLZO4BwzqwEGAl9A3y1dpau/T0rmmi+1DE5Ga1ZJ+8zsB8S6pr5C++c0H/sOGmZ2CTDCOfeb1F3onOfTQGCtc+5+AOfcu8Dz8X067zlmZuOAu4CznXPjgGnAj4BR6Hx3ha7+PimZf4Oia1AHtGZVlszs58R+3V7inGum/XOaj30Hk/OACWb2ppm9CXwx/vghOuf5tA3Yk7ItSqwOTec992YAs51zcwGccyuBx4Gz0PnuCl39HV46/waFLgLqzAPoTSxFeUT8+XHATqBPodtW7A9iwexdxLqlfEnbvcTSi+fFn48mVrQ3Nh/7Cn0eCvxvcFP80eZ1nI99hf57F+A8B4jVBEyPPz88fm6O1HnPy/meAawHhsSf9wLmAf9P3y15O+cvsa/IuEu/T0rpmi+pGhx3YGtWScz5wJeAucBsM0ts/x9iBXp3mNkt8W2fdc6tADCznO872HV0Hedj38HEOddsZucD98SLvKPErr8FOu+555x7wszGAP80s0ZiNRr/IPaD6lX03ZJXhfg+KZVrXmtRiYiISLdTajU4IiIiIh1SgCMiIiLdjgIcERER6XYU4IiIiEi3owBHREREuh0FOCJSMGbmzGxqhseOjB8/IN/tEpHSpwBHRA6YmR1iZnPjgUd5yj6vmV1rZivMbI+ZvWRmJ7bzXp+Kv0/q465OtulyM3vRzLaZ2cb45//ZzA6L7/+cmUXMbEv8sdHMnom/zpLe5/T4528xs01mttLM7jazkZ07SyJSCApwROSAmNkpwBvEZq1N57vEZrOdSWw24SeBf5vZ+Hbedh2x1aKTH19JOaaXmfVJDkbi7TEzewC4FbgTGOacGwZMj7/v+UmH1zjnBjvnBgNjiE1KdzPwqJl5Uz5vpHNuKLFFPOuBF+MrlotIEVOAIyIH6j1igcuDbey/ArjFOfeic26zc+4XwBzg8nbe0znnmlIe4ZRjVhGbGn5QyvYvAmcDxzvnHnbOheJvuNU5dwOxICbdBzY652YBpwFnAJ9r47jdwLXxz/1QO38HESkCCnBE5IA452qcc/XtHOIHmlO2NcW3tyuejakws35mNtrMphNbxRig2jlnzrktKS+7ErjLObe5jfaG2vtM59wm4AHgsnYOC8Qf7f29RaQIKMARkXx5ELjBzKaaWQ8z+zxwOvBwO685NL6+TRRoAFYDTwBfZV+A05ZJwLtZtnkJcFi6HfEanj8RW8/thSw/R0TyrKQW2xSRkvIdYoHKC8RWIF4GXOyca6tm5yHg7/H/jgLNyd1TGRT3GtAj6fgjgX/Fn1YAP3HO/SiD90jtElsbL/fZAjwFXOGcS81MiUiRUYAjInnhnAsCVwNXm5k/gy6iMFDXziH1wF+BYBv7lxHL4iTebwEwGMDMZhPrWurIVGBhyraRzrmmDF4rIkVEXVQikncdBTfJ4iOkbjKz98ysycyCZrYauA74pnNubxsv/TMw08z6HUgb411QnwDuOJDXi0hxUYAjInllZs+a2dVt7D4FWJGy7Wn2jWbqB/QCPgKMBl4zs7I23us3xEZpvW5mHzIzT/zzRwJD2mlfTzP7FPAS8APn3Isd/61EpNipi0pE8i1AG981zrnZyc/NrAI4EZjunHszaddCM/s6sBYYDyxI815hM7sQ+C/gx8AoM2smNqT8UeD+pMOrzWwL4IgVM88G/tM5N+eA/oYiUnTMOVfoNohIN2ZmLxErNL6tjUOCyV1YZvY6seHk1xEb1RQlNhnfjcCxwHjVxIhIR9RFJSJd4WZgbxuPa1OOvQB4nVhNzQ5gNzAL2Egss6PgRkQ6pAyOiIiIdDvK4IiIiEi3owBHREREuh0FOCIiItLtKMARERGRbkcBjoiIiHQ7CnBERESk21GAIyIiIt3O/wej2FLCBVFsqQAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 576x216 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"ax = full_country_stats.plot(kind='scatter', x=\"GDP per capita\", y='Life satisfaction', figsize=(8,3))\n",
"ax.set(xlabel='1인당 GDP', ylabel='삶의 만족도')\n",
"plt.axis([0, 110000, 0, 10])\n",
"\n",
"from sklearn import preprocessing\n",
"from sklearn import pipeline\n",
"\n",
"poly = preprocessing.PolynomialFeatures(degree=60, include_bias=False)\n",
"scaler = preprocessing.StandardScaler()\n",
"lin_reg2 = linear_model.LinearRegression()\n",
"\n",
"pipeline_reg = pipeline.Pipeline([('poly', poly), ('scal', scaler), ('lin', lin_reg2)])\n",
"pipeline_reg.fit(Xfull, yfull)\n",
"curve = pipeline_reg.predict(X[:, np.newaxis])\n",
"plt.plot(X, curve)\n",
"save_fig('overfitting_model_plot')\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Country\n",
"New Zealand 7.3\n",
"Sweden 7.2\n",
"Norway 7.4\n",
"Switzerland 7.5\n",
"Name: Life satisfaction, dtype: float64"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"full_country_stats.loc[[c for c in full_country_stats.index if \"W\" in c.upper()]][\"Life satisfaction\"]"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Subject Descriptor</th>\n",
" <th>Units</th>\n",
" <th>Scale</th>\n",
" <th>Country/Series-specific Notes</th>\n",
" <th>GDP per capita</th>\n",
" <th>Estimates Start After</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Country</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Botswana</th>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>6040.957</td>\n",
" <td>2008.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Kuwait</th>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>29363.027</td>\n",
" <td>2014.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Malawi</th>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>354.275</td>\n",
" <td>2011.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>New Zealand</th>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>37044.891</td>\n",
" <td>2015.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Norway</th>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>74822.106</td>\n",
" <td>2015.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Subject Descriptor Units \\\n",
"Country \n",
"Botswana Gross domestic product per capita, current prices U.S. dollars \n",
"Kuwait Gross domestic product per capita, current prices U.S. dollars \n",
"Malawi Gross domestic product per capita, current prices U.S. dollars \n",
"New Zealand Gross domestic product per capita, current prices U.S. dollars \n",
"Norway Gross domestic product per capita, current prices U.S. dollars \n",
"\n",
" Scale Country/Series-specific Notes \\\n",
"Country \n",
"Botswana Units See notes for: Gross domestic product, curren... \n",
"Kuwait Units See notes for: Gross domestic product, curren... \n",
"Malawi Units See notes for: Gross domestic product, curren... \n",
"New Zealand Units See notes for: Gross domestic product, curren... \n",
"Norway Units See notes for: Gross domestic product, curren... \n",
"\n",
" GDP per capita Estimates Start After \n",
"Country \n",
"Botswana 6040.957 2008.0 \n",
"Kuwait 29363.027 2014.0 \n",
"Malawi 354.275 2011.0 \n",
"New Zealand 37044.891 2015.0 \n",
"Norway 74822.106 2015.0 "
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"gdp_per_capita.loc[[c for c in gdp_per_capita.index if \"W\" in c.upper()]].head()"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"image/png": "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/Fo/5s2bR0xMDMuWLfMod5CSkkL9+vWd9aHWrFlDvXr1CjwvuMpEuBs2bBgNGzb02P7kk0/mOyv0Z5995vz3qFGjuPzyy/M938iRIxk5ciTZ2dkMGjSIyZMn069fP/bs2eMMiowxhIeH89NPP9GkSROstfz4449en+fmm2/2KpGxbds2n+f96aef2L17Nx9//DF169bl2WefJTk5mVdffZUrrriC5557jldffZXDhw9zzTXXcMcddxAbG8vevXt9Hq9GjRpe329HDTGH7777jp9++on777+fo0ePcscdd+R7X34PDXCUUqqauuqqq3jhhRd48MEHSU9PJyEhgfbt25OWlua178iRIz2qVhdWeXvChAls3bqV/fv3e6xft24dI0aMAODSSy8lOzub9PR0r/fHxsY6a0u99dZbzJkzh+3bt3sECwMGDCA1NZWgoCDnOkdrQlEtWbKEgQMHMmjQIDp16sSAAQO89tmwYYNHq05+fvvtN1q0aOGx7ttvv6V///4MGDAg31aIY8eOsWfPHrp27Vrg8VNTU/njH/9IaGgoP//8M1999RULFy4kMTHRuc/KlSvp1KkT11xzDdZaNmzYwP/+9z/n9qCgIL7//ns6duxIVlYW9erV49lnn/V5vqysLO6//35mz57NjBkzmD9/vrMYqMNdd93F66+/TufOnZk8eTKrV6/m6quv9poxujhycnKIiIhg1qxZ/Prrr+zcubPExyqIBjhKKVUOCmppKSvNmzfnzTffZNKkSdSsWZOlS5cSHBxMrVq1POo4DRs2jO3bt5OSkuJcd8MNN3DllVfme+x58+YBrhwch7xlEKy1XuvAuwVn0aJFrF271qv7Y9myZUXKWZkwYYJHF5XDo48+6mxBKCxoc3CvE+Xup59+olevXs7aUZ9++ik7d+7EGMOXX37JsGHDfL7vySefZMKECfj5SdprYmIi0dHRPProo4wYMYKcnBymTZvGpk2bmDVrFl26dGHmzJk8/PDDzlaf48ePk5iYyNmzZ2ncuDFv5P5AXXfddRw9epSjR4/SokULrr76ahISEli4cCH79u1zBit581vS09MZOnQoffr0YfLkydxwww2MHTuWt956y2O/qKgofv31V+rWrcuxY8cwxhAbG8vu3bt9ftbs7Gyv+3f+vKt2dpcuXYiJiaFOnTq0adOG0aNHU7duXQIDA6lV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\n",
"text/plain": [
"<Figure size 576x216 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(8,3))\n",
"\n",
"plt.xlabel(\"1인당 GDP\")\n",
"plt.ylabel('삶의 만족도')\n",
"\n",
"plt.plot(list(sample_data[\"GDP per capita\"]), list(sample_data[\"Life satisfaction\"]), \"bo\")\n",
"plt.plot(list(missing_data[\"GDP per capita\"]), list(missing_data[\"Life satisfaction\"]), \"rs\")\n",
"\n",
"X = np.linspace(0, 110000, 1000)\n",
"plt.plot(X, t0full + t1full * X, \"r--\", label=\"모든 데이터로 만든 선형 모델\")\n",
"plt.plot(X, t0 + t1*X, \"b:\", label=\"일부 데이터로 만든 선형 모델\")\n",
"\n",
"ridge = linear_model.Ridge(alpha=10**9.5)\n",
"Xsample = np.c_[sample_data[\"GDP per capita\"]]\n",
"ysample = np.c_[sample_data[\"Life satisfaction\"]]\n",
"ridge.fit(Xsample, ysample)\n",
"t0ridge, t1ridge = ridge.intercept_[0], ridge.coef_[0][0]\n",
"plt.plot(X, t0ridge + t1ridge * X, \"b\", label=\"일부 데이터로 만든 규제가 적용된 선형 모델\")\n",
"\n",
"plt.legend(loc=\"lower right\")\n",
"plt.axis([0, 110000, 0, 10])\n",
"save_fig('ridge_model_plot')\n",
"plt.show()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.5.5"
},
"nav_menu": {},
"toc": {
"navigate_menu": true,
"number_sections": true,
"sideBar": true,
"threshold": 6,
"toc_cell": false,
"toc_section_display": "block",
"toc_window_display": true
},
"toc_position": {
"height": "616px",
"left": "0px",
"right": "20px",
"top": "106px",
"width": "213px"
}
},
"nbformat": 4,
"nbformat_minor": 1
}