{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "**1장 – 한 눈에 보는 머신러닝**\n", "\n", "_이 노트북은 1장의 그림을 만들기 위한 것입니다._" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", " \n", "
\n", " 구글 코랩에서 실행하기\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 예제 1-1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "파이썬 2.x도 사용할 수 있지만 향후 이 버전은 더이상 지원되지 않습니다. 대신 파이썬 3을 사용세요.\n", "\n", "_번역서의 깃허브는 파이썬 3.7, 사이킷런 0.22.2에서 테스트했습니다._" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "execution": { "iopub.execute_input": "2021-10-23T06:48:27.360112Z", "iopub.status.busy": "2021-10-23T06:48:27.359373Z", "iopub.status.idle": "2021-10-23T06:48:27.362548Z", "shell.execute_reply": "2021-10-23T06:48:27.361751Z" }, "slideshow": { "slide_type": "-" } }, "outputs": [], "source": [ "# Python ≥3.5 이상이 권장됩니다\n", "import sys\n", "assert sys.version_info >= (3, 5)" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "execution": { "iopub.execute_input": "2021-10-23T06:48:27.366887Z", "iopub.status.busy": "2021-10-23T06:48:27.366222Z", "iopub.status.idle": "2021-10-23T06:48:27.872624Z", "shell.execute_reply": "2021-10-23T06:48:27.871702Z" } }, "outputs": [], "source": [ "# Scikit-Learn ≥0.20 이상이 권장됩니다\n", "import sklearn\n", "assert sklearn.__version__ >= \"0.20\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "이 함수는 OECD의 삶의 만족도(life satisfaction) 데이터와 IMF의 1인당 GDP(GDP per capita) 데이터를 합칩니다. 이는 번거로운 작업이고 머신러닝과는 관계가 없기 때문에 책 안에 포함시키지 않았습니다." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "execution": { "iopub.execute_input": "2021-10-23T06:48:27.884035Z", "iopub.status.busy": "2021-10-23T06:48:27.883134Z", "iopub.status.idle": "2021-10-23T06:48:27.886196Z", "shell.execute_reply": "2021-10-23T06:48:27.886642Z" } }, "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": { "execution": { "iopub.execute_input": "2021-10-23T06:48:27.893337Z", "iopub.status.busy": "2021-10-23T06:48:27.892639Z", "iopub.status.idle": "2021-10-23T06:48:27.894671Z", "shell.execute_reply": "2021-10-23T06:48:27.895135Z" } }, "outputs": [], "source": [ "import os\n", "datapath = os.path.join(\"datasets\", \"lifesat\", \"\")" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "execution": { "iopub.execute_input": "2021-10-23T06:48:27.901700Z", "iopub.status.busy": "2021-10-23T06:48:27.898894Z", "iopub.status.idle": "2021-10-23T06:48:28.157984Z", "shell.execute_reply": "2021-10-23T06:48:28.157249Z" } }, "outputs": [], "source": [ "# 주피터에 그래프를 깔끔하게 그리기 위해서\n", "%matplotlib inline\n", "import matplotlib as mpl\n", "mpl.rc('axes', labelsize=14)\n", "mpl.rc('xtick', labelsize=12)\n", "mpl.rc('ytick', labelsize=12)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "execution": { "iopub.execute_input": "2021-10-23T06:48:28.166265Z", "iopub.status.busy": "2021-10-23T06:48:28.165512Z", "iopub.status.idle": "2021-10-23T06:48:28.499932Z", "shell.execute_reply": "2021-10-23T06:48:28.500421Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Downloading oecd_bli_2015.csv\n", "Downloading gdp_per_capita.csv\n" ] } ], "source": [ "# 데이터 다운로드\n", "import urllib.request\n", "DOWNLOAD_ROOT = \"https://raw.githubusercontent.com/rickiepark/handson-ml2/master/\"\n", "os.makedirs(datapath, exist_ok=True)\n", "for filename in (\"oecd_bli_2015.csv\", \"gdp_per_capita.csv\"):\n", " print(\"Downloading\", filename)\n", " url = DOWNLOAD_ROOT + \"datasets/lifesat/\" + filename\n", " urllib.request.urlretrieve(url, datapath + filename)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "execution": { "iopub.execute_input": "2021-10-23T06:48:28.504956Z", "iopub.status.busy": "2021-10-23T06:48:28.503805Z", "iopub.status.idle": "2021-10-23T06:48:28.958883Z", "shell.execute_reply": "2021-10-23T06:48:28.958132Z" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "[[5.96242338]]\n" ] } ], "source": [ "# 예제 코드\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", "country_stats.plot(kind='scatter', x=\"GDP per capita\", y='Life satisfaction')\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": "markdown", "metadata": {}, "source": [ "이전 코드에서 선형 회귀 모델을 k-최근접 이웃 회귀(이 경우 k=3)로 바꾸려면 간단하게 다음 두 라인만 바꾸면 됩니다:\n", "\n", "```python\n", "import sklearn.linear_model\n", "model = sklearn.linear_model.LinearRegression()\n", "```\n", "\n", "아래와 같이 바꿉니다:\n", "\n", "```python\n", "import sklearn.neighbors\n", "model = sklearn.neighbors.KNeighborsRegressor(n_neighbors=3)\n", "```" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "execution": { "iopub.execute_input": "2021-10-23T06:48:28.966285Z", "iopub.status.busy": "2021-10-23T06:48:28.964917Z", "iopub.status.idle": "2021-10-23T06:48:28.982370Z", "shell.execute_reply": "2021-10-23T06:48:28.981619Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[5.76666667]]\n" ] } ], "source": [ "# 3-최근접 이웃 회귀 모델로 바꿉니다.\n", "import sklearn.neighbors\n", "model1 = sklearn.neighbors.KNeighborsRegressor(n_neighbors=3)\n", "\n", "# 모델을 훈련합니다.\n", "model1.fit(X,y)\n", "\n", "# 키프로스에 대한 예측을 만듭니다.\n", "print(model1.predict(X_new)) # 출력 [[5.76666667]]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 알림: 이후의 코드는 무시해도 좋습니다. 이 코드는 1장에 있는 그림을 생성하기 위한 것입니다." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "그림을 저장하기 위함 함수" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "execution": { "iopub.execute_input": "2021-10-23T06:48:28.991596Z", "iopub.status.busy": "2021-10-23T06:48:28.990194Z", "iopub.status.idle": "2021-10-23T06:48:28.993292Z", "shell.execute_reply": "2021-10-23T06:48:28.993837Z" } }, "outputs": [], "source": [ "# Where to save the figures\n", "PROJECT_ROOT_DIR = \".\"\n", "CHAPTER_ID = \"fundamentals\"\n", "IMAGES_PATH = os.path.join(PROJECT_ROOT_DIR, \"images\", CHAPTER_ID)\n", "os.makedirs(IMAGES_PATH, exist_ok=True)\n", "\n", "def save_fig(fig_id, tight_layout=True, fig_extension=\"png\", resolution=300):\n", " path = os.path.join(IMAGES_PATH, fig_id + \".\" + fig_extension)\n", " print(\"Saving figure\", fig_id)\n", " if tight_layout:\n", " plt.tight_layout()\n", " plt.savefig(path, format=fig_extension, dpi=resolution)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "노트북 출력을 동일하게 만들기 위해서" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "execution": { "iopub.execute_input": "2021-10-23T06:48:28.999763Z", "iopub.status.busy": "2021-10-23T06:48:28.998928Z", "iopub.status.idle": "2021-10-23T06:48:29.003409Z", "shell.execute_reply": "2021-10-23T06:48:29.001914Z" } }, "outputs": [], "source": [ "np.random.seed(42)" ] }, { "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": 11, "metadata": { "execution": { "iopub.execute_input": "2021-10-23T06:48:29.012995Z", "iopub.status.busy": "2021-10-23T06:48:29.010143Z", "iopub.status.idle": "2021-10-23T06:48:29.049739Z", "shell.execute_reply": "2021-10-23T06:48:29.048696Z" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
IndicatorAir pollutionAssault rateConsultation on rule-makingDwellings without basic facilitiesEducational attainmentEmployees working very long hoursEmployment rateHomicide rateHousehold net adjusted disposable incomeHousehold net financial wealth...Long-term unemployment ratePersonal earningsQuality of support networkRooms per personSelf-reported healthStudent skillsTime devoted to leisure and personal careVoter turnoutWater qualityYears in education
Country
Australia13.02.110.51.176.014.0272.00.831588.047657.0...1.0850449.092.02.385.0512.014.4193.091.019.4
Austria27.03.47.11.083.07.6172.00.431173.049887.0...1.1945199.089.01.669.0500.014.4675.094.017.0
\n", "

2 rows × 24 columns

\n", "
" ], "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 ... Long-term unemployment rate \\\n", "Country ... \n", "Australia 47657.0 ... 1.08 \n", "Austria 49887.0 ... 1.19 \n", "\n", "Indicator Personal earnings Quality of support network Rooms per person \\\n", "Country \n", "Australia 50449.0 92.0 2.3 \n", "Austria 45199.0 89.0 1.6 \n", "\n", "Indicator Self-reported health Student skills \\\n", "Country \n", "Australia 85.0 512.0 \n", "Austria 69.0 500.0 \n", "\n", "Indicator Time devoted to leisure and personal care Voter turnout \\\n", "Country \n", "Australia 14.41 93.0 \n", "Austria 14.46 75.0 \n", "\n", "Indicator Water quality Years in education \n", "Country \n", "Australia 91.0 19.4 \n", "Austria 94.0 17.0 \n", "\n", "[2 rows x 24 columns]" ] }, "execution_count": 11, "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": 12, "metadata": { "execution": { "iopub.execute_input": "2021-10-23T06:48:29.057629Z", "iopub.status.busy": "2021-10-23T06:48:29.056870Z", "iopub.status.idle": "2021-10-23T06:48:29.060686Z", "shell.execute_reply": "2021-10-23T06:48:29.061182Z" } }, "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": 12, "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": 13, "metadata": { "execution": { "iopub.execute_input": "2021-10-23T06:48:29.079339Z", "iopub.status.busy": "2021-10-23T06:48:29.078287Z", "iopub.status.idle": "2021-10-23T06:48:29.083316Z", "shell.execute_reply": "2021-10-23T06:48:29.083951Z" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Subject DescriptorUnitsScaleCountry/Series-specific NotesGDP per capitaEstimates Start After
Country
AfghanistanGross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...599.9942013.0
AlbaniaGross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...3995.3832010.0
\n", "
" ], "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": 13, "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": 14, "metadata": { "execution": { "iopub.execute_input": "2021-10-23T06:48:29.146649Z", "iopub.status.busy": "2021-10-23T06:48:29.088150Z", "iopub.status.idle": "2021-10-23T06:48:29.153173Z", "shell.execute_reply": "2021-10-23T06:48:29.153929Z" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Air pollutionAssault rateConsultation on rule-makingDwellings without basic facilitiesEducational attainmentEmployees working very long hoursEmployment rateHomicide rateHousehold net adjusted disposable incomeHousehold net financial wealth...Time devoted to leisure and personal careVoter turnoutWater qualityYears in educationSubject DescriptorUnitsScaleCountry/Series-specific NotesGDP per capitaEstimates Start After
Country
Brazil18.07.94.06.745.010.4167.025.511664.06844.0...14.9779.072.016.3Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...8669.9982014.0
Mexico30.012.89.04.237.028.8361.023.413085.09056.0...13.8963.067.014.4Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...9009.2802015.0
Russia15.03.82.515.194.00.1669.012.819292.03412.0...14.9765.056.016.0Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...9054.9142015.0
Turkey35.05.05.512.734.040.8650.01.214095.03251.0...13.4288.062.016.4Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...9437.3722013.0
Hungary15.03.67.94.882.03.1958.01.315442.013277.0...15.0462.077.017.6Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...12239.8942015.0
Poland33.01.410.83.290.07.4160.00.917852.010919.0...14.2055.079.018.4Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...12495.3342014.0
Chile46.06.92.09.457.015.4262.04.414533.017733.0...14.4149.073.016.5Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...13340.9052014.0
Slovak Republic13.03.06.60.692.07.0260.01.217503.08663.0...14.9959.081.016.3Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...15991.7362015.0
Czech Republic16.02.86.80.992.06.9868.00.818404.017299.0...14.9859.085.018.1Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...17256.9182015.0
Estonia9.05.53.38.190.03.3068.04.815167.07680.0...14.9064.079.017.5Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...17288.0832014.0
Greece27.03.76.50.768.06.1649.01.618575.014579.0...14.9164.069.018.6Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...18064.2882014.0
Portugal18.05.76.50.938.09.6261.01.120086.031245.0...14.9558.086.017.6Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...19121.5922014.0
Slovenia26.03.910.30.585.05.6363.00.419326.018465.0...14.6252.088.018.4Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...20732.4822015.0
Spain24.04.27.30.155.05.8956.00.622477.024774.0...16.0669.071.017.6Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...25864.7212014.0
Korea30.02.110.44.282.018.7264.01.119510.029091.0...14.6376.078.017.5Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...27195.1972014.0
Italy21.04.75.01.157.03.6656.00.725166.054987.0...14.9875.071.016.8Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...29866.5812015.0
Japan24.01.47.36.494.022.2672.00.326111.086764.0...14.9353.085.016.3Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...32485.5452015.0
Israel21.06.42.53.785.016.0367.02.322104.052933.0...14.4868.068.015.8Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...35343.3362015.0
New Zealand11.02.210.30.274.013.8773.01.223815.028290.0...14.8777.089.018.1Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...37044.8912015.0
France12.05.03.50.573.08.1564.00.628799.048741.0...15.3380.082.016.4Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...37675.0062015.0
Belgium21.06.64.52.072.04.5762.01.128307.083876.0...15.7189.087.018.9Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...40106.6322014.0
Germany16.03.64.50.186.05.2573.00.531252.050394.0...15.3172.095.018.2Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...40996.5112014.0
Finland15.02.49.00.685.03.5869.01.427927.018761.0...14.8969.094.019.7Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...41973.9882014.0
Canada15.01.310.50.289.03.9472.01.529365.067913.0...14.2561.091.017.2Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...43331.9612015.0
Netherlands30.04.96.10.073.00.4574.00.927888.077961.0...15.4475.092.018.7Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...43603.1152014.0
Austria27.03.47.11.083.07.6172.00.431173.049887.0...14.4675.094.017.0Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...43724.0312015.0
United Kingdom13.01.911.50.278.012.7071.00.327029.060778.0...14.8366.088.016.4Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...43770.6882015.0
Sweden10.05.110.90.088.01.1374.00.729185.060328.0...15.1186.095.019.3Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...49866.2662014.0
Iceland18.02.75.10.471.012.2582.00.323965.043045.0...14.6181.097.019.8Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...50854.5832014.0
Australia13.02.110.51.176.014.0272.00.831588.047657.0...14.4193.091.019.4Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...50961.8652014.0
Ireland13.02.69.00.275.04.2060.00.823917.031580.0...15.1970.080.017.6Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...51350.7442014.0
Denmark15.03.97.00.978.02.0373.00.326491.044488.0...16.0688.094.019.4Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...52114.1652015.0
United States18.01.58.30.189.011.3067.05.241355.0145769.0...14.2768.085.017.2Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...55805.2042015.0
Norway16.03.38.10.382.02.8275.00.633492.08797.0...15.5678.094.017.9Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...74822.1062015.0
Switzerland20.04.28.40.086.06.7280.00.533491.0108823.0...14.9849.096.017.3Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...80675.3082015.0
Luxembourg12.04.36.00.178.03.4766.00.438951.061765.0...15.1291.086.015.1Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...101994.0932014.0
\n", "

36 rows × 30 columns

\n", "
" ], "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": 14, "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": 15, "metadata": { "execution": { "iopub.execute_input": "2021-10-23T06:48:29.162946Z", "iopub.status.busy": "2021-10-23T06:48:29.162150Z", "iopub.status.idle": "2021-10-23T06:48:29.166544Z", "shell.execute_reply": "2021-10-23T06:48:29.165747Z" } }, "outputs": [ { "data": { "text/plain": [ "GDP per capita 55805.204\n", "Life satisfaction 7.200\n", "Name: United States, dtype: float64" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "full_country_stats[[\"GDP per capita\", 'Life satisfaction']].loc[\"United States\"]" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "execution": { "iopub.execute_input": "2021-10-23T06:48:29.175181Z", "iopub.status.busy": "2021-10-23T06:48:29.174342Z", "iopub.status.idle": "2021-10-23T06:48:29.177370Z", "shell.execute_reply": "2021-10-23T06:48:29.176698Z" } }, "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": 17, "metadata": { "execution": { "iopub.execute_input": "2021-10-23T06:48:29.236800Z", "iopub.status.busy": "2021-10-23T06:48:29.232671Z", "iopub.status.idle": "2021-10-23T06:48:29.763546Z", "shell.execute_reply": "2021-10-23T06:48:29.762871Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Saving figure money_happy_scatterplot\n" ] }, { "data": { "image/png": "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hYWFtSqKsSYQN8l4RKS5iDQPed1JRP4mIpd6IYSqHlDVLYENyAZyK1K+tYWePXsybNgwLrroIgCWLl3qs0TR5d///jcAXbt29VkSbwjkszDla5RFuDbgKTg+wIhIM2Aujg/wMyLyR6+FUtX7LAijJEcccQQA7733ns+SRA9VZcGCBXTq1KnGKKw1a9bUCFu2ER3CVcCdgUXu/mDgO1XNAIYBI6MhmHEoderUYfbs2X6LETVWrlwJEIxyqin06dPHbxGMOCVcBVwPxywAjrdCYBr2JRC7gk+1nIsvvhigxgZifPTRR0DNCD8GyMrKAqB3796e9Tl16lREhNWrq5cFdurUqaxatarK102cOJFRo0YB8Mwzz/Dyyy9Xa3yjJOEq4LXARSJyDHAuEIgEOAIncs2IAWeeeSZwcGW9phEIP05kt6JQ6tWrx+23384FF1zgWZ+TJ0/mtNNOY/LkydW6viIFXFhYGFYf1113HcOGDavW+EZJwlXA9wOP4OT/XaSqn7nt/YCvoiCXUQadOnUCDmYKq0nk5uaya9cufve73/ktimekpaXx6KOP0qFDB0/6y87OZv78+UyYMIHXXnsNgNmzZzNgwIDgOaNGjWLixIkA3HXXXZx44ol07tyZ2267jYULF/Lee+9x++2306VLF9atW0efPn245ZZb6N69O08++STvv/8+p5xyCl27duWcc84JugWGEpql7LnnnuPkk08mMzOTQYMGlem3bpRPWH7Aqvq2iLQCjgJCl+FnAG9FQzDjUALRVIsXLw56RdQUAgUcL7/c1l7L491336V///60a9eOpk2bBqsOl8XOnTt55513WL16NSLCnj17OPzwwxk4cCADBgxg8ODBwXPz8/MJuHPu3r2bRYsWISI8//zzPProo/zjH/8od5yLLrqIESNGAHDvvfcyYcIERo8eXe75RknCznStqltV9StVLQ5p+0xVrSRRjKhfvz4Ar7/+eiVnJh5vvPEGUDPCj6PF5MmTGTJkCABDhgyp0AzRqFEj6taty9VXX83bb78dvHfKIvSpY9OmTfTr149OnToxduzY4MJoeaxYsYLevXvTqVMnJk2aVOn5RkkSu9RALaRt27bB8NaaxLPPPktSUlKtyplbFXbt2sWsWbO45ppraNOmDWPHjmXKlCkkJydTXBycE5GbmwtASkoKn3/+OYMHD+aDDz6gf//+5fYd6iY3evRoRo0axfLly3n22WeD/ZXH8OHDefrpp1m+fDljxoyp9HyjJKaAE4zAbKUm2doC2axqSvhxNHjzzTe54oor2LBhA+vXr2fjxo20bduW4uJiVq1aRV5eHnv27GHmTCeTa3Z2NllZWZx33nk88cQTwQCehg0bsm/fvnLHycrKCuZgfumllyqVa9++fbRo0YKCggImTZrkwTutXZgCTjACce816VFvxowZAPzmN7/xWZL4ZfLkyfz2t78t0TZo0CBee+01LrnkEjp27Mgll1wSjCDct28fAwYMoHPnzpx22mnBDHpDhgxh7NixdO3alXXr1h0yzn333cfFF19Mt27dysxEVpoHHniAU045hV69enm22FibiItcENWlNuSCKM3atWtp164dEyZM4KqrPKsE5St9+vRhzpw5li/BiCviJheEK8wRInKbiPzbDUdGRHqJiKV5iiGByrqBtH2JjqoyZ84cOnTo4LnyTU5OpkuXLsFt/fr1nvZvGJESlhuaiHTDKRP0A5ABjAV2AH2BdkDily5IEAIl2t944w1effVVn6WJnG+++QaAW265xfO+69WrV256QlVFVRO+5L2R2IR79z0GPKmqXXFqwgX4GOjluVRGhfTp04f8/Hy/xfCEgC9rv379oj7W+vXrad++PcOGDaNjx45s3LiR66+/nu7du5ORkcGYMWOC57Zp04YxY8Zw0kkn0alTp2Dob3Z2Nr///e/p1KkTnTt35q23HDf46dOnc+qpp3LSSSdx8cUXk52dXaYMhlGCwEygog3YCxzr7u8L2W+DkzYyrH683rp166a1kccff1wB3bJli9+iRExhYaGuXbs2Kn0nJSVpZmamZmZm6oUXXqg//PCDioh++umnwXN27twZlOOMM87QpUuXqqpq69at9amnnlJV1XHjxunVV1+tqqp33HGH3nzzzcHrd+3apdu3b9fevXtrdna2qqo+/PDDev/990flPRmxA1iiUdZh4VbEyKHs2m8dgG2R/QQYVSUzMxNwQpIDaSoTleTkZI4//vjKT6wGpU0Q69evp3Xr1vTs2TPYNmXKFMaPH09hYSE///wzq1atCpY6D0QbduvWjbfffhtwPDYCYcDg1D774IMPWLVqFb16OQ+D+fn5nHrqqVF5T0bNIlwF/C4wRkQudl+riLTByQ9hocgxJpATYunSpZxzzjk+S5NYhAYd/PDDDzz22GMsXryYxo0bM3z48BKBBHXq1AGcH4mKEtWoKn379q12ghyj9hKuDfg2oAmwHagPzAe+w8mEdm9UJDPKJVANeurUqf4KkuDs3buXBg0a0KhRI7Zu3RpMh1kRffv2Zdy4ccHXu3fvpmfPnixYsIDvvvsOcCpZf/vtt1GT26g5hKWAVXWvqp4GXAjcCTwJ9FfVM1R1f4UXG1Ghfv36zJ8/328xEprMzEy6du1Khw4duOyyy4ImhIq499572b17Nx07diQzM5NPPvmE5s2bM3HiRC699FI6d+7MqaeeWu18vUbtotxADBEpAlqo6jYReQG4WVXLj2H0gdoYiBFg+PDhvPTSSxa8YBhRwu9AjBwOlqK/EqgbTUGMqhEocxN47DUMI/GoaBFuITBVRL4ABHhKRHLKOlFVI46JFZE6wL9wSh41AdYBd6tq5Ya5Wkhocvb27dv7LI1hGNWhohnwFTiBFocDCjQFmpezeUEKsBE4A2iEs7g3xfW2MEpx4oknAvD555972m96enpw/8MPP6Rdu3Zs2LDB0zEMw3AIKxmPiPwAdFfVndEXqcS4y4D7VbVMV7fabAMGEBFatWrlqYJMT08nOzubmTNnMnLkSD7++ONg/omKCDiWW2ivUVPw2wYcRFXb+qB8j8DJM1Fz8i56zEknncSePXs873fu3LmMGDGCDz74IKh8H3/8cTp27EjHjh355z//CZQd2jt27FhOPvlkOnfuXCK098ILL6Rbt25kZGQwfvx4z2U2jISkvBA54Fagbsh+uZvX4XlAKk69uWfLOHYtsARY0qpVq+rFGNYQcnNzNS8vz9M+U1JStHHjxsGQXFXVJUuWaMeOHTU7O1v37dunJ554on755ZeHhPZ+/PHHOmLECC0uLtaioiI9//zzdc6cOap6MOT3wIEDmpGRoTt27PBUbsPwGnwORR4NvATkuvvl6nDg8Wrq/0MQkSTgFSAfGHXIYKrjgfHgmCC8GjcRCURqeUlqaiq/+tWvmDBhAk8++SQA8+fP57e//W0wiuyiiy5i3rx5DBw4sERo7/Tp05k+fXowKXh2djZr167l9NNP56mnnuKdd94BYOPGjaxdu5amTZt6Lr9hJBLlKmBVbVvWfjQREQEmAEcA56lqQSzGNQ6SlJTElClTOPvss3nwwQcrLRMUGtqrqtx9992MHDmyxDmzZ89mxowZfPrpp9SvX58+ffpY7TDDIMKSRCLSWkSmeCUM8G/gBOA3qlqmy5sRferXr89///tfJk2axIQJE+jduzdTp07lwIED7N+/n3feeYfevXsfcl2/fv144YUXgqkYf/rpJ7Zt20ZWVhaNGzemfv36rF69mkWLFsX6LRlGXBJuMp7yOBwY5IEciEhrYCROvuEtzmQYgJGqatX+YkyTJk2YNm0ap59+Ok8++STDhw+nR48eAFxzzTV07dr1kAoT5557Lt98800wE1h6ejqvvvoq/fv355lnnuGEE06gffv2JbKRGUZtJqKacCKSCXypqr7EwtZ2NzTDMKJH3LihGYZhGN5jCrgSQiPDACZOnMioUYc4ZxiGYVSZCm3AIvJeJdcf5qEsRiUUFhaSkhKp2d4wjHihshnwzkq2H4CXoylgPDN8+HDefPPN4OvAbHn27Nn06dOHwYMH06FDB4YOHRoIIuHDDz+kQ4cOdOvWjZtuuokBAwYATk6HU089la5du/KrX/2KNWvWAM6Me+DAgZx11lmcffbZDBs2rEQi9qFDh/Luu+/G6B0bhuElFU6nVPX3sRIkXsnJyaFLly7B17t27WLgwIGVXvfVV1+xcuVKjjrqKHr16sWCBQvo3r07I0eOZO7cubRt25ZLL700eH6HDh2YN28eKSkpzJgxg3vuuSdYcffLL79k2bJlNGnShDlz5vDEE09w4YUXkpWVxcKFC3nppZc8f9+GYUQfe56thNKFHSdOnEg4nhc9evSgZcuWAHTp0oX169eTnp7OscceS9u2TlzLpZdeGsyLkJWVxZVXXsnatWsREQoKDsag9O3blyZNmgBwxhlncMMNN7B9+3beeustBg0aZGYJw0hQbBEuAlJSUiguLgaguLiY/Pz84LHQMOHKijoC/PnPf+bMM89kxYoVvP/++yUixUKjzQCGDRvGq6++yosvvshVV0WcitkwDJ8wBRwBbdq04YsvvgDgvffeKzFrLYv27dvz/fffBwMYXn/99eCxrKwsjj76aMCZZVfE8OHDgxnJAnmBDcNIPEwBR8CIESOYM2cOmZmZfPrpp4fMVEtTr149/vWvf9G/f3+6detGw4YNadSoEQB33HEHd999N127dq10tnzEEUdwwgkn8Pvf13oTvWEkNBFFwvlNIkbCZWdnk56ejqpy44038stf/pI//OEPVerjwIEDdOrUiS+//DKowA3D8BaLhKuBPPfcc3Tp0oWMjAyysrIOyRxWGTNmzOCEE05g9OjRpnwNI8GxGbBhGEYZ2AzYMAyjBmMK2DAMwydMARuGYfiEKWDDMAyfMAVsGIbhE6aADcMwfMIUsGEYhk+YAjYMw/AJU8CGYRg+EVcKWESaiMg7IrJfRDaIyGV+y2QYhhEt4i2T9zggHzgC6AL8V0SWqupKX6UyDMOIAnEzAxaRBsAg4M+qmq2q84H3gCv8lcwwDCM6xNMMuB1QqKrfhrQtBc4IPUlErgWudV/miciKGMnnNc2AHX4LUQ0SVW4w2f0gUeUGaB/tAeJJAacDe0u1ZQENQxtUdTwwHkBElkQ7W1G0SFTZE1VuMNn9IFHlBkf2aI8RNyYIIBs4rFTbYcA+H2QxDMOIOvGkgL8FUkTklyFtmYAtwBmGUSOJGwWsqvuBt4G/ikgDEekFXAC8UsFl42MiXHRIVNkTVW4w2f0gUeWGGMgeVxUxRKQJ8ALQF9gJ3KWq//FXKsMwjOgQVwrYMAyjNhE3JgjDMIzahilgwzAMn0hIBexnzggRGSUiS0QkT0Qmljp2toisFpEDIvKJiLQOOVZHRF4Qkb0iskVEbvXq2irIXkdEJrif2T4R+VpEfp0I8ovIqyLys9vHtyJyTSLIHdLXL0UkV0ReDWm7zP0u9ovIVHcNJHCswns8kmurIPNsV+Zsd1uTKLK7fQ0RkW/cvtaJSG+3PX7uF1VNuA2YDLyOE7xxGk7ARkaMxr4IuBD4NzAxpL2ZK8fFQF1gLLAo5PhDwDygMXACsAXoH+m1VZS9AXAf0Abnx3cAjp91m3iXH8gA6rj7Hdw+usW73CF9TXf7ejXk/ewDTnfv4/8Ar4Vzj0dybRVlng1cU853Ee+y9wU2AD1x7vWj3S2u7peYKU2vNhwlkg+0C2l7BXg4xnL8jZIK+FpgYSk5c4AO7uvNwLkhxx8I3HiRXOvB+1iGk4MjYeTHCRH9GbgkEeQGhgBTcH78Agr4QeA/Iecc597XDSu7xyO5topyz6ZsBZwIsi8Eri6jPa7ul0Q0QZSXMyLDJ3kCZLhyAEG/5nVAhog0BlqEHqekzJFcW21E5Aicz3NlIsgvIv8SkQPAahwF/GG8yy0ihwF/BUo/jpYeex2u8qHyezySa6vKQyKyQ0QWiEifRJBdRJKB7kBzEflORDaJyNMiUq+M8X29XxJRAYeVM8IH0l05QgnIlR7yuvSxSK+tFiKSCkwCXlLV1Ykgv6re4F7XGydoJy8B5H4AmKCqm0q1VzZ2Rfd4JNdWhTuBY3Ee3ccD74vIcQkg+xFAKjAY517pAnQF7g1jfIjh/ZKICjhec0ZUJFd2yOvSxyK9tsqISBLOo10+MMoDGWImv6oWqZOqtCVwfTzLLSJdgHOAJ8o4XNnYFd3jkVwbNqr6maruU9U8VX0JWACclwCy57h//09Vf1bVHcDjYcoOMbxfElEBx2vOiJWuHEAwv/FxwEpV3Y3zyJwZcn6ozJFcWyVERIAJOLOEQapakEjyh5ASGCOO5e6Ds8D5o4hsAW4DBonIl2WMfSxQB+f+ruwej+TaSFBA4l1297vb5MobKntZ4/t7v1TVuB0PG/AazmppA6AXsfWCSMFZAX0IZxZZ121r7soxyG17hJIrpA8Dc3BWSDu4X1ZgdbXa11ZD/meARUB6qfa4lR/4Bc5CVjqQDPQD9gMD41zu+sCRIdtjwJvuuBk4j9u93fv4VUp6A5R7j0dybRVkP9z9nAP391D3M28X77K7/fwVWOzeO41xvBMeiLf7xXdlWk0l0gSY6t4QPwKXxXDs+3B+TUO3+9xj5+AsEOXgrCC3CbmuDk6ei73AVuDWUv1W+9oqyN7alTcX55EpsA2NZ/ndG38OsMftYzkwwouxY/G5l7p3Xg15fZl7/+4H3gWahHuPR3JtFT7zxTiP0HtwfrT7JoLsbj+pwL9c2bcATwF14+1+sVwQhmEYPpGINmDDMIwagSlgwzAMnzAFbBiG4ROmgA3DMHzCFLBhGIZPmAI2DMPwCVPAhlEBItJGRFREukep/1QRWSMip0ej/yrI0UlEfnKju4wYYQq4hiAiR4jIEyKy1k2ivU1EForIaBFJDzlvvatQ1D1vo5sA+zdl9Kkh2z5xEtFfFNt35jsbcbJcfQ0gIn3cz6OZR/1fC2xW1blu/+UqfHESpD8d8jpTRN51k3/nisiPIvJWqSThod/hARH5XkT+E0hOHkBVl+MEW1Q76bxRdUwB1wBEpA3wJdAf+DNwEnAKTu7Vs3FCdkP5K45SaYcT4rseeCf0nzuEEe65J+Ok13tDRE71/E1UgIikxXK8UNRJ/rNFVQu97tvNy3ETTm6Oql7bHJiJE8l4Pk7o6xU46RFLJ4wJfIcnAFfjJGGaIyK3lzrvReB6EUmpqjxGNYkktNK2+NiAj3Bmag3KOS4h++uB28o451qcMOUzQ9oUGBzyOhU4ADxUzjht3GsuA+bjhDyvJiRJtXveicB/ccJct+HE/h8Zcnwi8AFOOsRNwLYK3ntPYBZO6GqWu3+Ue6w/Tg6A3cAu4GPghKrIG3JO95D90G1iOGOVI3t3oBg4vKzxyjh/NvC0u38hUASkVTJGie8wpP1BoBA4PqQtzf0MzvH7nq4tm82AExwRaYqTNGWcOgmiD0Hd/65KmICjPAaVd4I6mdMKcBRxRTyKE3vfBfgf8K6IHO3K2wKYC6wAeuDE1qe754Tej2cAnXEU29llDSIimcAnwHc4iVt64pSzCczgGgD/dMfpg6Og3y9jRl2uvKXYyMHPJwNnVnlzFccKpTewTlX3VHBOeWzBeYId7M6kq8o/3OsvDDSoaj6OqeWMavRnVAN71Eh8jsdJEbgmtFFENuFktAInAcx1FXWiqkUi8i1OAu5DEJE6wO04j7czK5Hp36o6xb3uZpwfiOtxEmJfDyxV1TtD+h6GM2vsDnzuNucCV6lqXgXj3AF8rarXhrR9E/Ke3ir1Hn6PkyilB86MNxx5g7if0S735TZ18sxWdaxQWuOUsakyqrpIRB4EXgLGichinBnyJFXdEMb1O0VkG4d+35txZuFGDLAZcM0lUAngc5zUeeEglMyhCvCKiGTjmB5uxTFffFRJP58GdlS1GPgMx+wATiHN0+Vgpd1snJklOLlVA6yoRPmCU+VgVrlvRuQ4d8FpnYgEMlQlAa2qIG9YVGGsUOrh/NBUC1X9E06ay2txMsRdDawSkTKfGMoSm0O/7xxXLiMG2Aw48fkO55+oQ2ijqv4AIE4NtUoRp45WOw7OQAPcDkwD9qrqtoildZTSf3GSk5dma8h+meaUKvIBjg15JPATjs1zFY6t02uqM9YOnB+RUAIleRqVcf7hlCqJo6o7gTdwFkfvBr7CWYit8CnF9eJoDnxf6lATnHUCIwbYDDjBcf8BpwOjQt3NqsE1OP/gb5Zq36Kq31VR+fYM7Lj2yR4cNA18iWM/3eD2G7pVtfTMV8BZZR1wbeMdgAdVdYaqfoNTn6usSUdF8pYm3/2bXM2xSsvfPtT2raq7cBRzt1Lv5zAcc1MJU1Morg13HQfrk1XEH3EWAKeWau+I8x0ZMcBmwDWDG3DqdX0hIvfhuIsV4vwTZ+Io6FAaisiROItpxwAXA6NxVtjneCDP9a49ebkrW2vg3+6xcThuUa+LyCPAdhw75CXAH6uohMcCi0RkvNtvLo7pZTrObHQHMEJENuIUlhyL87lURd7SbMB54jhfRN7HeWTfXYWxQvkExzzUGdfP2OVx4C4R2YxjHmmKM6vdjjPbRUQG4LgQvoZTykeA3+DUPRtTapzD3e87DcfMcyUwDLhDnarEuH22cWUvfb8Y0cJvNwzbvNlwbIFP4pgk8nD8QxcDdwMNQ85bz0EXqjwcRTUVGFhGn2W6MFUgQxv3mqHAQhyFuAb4danzfokz096No8DWAP+H61KF64YW5pin4XhV5OBUP5gBtHCPnYXjbZHr/u3nfi7Dw5WXMtzCcJThzzgzyInhjFWB/JOBsaXaknF+EJe5fWzCUbRtQs45Fqe81GoOuuB9DdxCSbfDUJe5XOAHd8zTy5DlbmCa3/dybdqsIobhGe4M6gfgZFVd4rM4lRIP8opIBs5M+HhVLV2SPZZy1AHWApeq6gK/5KhtmA3YMHxEVVfiLEi29VmU1sDfTfnGFrMBG4bPqOrLcSBDoCy8EUPMBGEYhuETZoIwDMPwCVPAhmEYPmEK2DAMwydMARuGYfiEKWDDMAyf+H+sgNZzLjt8egAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "sample_data.plot(kind='scatter', x=\"GDP per capita\", y='Life satisfaction', figsize=(5,3))\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(country, xy=(pos_data_x, pos_data_y), xytext=pos_text,\n", " arrowprops=dict(facecolor='black', width=0.5, shrink=0.1, headwidth=5))\n", " plt.plot(pos_data_x, pos_data_y, \"ro\")\n", "plt.xlabel(\"GDP per capita (USD)\")\n", "save_fig('money_happy_scatterplot')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "execution": { "iopub.execute_input": "2021-10-23T06:48:29.769868Z", "iopub.status.busy": "2021-10-23T06:48:29.768378Z", "iopub.status.idle": "2021-10-23T06:48:29.773096Z", "shell.execute_reply": "2021-10-23T06:48:29.772384Z" } }, "outputs": [], "source": [ "sample_data.to_csv(os.path.join(\"datasets\", \"lifesat\", \"lifesat.csv\"))" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "execution": { "iopub.execute_input": "2021-10-23T06:48:29.784005Z", "iopub.status.busy": "2021-10-23T06:48:29.782935Z", "iopub.status.idle": "2021-10-23T06:48:29.786506Z", "shell.execute_reply": "2021-10-23T06:48:29.787015Z" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
GDP per capitaLife satisfaction
Country
Hungary12239.8944.9
Korea27195.1975.8
France37675.0066.5
Australia50961.8657.3
United States55805.2047.2
\n", "
" ], "text/plain": [ " GDP per capita Life satisfaction\n", "Country \n", "Hungary 12239.894 4.9\n", "Korea 27195.197 5.8\n", "France 37675.006 6.5\n", "Australia 50961.865 7.3\n", "United States 55805.204 7.2" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sample_data.loc[list(position_text.keys())]" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "execution": { "iopub.execute_input": "2021-10-23T06:48:29.822047Z", "iopub.status.busy": "2021-10-23T06:48:29.820250Z", "iopub.status.idle": "2021-10-23T06:48:30.382519Z", "shell.execute_reply": "2021-10-23T06:48:30.383024Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Saving figure tweaking_model_params_plot\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "\n", "sample_data.plot(kind='scatter', x=\"GDP per capita\", y='Life satisfaction', figsize=(5,3))\n", "plt.xlabel(\"GDP per capita (USD)\")\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": 21, "metadata": { "execution": { "iopub.execute_input": "2021-10-23T06:48:30.391251Z", "iopub.status.busy": "2021-10-23T06:48:30.390408Z", "iopub.status.idle": "2021-10-23T06:48:30.394311Z", "shell.execute_reply": "2021-10-23T06:48:30.393661Z" } }, "outputs": [ { "data": { "text/plain": [ "(4.853052800266436, 4.911544589158484e-05)" ] }, "execution_count": 21, "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": 22, "metadata": { "execution": { "iopub.execute_input": "2021-10-23T06:48:30.434650Z", "iopub.status.busy": "2021-10-23T06:48:30.418635Z", "iopub.status.idle": "2021-10-23T06:48:30.775774Z", "shell.execute_reply": "2021-10-23T06:48:30.775094Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Saving figure best_fit_model_plot\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "sample_data.plot(kind='scatter', x=\"GDP per capita\", y='Life satisfaction', figsize=(5,3))\n", "plt.xlabel(\"GDP per capita (USD)\")\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": 23, "metadata": { "execution": { "iopub.execute_input": "2021-10-23T06:48:30.783881Z", "iopub.status.busy": "2021-10-23T06:48:30.782851Z", "iopub.status.idle": "2021-10-23T06:48:30.788028Z", "shell.execute_reply": "2021-10-23T06:48:30.788505Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "22587.49\n" ] }, { "data": { "text/plain": [ "5.96244744318815" ] }, "execution_count": 23, "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": 24, "metadata": { "execution": { "iopub.execute_input": "2021-10-23T06:48:30.812576Z", "iopub.status.busy": "2021-10-23T06:48:30.811273Z", "iopub.status.idle": "2021-10-23T06:48:31.301218Z", "shell.execute_reply": "2021-10-23T06:48:31.301732Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Saving figure cyprus_prediction_plot\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "sample_data.plot(kind='scatter', x=\"GDP per capita\", y='Life satisfaction', figsize=(5,3), s=1)\n", "plt.xlabel(\"GDP per capita (USD)\")\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\"Prediction = 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": 25, "metadata": { "execution": { "iopub.execute_input": "2021-10-23T06:48:31.311773Z", "iopub.status.busy": "2021-10-23T06:48:31.310855Z", "iopub.status.idle": "2021-10-23T06:48:31.317179Z", "shell.execute_reply": "2021-10-23T06:48:31.316528Z" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
GDP per capitaLife satisfaction
Country
Portugal19121.5925.1
Slovenia20732.4825.7
Spain25864.7216.5
\n", "
" ], "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": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sample_data[7:10]" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "execution": { "iopub.execute_input": "2021-10-23T06:48:31.323215Z", "iopub.status.busy": "2021-10-23T06:48:31.322428Z", "iopub.status.idle": "2021-10-23T06:48:31.326228Z", "shell.execute_reply": "2021-10-23T06:48:31.325656Z" } }, "outputs": [ { "data": { "text/plain": [ "5.766666666666667" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(5.1+5.7+6.5)/3" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "execution": { "iopub.execute_input": "2021-10-23T06:48:31.333676Z", "iopub.status.busy": "2021-10-23T06:48:31.332957Z", "iopub.status.idle": "2021-10-23T06:48:31.336231Z", "shell.execute_reply": "2021-10-23T06:48:31.335528Z" } }, "outputs": [], "source": [ "backup = oecd_bli, gdp_per_capita\n", "\n", "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": "code", "execution_count": 28, "metadata": { "execution": { "iopub.execute_input": "2021-10-23T06:48:31.344373Z", "iopub.status.busy": "2021-10-23T06:48:31.343332Z", "iopub.status.idle": "2021-10-23T06:48:31.500882Z", "shell.execute_reply": "2021-10-23T06:48:31.501406Z" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "[[5.96242338]]\n" ] } ], "source": [ "# Code example\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import pandas as pd\n", "import sklearn.linear_model\n", "\n", "# Load the data\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", "# Prepare the data\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", "# Visualize the data\n", "country_stats.plot(kind='scatter', x=\"GDP per capita\", y='Life satisfaction')\n", "plt.show()\n", "\n", "# Select a linear model\n", "model = sklearn.linear_model.LinearRegression()\n", "\n", "# Train the model\n", "model.fit(X, y)\n", "\n", "# Make a prediction for Cyprus\n", "X_new = [[22587]] # Cyprus' GDP per capita\n", "print(model.predict(X_new)) # outputs [[ 5.96242338]]" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "execution": { "iopub.execute_input": "2021-10-23T06:48:31.505617Z", "iopub.status.busy": "2021-10-23T06:48:31.504688Z", "iopub.status.idle": "2021-10-23T06:48:31.509299Z", "shell.execute_reply": "2021-10-23T06:48:31.508634Z" } }, "outputs": [], "source": [ "oecd_bli, gdp_per_capita = backup" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "execution": { "iopub.execute_input": "2021-10-23T06:48:31.521174Z", "iopub.status.busy": "2021-10-23T06:48:31.519288Z", "iopub.status.idle": "2021-10-23T06:48:31.525459Z", "shell.execute_reply": "2021-10-23T06:48:31.524033Z" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
GDP per capitaLife satisfaction
Country
Brazil8669.9987.0
Mexico9009.2806.7
Chile13340.9056.7
Czech Republic17256.9186.5
Norway74822.1067.4
Switzerland80675.3087.5
Luxembourg101994.0936.9
\n", "
" ], "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": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "missing_data" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "execution": { "iopub.execute_input": "2021-10-23T06:48:31.533511Z", "iopub.status.busy": "2021-10-23T06:48:31.532185Z", "iopub.status.idle": "2021-10-23T06:48:31.534399Z", "shell.execute_reply": "2021-10-23T06:48:31.534899Z" } }, "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": 32, "metadata": { "execution": { "iopub.execute_input": "2021-10-23T06:48:31.559321Z", "iopub.status.busy": "2021-10-23T06:48:31.558278Z", "iopub.status.idle": "2021-10-23T06:48:32.289124Z", "shell.execute_reply": "2021-10-23T06:48:32.289621Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Saving figure representative_training_data_scatterplot\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAADQCAYAAAAK/RswAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAABYBUlEQVR4nO3dd3hU1dbA4d9OSEIKNfRepAYSBKSIVEEUFVFExAbq/VCwXewVsGBDEbFebIhYaCqIHQGRK1wFBARFBAWkJoSWTsr6/tgzk0lImSSTzCRZ7/PMQ86ZOeesORmSld2WERGUUkoppSqSAF8HoJRSSinlbZrgKKWUUqrC0QRHKaWUUhWOJjhKKaWUqnA0wVFKKaVUhaMJjlJKKaUqHE1wlFJKKVXhlGmCY4y51Riz3hiTZoyZk+u5c40x240xycaYlcaY5mUZm1JKKaUqjrJuwTkAPAG87b7TGFMH+Bh4BKgNrAfml3FsSimllKogqpTlxUTkYwBjTHegidtTlwHbRGSh4/mpwBFjTHsR2V6WMSqllFKq/CvTBKcAUcBm54aIJBljdjn250hwjDHjgfEA4eHh3dq3b1+WcSqllFLKzcmTEBAAERF2+9dfoWZNaNrUbm/ZAnXrQsOGdvv4cQgLg+Bg71x/w4YNR0Skbu79/pLgRABxufadAKrlfqGIzAZmA3Tv3l3Wr19f+tEppZRSlVRaGsTFQRNHv8vdd9uE5tln7XanTtCqFSxdarefeMLuGzHCbouAMaUXnzFmT177/SXBSQSq59pXHUjwQSxKKaVUpfXVV/Dnn3DbbXZ7xAg4fBg2brTbiYk2wXFatMi20Dg9/HDO85VmclMQf0lwtgFjnRvGmHCgtWO/UkoppbzkyBHYtg3697fbzz0Hc+fariSwLTGLF8Ott9rk5PbbITk5+/jXX895Pn8dKVLW08SrGGOqAoFAoDGmqjGmCvAJ0MkYM9Lx/GRgiw4wVkoppYouPR2ysuzXa9bA2LGQmmq333gDBgyABEcfSZMm0L27PQbgmWdg//7slpcLLoCRI8s0fK8o62niDwMpwP3ANY6vHxaROGAkMA04BvQErizj2JRSSqlyJy4O5s2z/wJ8+imEh8OOHXb7wAH47jv7L8Do0bBiBYSE2O0rr4S334agILtdrRpU8Zf+nRIo0wRHRKaKiMn1mOp4brmItBeRUBEZICK7yzI2pZRSyh+JQGwsnDhht3fuhKFD4b//tds7dsC118LPP9vtjh3hrrvsTCWAUaNg3z47EBjsvwMHem8Wk7/SUg1KKaWUH0lJgeefz05g9u6F+vVhvmP524gIO44mKclud+1qx9QMHmy327aFp56CZs3stq8G+fpahUxwAgMD6dKlCzExMXTt2pUff/zRK+f917/+xW+//QZAixYtOHLkiFfO684YwzXXXOPazsjIoG7dulx00UXFOt/rr7/O3LlzvRVemTl06BBXXnklrVu3plu3bgwbNozZs2fnex/K4nvjibzi3uFsJy6hqVOn8txzzxX6uhYtWtC5c2eio6Pp378/e/bkOYOyRPK7x+4xTp48meXLl3v92kpVBFu3wu+/26+zsuwYmCeftNtBQfDgg/DNN3a7aVOYORP69rXbDRrAhg1w3nl2OzTUttpU9BaZoqoAvWynCw0NZdOmTQB8/fXXPPDAA3z//fc5XpORkUGVInYyvvnmm94KMV/h4eFs3bqVlJQUQkND+fbbb2ncuHGxz3fzzTd7MbqyISJceumljB07lo8++giAzZs3s9S5yEIeyuJ7U5j84j58+DBt27Yt01hWrlxJnTp1mDJlCk888QRvvPFGmV4f4LHHHivzayrlT9LSsse5PPWUHRdz++12+8IL4Zxz4P337ZTrLl2y15mpUsV2SdWoYbcDAuCOO8o8/HKvQrbguDt58iS1atUCYNWqVfTt25fhw4fTsWNHAEaMGEG3bt2Iiopi9uzZACxdupQuXbrQpUsX2rVrR8uWLQEYMGAAZbGw4LBhw/j8888B+PDDDxkzZozruaSkJG644QZ69OjBmWeeyZIlSwC44447XL9Qvv76a/r160dWVlaOv6h37tzJ4MGDXS1bu3btQkS455576NSpE507d2b+fN+XAFu5ciVBQUE5krOYmBj69u1LYmIil19+Oe3bt+fqq69GRID8vzfz5s2jR48edOnShZtuuonMzEyfxD158mTXZ6px48Zcf/31Bcb31Vdf0bVrV2JiYjj33HNd5/vtt98YMGAArVq1YtasWYXG1Lt3b/bv3w9AXFwcI0eO5KyzzuKss87iv47276lTp3LttdfSu3dv2rRp40qGVq1alaPF7NZbb2XOnDmu7WeffZbOnTvTo0cPdu7cedq1x40bx6JFiwD4+eefOfvss4mJiaFHjx4kJOgSV6pi+ekn+OST7O2LL85uYQFYvdq+xmnOHHjkkeztN9+E667L3nYmN6oERKTcPrp16yZ5CQgIkJiYGGnXrp1Ur15d1q9fLyIiK1eulLCwMPnrr79cr42PjxcRkeTkZImKipIjR47kONeoUaPk5ZdfFhGR/v37y88//ywiIs2bN5e4uLg8r18S4eHhsnnzZhk5cqSkpKRITEyMrFy5Ui688EIREXnggQfkvffeExGRY8eOSZs2bSQxMVGSkpKkY8eOsmLFCmnbtq3s3LlTRESmTJki06dPFxGRHj16yMcffywiIikpKZKUlCSLFi2SwYMHS0ZGhhw6dEiaNm0qBw4c8Pr7KooXX3xR/v3vf5+2f+XKlVK9enX5559/JDMzU3r16iU//PCDiOT9vfntt9/koosuklOnTomIyIQJE+Tdd98t87jdHTt2TDp16iTr16/PN77Y2Fhp0qSJ63Pq/IxOmTJFevfuLampqRIXFye1a9d2HevO/bN5xx13yH/+8x8RERkzZozrfu3Zs0fat2/vOm90dLQkJydLXFycNGnSRPbv35/jcycicsstt8g777zjusYTTzwhIiLvvvuu63Xun7exY8fKwoULJS0tTVq2bCk//fSTiIicOHFC0tPTi3JrlfK5U6dEdu3K3n7lFZFLL83evvZakSZNsrffeUfktdeyt7OySj3ESgtYL3nkCBW+i2rt2rVcd911bN26FYAePXq4WmQAZs2axSeOtPuff/7hzz//JDIyErB/oYaGhnLLLbeUafzR0dHs3r2bDz/8kGHDhuV47ptvvmHp0qWuVpnU1FT27t1Lhw4deOONN+jXrx8vvPACrVu3znFcQkIC+/fv59JLLwWgatWqAKxZs4YxY8YQGBhI/fr16d+/Pz///DPDhw8vg3dadD169KCJox23S5cu7N69m3POOSfP13733Xds2LCBs846C4CUlBTq1atXZrHmJiJcc8013HnnnXTr1o2XX345z/jWrVtHv379XJ/T2rVru85x4YUXEhISQkhICPXq1ePw4cOu++Fu4MCBHD16lIiICB5//HEAli9f7hqnBLZ1MzExEYBLLrmE0NBQQkNDGThwID/99BM1a9Ys8P04WxbHjBnDpEmT8n3dH3/8QcOGDV3vs3r13IuWK+V/Nmyw060ffdR2EU2ZAtOn2wXvgoLsmjHJyXb8TECALU/gPgZm3Lic56usA319qUImOO569+7NkSNHiHMsEBAeHu56btWqVSxfvpy1a9cSFhbGgAEDSHWshLR8+XIWLlzI6tWrfRL38OHDufvuu1m1ahXx8fGu/SLC4sWLadeu3WnH/Prrr0RGRnLAudhBORUVFeXq2sgtxNmhjR1MnpGRke95RISxY8fy1FNPeT3GvBQUN9iuoCZNmri6p/KL77PPPsv3HJ6+/5UrV1KzZk2uvvpqpkyZwowZM8jKymLdunWu5NadyfXT1xhDlSpVyHKuFAau/xt5HZP7eKX8XUKCLT3QrZudlbR0qV25d+1aaNwYfvnFjpu56SY7Nubyy+2Kvc7/EnfckXNcjHPGkvIfFX4Mzvbt28nMzHS1yrg7ceIEtWrVIiwsjO3bt7Nu3ToA9uzZwy233MLChQsJDQ0t65ABuOGGG5gyZQqdO3fOsX/o0KG89NJLrrEnv/zyC2Bjfv755/nll1/48ssv+d///pfjuGrVqtGkSRM+/fRTANLS0khOTqZv377Mnz+fzMxM4uLiWL16NT169Cj9N1iAQYMGkZaW5hoTBbBlyxZ++OGHIp3n3HPPZdGiRcTGxgJw9OjRUplR5FRQ3J999hnLly/PMW4mv/h69erF6tWr+fvvv137i6NKlSrMnDmTuXPncvToUc477zxeeukl1/POVk6AJUuWkJqaSnx8PKtWreKss86iefPm/Pbbb6SlpXH8+HG+++67HOd3jteaP38+vXv3zjeOdu3acfDgQX52LNKRkJBQYGKqlLdkZmavzrtrF/zrX3Y6Ndgp2AMG2EQGbKXrfv2yX3/11baFxtlA2rWrHSPj9jeG8nMVMsFJSUlxDegcPXo07777LoGBgae97vzzzycjI4MOHTpw//3306tXLwDmzJlDfHw8I0aMoEuXLqd1E5WFJk2acLtzuL2bRx55hPT0dKKjo4mKiuKRRx5BRLjxxht57rnnaNSoEW+99Rb/+te/TvuL+7333mPWrFlER0dz9tlnc+jQIS699FKio6OJiYlh0KBBPPvsszRo0KCs3maejDF88sknLF++nNatWxMVFcUDDzxQ5Lg6duzIE088wXnnnUd0dDRDhgzh4MGDpRR1wXHPmDGD/fv3uwYUT548Od/46taty+zZs7nsssuIiYlh9OjRxY6pYcOGjBkzhldeeYVZs2axfv16oqOj6dixI6+7FZSJjo5m4MCB9OrVi0ceeYRGjRrRtGlTrrjiCjp16sQVV1zBmWeemePcx44dIzo6mhdffJEXXngh3xiCg4OZP38+t912GzExMQwZMuS0z6ZSJZWSAgsWgLMX9s8/bcuMs1E1M9O20uzda7d79rRFJaOj7fZZZ9nVgFu0sNuhoTrturwzzpaA8qh79+5SFrOalKrIpk6dSkREBHfffbevQ1GqQMeO2anXDRrAqVO2PtKll8INN9gK19Wq2bEwDz1kX/fQQzBmjO2GEtFxMBWVMWaDiHTPvb/Cj8FRSilVPr3xBtSsaUsNiEDr1raO0muv2daVpCSbyIBtrdm6NbscQUiIrZLtpMlN5aMtOEoppXxi1y5bcqBnT7t91VU2kfnwQ7vdvbsdA+MYOsi8eTbJKWDIl6qEtAVHKaVUmUtNBefEvblzYfNmW2cJbEHIHTuyx81EReU8duVK2zLj5FbFRqlCaYKjlFLKK/74A9asgRtvtNsPPQSvvGLHzhhjZzCtXJk9HmbyZPu100MP5TxftWplF7uqeCrkLKqyJCLs3r3b12GUC3/99RfXX3+9a1q0P8vIyGDRokUMHTpUywoo5ZCZabuVnFOpv/gC+vSBkyft9uef26nYzjqsAwbAvfdmv/6ZZ+zaM87xMF272gHASpUGTXBK6JNPPqFly5b88ccfxTp+8eLFXHvttV6Oyr+kpKRw55130rp1a+bMmVOqa9GUVHx8PFOnTiUoKIhRo0bxzTffcOzYMV+HpZRP7N4NU6fCP//Y7cWL4YwzsteSCQy0q/o6/4tcd52dhu1cdmzIEFsVW6dbK1/wOMExxow2xsw2xnxqjFnq/ijNAP2dc22QL774oljH33DDDcybN8+bIfmVZcuWERYWxgsvvEC3bt3Yt2+fa8l+f7J161aGDRtGnTp1ePTRR4mIiODTTz8lIyODZrpEqaqgTp2CH38ERz1Wtm+3g3idP87i4+Gxx+DXX+12nz62KGTjxnZ76FBYtQqaN7fbdepA06Y6Y0n5B48SHGPMdGAe0AI4DsTnelRaznpB06ZNK/KxycnJnDx5kmsq4Mi53bt3065dOy6++GLA1oVav349jZ0/Gf1AZmYmS5cupUaNGnTu3Jkvv/ySoUOHsmXLFhISErjkkkvyXCBSqfJExA70Bbsy78SJ4KwGcvSoTVoWL7bbDRrYmUvOStYxMXYqtnOt08aN7fiaunXL9j0oVRyeDjK+DhgjIvkX2qnERo8ezfz580lNTc2zzk9+Vq1aBVChuqhSU1OZPHky06dPB2Dy5Mk89NBDBPtRG/WJEyf4z3/+w3333efaN3nyZG677Tbq1Knjw8iUKrmlS22C0r+/rZtUvz5cfz08+6xdnXfZMmjTxr62fn07bqZrV7tdsyY4KnAAUKWKfShVlkSEpKQk4uPjOXLkCPHx8Tkeufflx9OPbgCwyRuBV0TXXnst8+fPZ82aNQwePNjj4959910A+vXrV1qhlamvvvqKCy64ALBL/y9btoymTZv6OKpsO3bs4KGHHnIVxAwMDOT999/nsssuIygoyMfRKeWZhATbdeQsKTBxop1t9Mwzdvuee6BzZ5vgBATApEngrLJhTHapAue2DyrRqEokKyuL48ePe5SouG+fOnUq33PWrFmTyMhIIiMjqVevXr6v8zTBmQ1cA0wtyhsrCmNMC+BVoDeQBiwC/i0ifl+Vb8CAAQB8+OGHRUpwFixYQL169YrU6uOP9u7dy7Bhw9jmGHn4zTffMGTIEB9HZWVlZfHtt99y/fXXu+pQnXPOOcycOZNuOn1DlQNLltjBvs7K1ZdcYruaHLWBycqys5ucPv/ctsw4PfhgmYWqKrhTp06dlqQUlqgcO3aMLGcJ9lwCAwNdiUqdOnU444wz6NmzZ459zq+dj9q1a1MlV7OiyWfQl0crGRtjXgGuAn4DtgDp7s+LyOlVIYvIGPMFEAvcDNQEvgXeEJFZ+R3jTysZh4eHk5ycjKcrQ+/cuZM2bdrw4osv5llUszxIS0vjscce48knnwTgwQcfZPLkyYT4QbndxMRE3n77be5w/lYA7r77bu6++27qu//0V8rHDh60s5Kcfxs9/jgsXAhbttjt//s/WL4cHMXl+fprm9Boy4sqLvcuIE8Tlfj4+AKXzAgNDc03Kcm9z7ldvXr1fJOToijpSsYdye6iap/rOW/VemgJvCwiqcAhY8xXQFQhx/iNBx98kIcffpj9+/d7NJDWOevKF5XKveHbb7/lvPPOAyAqKoovvvjCL2Yb/f3330ydOpW5c+e69s2dO5fRo0f71TggVbmkpNjaSAEBsGIFzJ5tV/UNDrZfP/qoHcwbGmqnYffpY5OYwEB48UW732noUN+9D+V/nF1ARUlU4uPjSXMW8cpDjRo1XElIvXr16NChQ4GJSmRkJKHuH1I/4Te1qIwxNwF9sC04tYCvgUdE5JP8jvGnFpwtW7YQExPDpEmTyMjIoEaNGjz++OP5vr5+/frExsZ63OLjL/755x8uuugitjj+vPzyyy85//zzfRqTiLBq1SrGjx/Pzp07ATt9/5VXXqFXr15e+QtBKU8dPGinWY8YYdeD+egjW2Np505bCPKDD+CRR+D7722dpb/+gkOH4Kyz7JoyqvJKT08vMCnJa9/Ro0c96gIqqEXFfV9eXUD+Lr8WnCIlOMaYqsAZ2FabXY7WFm8F2AE7FT0GCATeBa6XXAEaY8YD4wGaNWvWzdeLxokIr7/+OvPmzePHH390dVU1a9Ys3xWOU1NTCQ0NZdSoUSxYsKBsAy6mU6dO8cQTT7iStnvvvZdHH33Up+OHUlJSmDt3LjfffLNr38SJE3nwwQf9ajq6qlhEYN8+O7C3Zk34/XeYMMEO8u3Z05YiGDQIvvnGLnS3fbtNcm66CRo29HX0qiyICMnJyUVKVI4cOVJgF1DVqlULbEHJa1+NGjUqxR94JeqiMsYEAU8CtwLBgAHSjDEvAQ+JSHpBx3tw/gDgK+xg5rOBCOBt4BngXvfXishsx+vo3r27XzR/TJ48mSOOtcmTkpIAOOlcuzwPq1evBmDcuHGlHps3fPfdd67B023btuXrr7+mhXMKhw/s27ePadOm8frrr7v2vfHGG1x99dV+2UyqyrfERJg1y5YdOPts2xLTti288w6MG2cTnfT07LVmevWyr3H+F2nf3q4GrMqnrKwsTpw4UaRExZMuIPeEpH379oW2soSFhZXhu64YPB1kPAMYA9wPrHHs7gs8BbwvIneXKAhj6gBxQE0ROeHYNwJ4QkQ65Xecv3RRzZ49mzvvvNOV3AAEBwfn+wG/9tprmTdvHklJSX79od2/fz/Dhw9n48aNAHz22WdcdNFFPolFRFi7di0TJkxwdY+1bduW2bNn069fv0rxV4oqPevX23EuUVE2WYmJsWUH7r8f0tJsResnnoD77oOMDHjjDds6c8YZvo5cFYV7F5CniUphXUC1a9cudDBt7llAuiyFd5Woi8oYcwi4QUS+yLX/QuBNESlxw6sx5i9sy8xz2Bacd4AUEbkqv2P8JcFJT0+nWbNmHDp0yLXPGENaWprrg7x//36mTZvGkCFDuOyyy6hRowbHjx/3UcQFS09P5+mnn2by5MkA3HnnnUybNs0n3VFpaWnMnz+fsWPHuvaNGzeOKVOm+LQVSZUvInZqdXi43X7kEbsar3MCY8OGcP75tlUGYPx4O6vpiivsdnIy+PHfIpWOexeQp4lKfHx8gS3rVatWLVKiUqdOHapXr05AgJZ09LWSzqKqAezKY/8u7JRub7gMmAncB2QCK4BJXjp3qQoKCuLZZ59lwoQJrlackJAQjh8/Tl3HmuYbNmzg7bffdtWdioiI4KmnnmLcuHE09KOO+VWrVjFw4EAAWrVqxbfffkurVq3KPI5Dhw4xffp0ZsyY4dr38ssvM27cOMKdv6VUuROfmMa+Yyk0qRVKZERIofuL64cfIDYWRo602+eea1fk/eYbu71+PbhP+luwwA74dZo9O+f5NLkpPc4uoBxJyZgxxJ886aoFdMTxb3yVKsTXr098fDypqfkPAa1evborCalTpw7t2rUrdMyKP7emq+LxNMHZDNwO3JJr/x14aYVjEdkEDPDGuXzhqquu4uGHH3YlOFWqVOHYsWOuBOfo0aNUqVLFNYhs//79TJkyhfDwcL9YB+fgwYNceuml/O9//wPg008/5ZJLLinzONavX8/tt9/O2rVrAWjSpAlvv/02gwcP1m6ocm7Jpv3ct3gLQQEBpGdl8ezIaIZ3aZzv/oKkpNgVedu1s9vPPw9r1sAnjjmXr7wCP/+cneC4NQAC8OWXObf79vXCG1Skp6dz9OjRIk1XPnr0KJnuKxW6CQBqA3WASKBFRgbdzjuv0FlA2gWkwPME517gC2PMYMCxfia9gEbABaURWHkTGBjIc889x/XXX09SUhKBgYEcO3bM9fzRo0dPW3o6LCyMG2+8saxDzSE9PZ3p06fz0EMPAXD77bfz9NNPl+lg3fT0dBYvXsyYMWNc+0aNGsW0adNo4yyaU054uyWivFy7MPGJady3eAup6VmkYscz3Lt4Cx0bVs9zf58z6uR4D2vX2hV9n3rKlhd45BGbxCQm2rViAgLsfhH773PPZXdHwekJjiqcexfQkYEDiT9+/PQWleBg4mNiXMlLQV1AISEhORKTTp065Z+o9OpFJLbr4LQOoLffLqV3rCoajxIcEVltjGmLbcFxLvS3EHhVRA6UVnDlzciRI3nwwQdda7G4JzhxcXGkp2dPNgsPD2fq1Kll2t3ywQcfsHv3bh50rN2+evVq+vfvD0DTpk1ZsWIFZ5ThqMkjR44wc+bMHJXYn332WW666SaqV69eZnF4iyctEaWVhBR07fjENLYdOAkIUY1q+CT52XcshaCAAFcSAxBoDJv+OU5QQABJqQGcOliTkCZHCQoJ4K25GTz/aAhbt9qxMr/8Yhe8mzTJliG46iq7bkxWlk1wJk2yDyf37qbKTkRcXUCetKg49xXYBYRtUYk8dYrI2rVp27atR7OAtBVWlSWPV/NxJDIPlWIs5V5AQAAzZ85k9OjRZGZm5khwnHWQnEJDQ5kwYUKZxfbCCy+4Wmm6devG448/zn//+18AFi9ezKWXXlpmP3y2bNnC3XffzbfffgvYwmnvvfcew4YNK7cD9vJroXBviShOV0xJr71m5xHuWrCJDEdeERRoeH5UjFeuWxRNaoVyKl2QTIMJFNLjw9mz9gx+a5NFelYWaf/UIe7js2hw7X9JDztJTPsgLr4YnI2eN95o15EJDLTbXbtmV8CuTDIyMjh69GiRChcW2AUUEJBjFlDz5s3p2rXr6YnKZZfZhAbbZZRjTfCvvir9N65UMeSb4BhjugKbRCTL8XW+RGSj1yMrp4YNG0bLli3Ztm1bjllShw8fdn0dHh7O008/XSY1m0SEhx9+mJkzZ5KSkgLgWnl44sSJTJ8+vUwG12VmZvLZZ59xzTXXuMYpXXjhhTz77LN07Nix1K9f2vJqoQgKCGDfsRQiI0I8SoC8fe1tB05y76LNruQGID1TuGeRd65bkMREmPtBOg1ap9C/ZwgHd4ew69mh1Lp4I+HtDiFZhtS9kbzx9Raevq0jU1P+JPy6nwhqkMSzI6MZ2iWYoYOyz+fJfxV/7qLLS0pKSpFaVOLj4zlx4kS+5wsJCcmRlHTq1KnQekA1atQot39UKFWYglpw1gMNsAUw12NXL87rT3zBrjyssNPDZ86cyeDBgzl69Khrv3MhQIBatWrlmPZcWrKyspgwYQLz5s0jOTnZtT8kJIRHH32U++67r9RjOH78OK+++qqr9Qjg0Ucf5dZbb6V27dqlfv2y0qRWKOm51spIz8qiSS07lqmwBKg0rg1CoAnATkrMFhhgSnxdETh82P7bsKGdRn3JJXD11XbxuyUbD3DLTY2of+5f1Oz9F48Ni2HchNqsSk8hAwium0iTiSuoFlKFTo3asW5q3xIlJ6XVOuYJ9y6goiyz7/yDIy/VqlXLkZS0adOm0CnMFaoLqH59+wHLa79SHioowWmJXXzP+bXy0KBBg+jevTtxcXGufc7uqvDwcJ5//vlSr/WRnp7OVVddxRdffJEjuQG7tsy0adOYOHEi1apVK/G1vvjiC5YtW8arr77q2rd9+3buv/9+lixZAtik6oMPPmD48OHlrs6JJyIjQnh2ZDT35vol6/xlXVgCVBrXjmpUg0w5fYGyzCwp1nVnzbLJzKhRdrtNG7jhhuxikJmZNuGJT0zj8W830+j/dlClRjKp6cLkLzaz7OFzWPNyAhlu654770FkREixEy5vto45u4CKkqgcPXqUjIyMPM8XEBBArVq1XElIs2bNOPPMMwtMVGrXrq2FYd3WFFOquPL9TSMi7kWeBPgnd10oAGOM70tI+xnTsCHvHz5Mwvr19qc/4GxYbtSoEZdffnmpXj8lJYWLL76YH3/88bS/EqtVq0Z6ejqDBw8ucaHP5ORkbr/9dj744ANEhBtuuIHY2FjGjRvnSu4GDBjAjBkzOPPMM0t0rfJgeJfG9DmjTp4tEYUlQEWVuzsmv2tPvzyGO3ONwZl+ed7X/f13OH4ceve22yNG2JlI779vt998Ezp3tgmOMXatmLZt7XPG2CrZAJv/sa1VQbWzV/YOCggg6VSm6x4EGkN6ZhaPXNix1Lrodh48SkpoZpHqARW0+GZwcHCOpKRjx46FLgpXs2bNitEFVMYtKiLC/v37aaKjxVUJeLqScSbQUERic+2PBGJFxCddVP6ykvFp8mgmdv69vPjzzxk2bFipXfrEiROce+65bNu2zTULIjw8nIyMDPr06cNNN93ERRddVOJxNxs3bmTEiBHExcWRmppKQEBAjuXM77//fiZNmkS9evVKdJ2KprjjRNyPW7PzSJG6Y5yzqE6mnKJKVjBntalOZEQIs2fbpOaFF+zrhg2DAwdg0ya7/eSTULUq3Hmn3U5JsS01nsTa55kVpKZnfx6qBgXw3/sGERkRwvvr9vDost8IDjRkZEmh8YsIJ0+ezDcp2XfwMIt+/J30pJNkpiSQlZJAVspJJCP/WkDOLqDCxqi4b4eHh1ecLiA/9+WXX3Lbbbe5ZqQqH2rQIP/k1k9a2kpaqiELqC8icbn2Nwd+ExGfLC1bXhKcdOysgxjgl6ysUvshGRsbS9++fdm5cychISFkZWXRuXNnxo8fz+WXX06tWrVKfI3MzEyefPJJnnrqqTzHEMycOZMJEyZoE7sXuY8vOZWZSZbYwcJO7smDu19/hR9/tLOPlmzaz/U3neLkr405467veHZkND+835h16+yqvwCbN9vVfqOiSh7z0k37T2utGt6lMYePJ9Hnsc9IOXmczNSTZKUkEHgqkZt61iMl4Xi+s4Dy6wIyxlC7dm1CImpwNDOEoNDqmNBqDIppTY8OzfNdvVY/n56799576dWrF5dddlmZXXPAgAFs3bo1x9hF5SMF/b4qYS+AtxSrVIMxZpbjSwGeMsa4D+YIBHrgpZWMKzLnZPFZUGrJzeHDh+nRowd79+6lffv2/N///R9XXnkljRo18to1du/ezciRI9m+fXueyU1ISAhxcXH6y8OL8hpf4iSZhvRj4UQ0sK07q78NYdo0WL3alhb4/HN44AE47yJ7jqAWtakenkJKWhb3Lt7Cf6fkHKMSE1O02FJSUgosXBhzOJYDh+NIPnmcOz88ytgCuoAeXWa7gNxbT5xdQAXVA6pZsyaBjrnj5W0WVXnw8ssvM336dFavXl1m19y9ezdr1qzxyvhAVbkVNtqzs+NfA3QA3JfiPQVsxBbHVAWoCbwM9APb3FfcZr0CmgqTfvyRCRMmcPnll3t9sT4R4b333mPixImkpqaetqZG1apVCQ4OJjk5mT179uRzFlUc7uNL0o+FkbilKdW67qZKtTSStjciflkXQm76gSa1QjlQFSIj7TiasDD4v/+zg4APpKYgWUJoyyOEtrR/EUuWuGZSuXcBebKuivORe/C6u4iIiOxaQJGRtGtzBpGRkYRWq8G7G4+SFRxBQGg1AkKrE1atBiseuphm9WuX6A+AkgxUVqf75ptvuOOOOwgLC6O3c2BWGXjppZcwxuTbaqeUpzztonoHuENE8l+H2wfKSxfVaYrbrOeDpsJjx44xbtw4Pv/8czIzMwkODqZq1aqkpKRQv359evbsSb9+/ejRowcxMTFlWuKhoklNtSUJ2rSxK/Fu2QLnXyAE9l9PYLNY0vbX5NAHvWk4+ieqtTqGSQrl5N+1mD6pLlf3ty11mZmZOWYBxcfHs23XPp5dut41NiUzxXYNNQ3LJOHEMeLj4wvsAnKfBeRJheXatWsXuMZTft1Xyn9s376ds846i8TERIYPH+6aDVna0tLSqFu3LgkJCYSFhbnWzFI+VFG7qNw8gF2dO0eCY4xpAqSLSB7NCpVYfjMOypmjR4/SqVMnDh48SP369enWrRsDBw7krLPOomvXrtqEXAyZmTaRCQ+Hkyfh3/+2BSEvvBDi4mDQIHjtNbj5ZqhVK5U+Z8fTrHMiC7ZtoUpKIvWGfMSg2mFUO57KvoOHSU05wUv3HWOqI5lxXz37NAFVCAyrTkDValQJq07z1q1o1aRBgcmLexeQtxQ020z5Xnx8PIMGDSIpKYlq1apx5ZVXltm1FyxY4Jrdmd/qy0p5ytMWnOXAfBF5I9f+G4HRInJeKcVXIL9twYHSyXq9dU4PR8VnZGSwdu1aoqKifLIoX0UYUzF/PtSrJ3TrlsDhw/FER8czYsQR+g8+xK69h5k9M4kuXeJp2NAmKLt3x5OaGs/Ro0c86gLypEUloGoEo9/dSpoJcXUB5TcwWVVup06d4uyzz2bLli2kp6cTHBzMwYMHy+z/f+fOndm6dSsAVapUyVG/T/lIJZhFdRzoKSJ/5NrfFlgnIj5ZklYTnGKesxw0OfpyZdqCOGuMOcek/P13PPv3xxMYaLc//jgeY+Jp0MAmLL//fgQ4SlZWfj+oDdVq1KBBvbqFJiru20Ut86HdQqowIsJVV13FkiVLXJMIYmJi2ORcN6CU/fLLL5xzzjmuxD4gIEBbcfxMVlaWX67rVNIuqipAXj9Rq+azX6liK826Te7S0tKKXGH5+PHj+S6QGBQURFBQJOHhkTRoEEm7du3o3PlsmjSJpH59m6QEhVXnwS/+JiPIMci2agShIUGl3pqi3UKqME899RRLly51JTchISFl2j01Y8aMHBXMs7KyEBFde8iPXHjhhUycOJGLL77Y16F4xNME53/ABMfD3S3Az16NqKIojZU/K0l9lqLWbRIREhISPFqp1n1fQQMYw8PDiYyMJC0tksTEOlx8cQsiIyP54YdIYmPr8PzztiVl585IataMZPjwOkRERBT6w3jzP8epvu1/JKRlD+r1Vk2qwugsI5WfJUuW8MQTT+RY/iEwMJDhw4eXyfWPHz/OokWLciwWaowhMzOzQpZ2Ka9+++03/vOf/1S4BOchYIUxJhpwLMjOIOBMYHBpBFbulUbfpJ/0d5amzMxMQjOTSIrbS+rJE2SlniQr+STJpxJ5J3E5yQkn8kxeCuqrr1Wrlqubp1GjRrRv35n69SOpW7cOBw9G8vPPkTzxRCT16kXy5pt1ePXV2hw7VpWgIPjgA1i/Hp5/3vbspaVBcHB2L9/QoUV7f6VZk0qp4ti+fTujR48mLS3nys8RERF06NChTGJ45513Tuv6CAwMJD09XRMcP3Ls2DG+/fZbkpOTS7waflnw6JMjIuuMMb2BewDncpa/ABNFZHNpBafKN2cXUFEKFx47dizfLqBXvq+SYzxK27ZtC11mPyGhFl9+GchVV0HNmjBnDlx/Pfzzj52KPXcufPcdREdDvXowaRKMHQvOn7VXXWUfTkUc+nIab9ekUqqkqlSpQosWLdi3b5+rVdMYw4gRI8qse2jBggWAXezx1KlTrhh0LRz/kZmZSVJSEmFhYXzxxRelXlPRGzwaZOyv/HqQsR85bTZSEUfFiwiJiYlFSlSOHDlSYBdQWFhYobV/gsKqkxEUQfsWDTmjWSOqVat22g/czEz46y+oW9cmMJs32ynWL78M3brB11/D+efDqlXQvz/89hssXQo33miP8ZWKMENMVRxZWVkEBweTmZlJeHg4IsInn3zCeeeVzQTZEydOsHHjRgYNGgRAs2bNOHLkCHFxceWipaAyiI2NpXnz5qSmpjJs2DA+//xzX4fkUtJBxu4naoAtreQiIntLEJsqRblnIz01Iop+27bln6iMH59n4uJJF1BkZCQNGjSgU6dOhc4Cqlq1apHeh4jtFjp+HGbMgAsusFWvt2+HTp1g3jy4+mqoXt0WhHT8EUjfvrBvHzgrVnTsaB++puNhlD9ZsWIFmZmZPProo9SqVYu5c+fSv3//Mrt+jRo1GDBgAABDhw7lq6++0gHGfiY2Npbg4GBSU1P57rvvSEpKIjzcJ2UoPeZRgmOMqYEtpXQFuZIbB6+tBGaMuRKYAjQDDgHjROQHb53fF0rrr/VTp04VOAvowKFYPvt5BxlJ2avXXvZEIra02OmqVKmSIwlp06YNvXr1KjBRqVWrllf7yEXgv/+1rTGdOtlF8Tp0gIkT4Z57ICgInnoK6tSxCU6bNvD223DOOfb4li1hxYrs84WF2Ye2mCiVt6ysLIYMGQLAfffdR0hICLfddluZx/HPP/8AcMkllwClV7dPFc/hw4dd35Pg4GC++OILRo0a5eOoCubpb6bnsMWwRwAfAzcAjYE7gLu8FYwxZgjwDDAa+Alo6K1z+4on67mICElJSUWarhwfH09iYmK+1w0LC6N6zVpkZlXFhFQjuHpdAkKrExpRg3GDOhPTpulprSzVq1cvkx8qWVmQmGhbWwDuuguaN4fbb7etNCNG2NV9//MfqFrVDuRt29a+NjzcHuscCxMcbMfUFKQ4a+poQqQqi/nz5wMwZ86cIq+v5E2//PILAF26dPFZDCp/sbGxrlluCQkJvP322xUmwbkAGCMiPxhjMoENIjLfGHMQuAlY5KV4HgUeE5F1ju39XjpvmcnKynItBPfXPwe55Y2VpCaccNQASuC6zxPp16wqJ4/nrBfkHFiXl5o1a7paTxo0aEBUVFSBi8JFRkYSGhpKfGIafZ5ZQWp69qydqkEB3Hd32a5gu3w5HDsGzv8LZ59ti0I6u3C3bbNjaZw++wyaNcvefv31nOcrys/g4qyp46+LDCrlbadOneIqxyj6a665xqexrFtnf+xHR0f7NA6Vt8OHD+eYabdy5UoSExOJiIjwYVQF8zTBqQk4y0SfACKBncBa4E1vBGKMCQS6A0uNMTuxiwh+CtwjIilurxsPjAc7EK00ObuAijoLKCvXNODsNxlAYFh1tiU2oHGDupxxxhn07NmzwFlAtWrV4kRqZrFaE8pqxs7Jk7B3r+1SAnjiCTu1+tNP7farr8Lvv2cnOBMm2JYZp6++ynm+wgoXF6V1pahr6pTVIoNK+YOXX34ZgM8//9zrNceKat68eQB+P66jsjpw4ECOP8SDg4P5/PPPGT16tA+jKpinCc4uoBWwF/gduNIY8xN2yvhRL8VSHwgCLgf6AunAEuBh7Do8AIjIbGA22FlUnpzY2QVUlEQlPj6ehISEfM8ZGhqaIylp2rTpaYlKUFh17v3crlobGFoNExxGaHBgkVatLWlrgrdWsHUO8gU7I2nZMpg+3e57+GE7/frECbsdFma7kpxeeQXc63KOHVusEICi34+irjtT1IRIqfIqMTGRu+66i4iICC644AJfh8O+ffvo3Lmzr8NQ+XCOkXJydlNVhARnDhANrAKeBpYBtwIB2HE43uBspXlJRA4CGGNmkCvBcZeUlMSyZcs8amXxpAsoMjKSevXq0aFDh0KnMIeGerYwW2ir02sAefqL0lutCUWdsRMXB+vWweDBdkbS3Ll2fMzu3Xbw76ZNMHs2TPx3GgmSwogrwjj33GCysiAwEO68M+f5GnppJFVx7kdRW7F0IT5VWUyZMgWA5cuX+3xA79Gj9u/kq9wXnVJ+Zf/+00eMrFixwq+7qTxd6O8Ft69XGGPaY7uT/hSRX70RiIgcM8bsI+cUnwJbaLZv355jyejAwMAcSUirVq3o0aNHgYlK7dq1S3WlTGcLyrYDJwEhqlENj48tzdaE5GQ4npJGXHIKJ/aH8fKMYKZNs7OSvv/edidt2ABdu9p9V19tV/EFuOUWaNF/P8P+kzNpCAws3XEqxb0fRWnF0oX4VGUQGxvLjBkz6NSpEz179vR1OK6Cnt26dfNtICpfKSkpBAQEuIZgnHPOOXTs2NHnyXFB8v3N7hhM3FBEYo0xbwN3iEgCuNa9KY21b94BbjPGfIXtopqEbS3K0xlnnMH777/vSlZq1Kjhlzd7zc4jxepm8lZrwokTsGCBnUrdoQNs3AjduwuNRm2lVvsjJBwI59S6XsTGVqFNGxg0CNauta8FOybGfVzMybQ07v+47MeplOR+FKUVSwtTqorulltuAWDRIm/NDymZjRs3AjqDyp99++23GGN45513mDRpEp988gl16tTxdVgFKqjueQrgbHcaix30W9oexxbv3IEd6/MLMC2/F9eoUYMePXrQunVratas6ZfJjXu3SkJaBqnpWdy7eAvxiWmFHutsTagaFEC1kCpUDQrIszVBBPbsAWcL4okT0K+f7VoC2/Iyfjx8843drt0gjdp9dyLVE2zRx8gTVB/7Le1jbEy1a0OvXrZ7Ki/OlhR3zpaU0uTp/fDWtWKa1tTkRlU4u3btYtGiRQwbNox27dr5Ohwge6p6XV8uL64KVLNmTWrUqEHz5s0B2LvX/9f3Lahv5kfgU2PMBsAAs4wxef4GE5EbvBGMiKQDEx2PCqGk3UzurQmNa4ZSp5o95pln7KJ2V1xh15Vp1w5uvRWee86uLxMSYhfFA1uS4O+/s6den8hMoeGAv4pd0dqX41S0dUWpkhkzZgwAb7zxho8jybZ+/Xrq1avn6zCUB5yzl/fs2UPXrl19HE3BCkpwrgXuBs7AjoWJBApvdlA5FDcZ2LQJEhJsqYHIiBDGXBZCvXq2JAHAu+/aLqcrrrADe997L7tLyRj49tvscxkDLVqUPCYnX49T0TIHShXPL7/8ws8//8yECRNo5Kxf4mMpKfbv5muvvdbHkShPOBOcct2CIyKHsdXDMcb8jV3oL76sAqso8ksGaoeHcPSo7Q4CmDXLFo2cOdNu33OP7Wr66Se7PXCgncHktHlzdgsNZK8xU5KYipI0aEuKUuWPczr4U0895eNIsm3duhWAs88+28eRKE84x904B4b7M09nUbXMvc8YE+ToUlKFGN6lMeEJdVn+fQZ3/zuQyIgQbrrJrth74IB9zd698Mcf2cfMmJFzDMwDD+Q8p3tyU9yYSpqgaEuKUuXH8uXLOXz4MNOmTaNGDc9nc5Y2Z4mGM88808eRKE84x7p+//33Po6kcEak8LXyjDG3A/tFZLFj+y3swONdwHAR+aOg40tL9+7dZf369b649GlSUmxl6+ho22X00Ue2KORPP9nxMI8/DlOm2DpKYWG2C+mPP+yUaz8cG62UqkCysrJcKxWnpKRQtWpZzBnxzPDhw/nss8/Iysryy4ki6nTh4eEkJyfjSf5QFowxG0Ske+79Bc2icnc7EOc4UT9sVfGrgE3A816KsVxwfj9//90uaHfokN3+6CO7Zszff9vtiAg77uXkSbt96622HlNYmN0eMsTu8/f/z/GJaWz+57hHs76UUv5pwYIFALz11lt+ldwAfPbZZwQEBGhyU4706tXL1yF4xNMEpzHg+NXNxcBCEVkATAXKxzstoqQk+PLL7KnXP/9sZyM5W+ViY20RyF277PbgwbBwoX0NwEUXwZIl2du1aoEftQp7ZMmm/fR5ZgXXvPk/+jyzgqWbyl3tU6UqvfT0dNfMqbElqZNSCjIdVXad8anyoW/fvgCkpqb6OJKCeZrgnAScc/iGAN85vk6nbNbHKRVpaXamEsDRo3DVVTapAdsyM2wYfP213W7aFC691CYqYGcwJSZCnz7Zz19+eflLYvJTkvV7lFL+w1lQc9myZT4vqJnbjh07ABgyZIiPI1FF0bKlHZabuz6Vv/E0wfkGeMMY8yZ22rgjDSCK7JYdvyZip1avWmW309JsAcgXHEUoIiLseJnDh+12ixawejWMHGm3GzSw9ZdiYux2YCAEeHr3SsBXXUS+WsxPKeU9iYmJ3HnnnYSHhzNs2DBfh3Ma50wcHWBcvjgX+9uzZ4+PIymYp0WYbsGuKNwMuFxEnBXEuwIflkZgxXHwoG2RadvWbl9xBbRubQf7GgMPPgjnnQcDBtiBv08+mV2CIDgYdu7MPldgoF2DxpdKWkm8qOIT01yzqrTopFLl36OPPgr4R0HNvKxcuRKADs5FvFS5UF7WwvFoFpW/atmyu9x223pX9eqePW1LzHeODrSbb4bmzbOnWO/fD/XrQynW1vSa+MQ0+jyzgtT07CSjalAA/71vUKlMzc4rmQJOWyunNBMspZT3xMbGUr9+fTp27Mi2bdt8HU6e/G02jvLMqVOnCAkJ4YEHHuDJJ5/0dTj5zqIqqNhmbWdLjTGmdkEnd2vRKVMnT9qBvc4EZ9q0nGvHvP56ztc3Lke/m0uzknhu7uNt3Itn/ve+Qfz3vkG6mJ9S5dDtt98OwOLFi30cSd5EhOTkZAYNGuTrUFQRBQcHA7B69WofR1Kwgtoy4owxDUUkFjiCLdeQm3Hs98nItRYtbNVrp8GDfRFF6SjLLqKCkiktOKlU+fPXX38xf/58zj//fNq3b+/rcPK03zFFdcSIEb4NRBXbT86l9v1UQQnOIOCo29d+14boh13KXlOW9Z50vI1SFYtz2vWbb77p40jy51zB2N8LNqq8tW/fnu3bt/s6jAIVVIvqe7evV5VJNCqHsqr35OvimUop7/nll1/46aefGD9+PI39uF9+3bp1AMQ4p6aqcqV///5s376drKwsAspiSnExeDTc1hiTCTi7q9z3RwKxIuJfiytUIGVV70mLZypVMTingz/zzDM+jqRg77//PgARERE+jkQVR6dOnQA7mL1BgwY+jiZvns4nyq8zKAQ45aVYlI9p8UylyrfvvvuOQ4cO8cQTT1CzZk1fh1OgPXv26PTwcsy5Fs7evXvLZ4JjjHHMT0KAm40xiW5PBwJ9Af/uhFNKqUogKyuLwY6ZFnfddZePoynYsWPHALj66qt9HIkqLudaOHv27KFHjx4+jiZvhbXg3Ob41wD/AjLdnjsF7AZu9n5YSimlimLhwoWAHVjsbwU1c3OuYNytWzffBqKKzZng7N6927eBFKDABEdEWgIYY1YCl4nIsTKJSimllMfS09O58sorARg3bpxvg/HAxo0bAS3RUJ45u0A3bNjg20AK4NEYHBEZWNqBKKWUKp7XXnsN8M+CmnlZsGABAPXr1/dxJKq4nKU/fvjhBx9Hkj+PSzUYY9oCl2PrUQW7PyciN3gtIGPaAL8Ci0TkmoJe2717d1m/fr23Lq2UUuVOYmIi1apVIywsjMTERL+sOZWbMYbIyEiOHDni61BUCdSqVYvjx4/7vNRGfqUaPJq8boy5ENgCXAzcALQDhgGXAnW8GCfAK8DPXj6nUkpVSM6Cmt999125SG5SU1MBuOaaAv9+VeXA2Wef7esQCuTp6jyPAY+KSG8gDbgWaAEsB1Z5KxhjzJXAceA7b51TKaUqsnnz5tG6dWt69erl61A8kpSURFBQEBdddJGvQ1El5ExwkpKSfBxJ3jxdB6cdMN/xdToQJiKpxpjHgM+BGSUNxBhTHZtIDcLO2MrvdeOB8ZA9ilsppSqrPXv2+LyLoCgiIyM5dUqXT6sI+vbtS7t27cjKVerHX3jagpMAOOcdHgTOcHxdBajlpVgeB94SkX0FvUhEZotIdxHpXrduXS9dWimlyqfg4GBCQnSBTlX2+vXrx/bt26lWrZqvQ8mTpy04/wPOAX7Dttg8b4yJwY7BWVvQgZ4wxnQBBgM6Z1AppZRSJeZpgnMn4CwYMhWoBowEdjieK6kB2DE9ex2D5CKAQGNMRxHRUrNKKaWUKhJP18H5y+3rZGCCl+OYDXzktn03NuHx9nWUUkopVQl4Wk28LoCIxDm2OwOjgW0i8mFJg3AkTclu10sEUp3XU0oppZQqCk+7qBYA7wFvG2PqAKuBA8BtxphGIvK8N4MSkanePJ9SSimlKhdPZ1FFA+scX18O7BSRKOA64KbSCEwppZRSqrg8TXBCgUTH14OBpY6vNwJNvR2UUkr5C2MMd911l2v7ueeeY+rUqb4LqBRMmzaNqKgooqOj6dKlC//73/8KPWby5MksX74cgJkzZ5KcnFzIEZ6ZOnUqzz33nFfONW7cOBYtWuSVc3kqIiKi8BdVghj8gacJzp/AZcaYpsB5wDeO/fWxKw8rpVSFFBISwscff1zsukkZGRlejsi71q5dy7Jly9i4cSNbtmxh+fLlNG1a+N+tjz32GIMHDwa8l+D4+72qzMrj98bTBOdR4BlgN7BORJzp/VDgl1KISyml/EKVKlUYP348L7zwwmnP7d69m0GDBhEdHc25557L3r17AdtycPPNN9OzZ0/uvfdeOnfu7CpKGBkZydy5cwG47rrr+Pbbb9m9ezd9+/ala9eudO3alR9//NH1/Keffuq63tVXX82SJUu8+v4OHjxInTp1XIsF1qlTh/3793PZZZcBsGTJEkJDQzl16hSpqam0atXK9R4XLVrErFmzOHDgAAMHDmTgwIEsXbqULl260KVLF9q1a0fLli0B2LBhA/3796dbt24MHTqUgwcPAjBgwAD+/e9/0717d1588cUcsb3xxhucddZZxMTEMHLkSFcSNW7cOG6//XbOPvtsWrVq5WqlERFuvfVW2rVrx+DBg4mNjfXqvSquAQMG4CwMfeTIEVq0aAHACy+8wA032FrVv/76K506dSI5OZldu3Zx/vnn061bN/r27cv27dsB+74nTJhAr169aNWqFatWreKGG26gQ4cOjBs3Lsc1J02aRFRUFOeeey5xcXa+zqZNm+jVqxfR0dFceumlHDt2rMD45syZw/Dhwxk0aBDnnnsuycnJXHHFFXTs2JFLL72Unj174tcFr0XEowe2teZMIMBtX0+gvafn8PajW7duopRSpSk8PFxOnDghzZs3l+PHj8v06dNlypQpIiJy0UUXyZw5c0RE5K233pJLLrlERETGjh0rF154oWRkZIiIyE033STLli2TX3/9Vbp37y7/+te/RETkjDPOkMTERElKSpKUlBQREdmxY4c4f7atWrXKdc7jx49LixYtJD093avvLyEhQWJiYqRNmzYyYcIEWbVqlaSnp0vLli1FROSuu+6S7t27y5o1a2TVqlVy5ZVXut7jwoULRUSkefPmEhcXd9q5R40aJS+//LKcOnVKevfuLbGxsSIi8tFHH8n1118vIiL9+/eXCRMmuI6ZMmWKTJ8+XUREjhw54tr/0EMPyaxZs1zXvvzyyyUzM1O2bdsmrVu3FhGRxYsXy+DBgyUjI0P2798vNWrUcMVYVsLDw0/b179/f/n5559FRCQuLk6aN28uIiKZmZnSt29f+fjjj6Vbt26yZs0aEREZNGiQ7NixQ0RE1q1bJwMHDhQR+75Hjx4tWVlZ8umnn0q1atVky5YtkpmZKV27dpVffvlFREQAmTdvnoiIPProo3LLLbeIiEjnzp1l1apVIiLyyCOPyB133FFgfO+88440btxY4uPjRURk+vTpMn78eBER+fXXXyUwMNB1nC8B6yWPHMHTWVSIyGHgcK59hXfUKqVUOVe9enWuu+46Zs2aRWhoqGv/2rVr+fjjjwG49tpruffee13PjRo1isDAQMDW7Fm9ejXNmzdnwoQJzJ49m/3791OrVi3Cw8M5ceIEt956K5s2bSIwMJAdO3YA0L9/fyZOnEhcXByLFy9m5MiRVKni8Y9tj0RERLBhwwZ++OEHVq5cyejRo3n66adp3bo1v//+Oz/99BN33nknq1evJjMzk759+3p03meffZbQ0FBuueUWtm7dytatWxkyZAgAmZmZNGzY0PXa0aNH53mOrVu38vDDD3P8+HESExMZOnSo67kRI0YQEBBAx44dOXzY/mpavXo1Y8aMITAwkEaNGjFo0KDi3pYyERAQwJw5c4iOjuamm26iT58+JCYm8uOPPzJq1CjX69LS0lxfX3zxxRhj6Ny5M/Xr16dz584AREVFsXv3brp06UJAQIDrnl5zzTVcdtllnDhxguPHj9O/f38Axo4dm+Ma+RkyZAi1a9cGYM2aNdxxxx0AdOrUiejoaO/ciFLi3f8pSilVQf373/+ma9euXH/99R69Pjw83PV1v379eOWVV9i7dy/Tpk3jk08+YdGiRa5k4YUXXqB+/fps3ryZrKwsqlat6jr2uuuuY968eXz00Ue888473n1TDoGBgQwYMIABAwbQuXNn3n33Xfr168eXX35JUFAQgwcPZty4cWRmZjJ9+vRCz7d8+XIWLlzI6tWrAdtTEBUVxdq1eVf2cb9X7saNG8enn35KTEwMc+bMYdWqVa7n3OtviZ8XG61SpYqrIGVqamqO5/78808iIiI4cOAAAFlZWdSsWZNNmzbleS7n+w4ICMhxDwICAvIdJ+OoEFCs+PL73pQHno7BUUqpSq127dpcccUVvPXWW659Z599Nh99ZBdhf//99/Nt3WjatClHjhzhzz//pFWrVpxzzjk899xz9OvXD4ATJ07QsGFDAgICeO+998jMzHQdO27cOGbOnAlAx44dvf6+/vjjD/7880/X9qZNm2jevDl9+/Zl5syZ9O7dm7p16xIfH88ff/xBp06dTjtHtWrVSEhIAGx181tuuYWFCxe6WrvatWtHXFycK8FJT09n27ZthcaWkJBAw4YNSU9P5/333y/09f369WP+/PlkZmZy8OBBVq5c6dE9KG0tWrRgw4YNADlmdZ04cYLbb7+d1atXEx8fz6JFi6hevTotW7Zk4cKFgE3eNm/eXKTrZWVlua7zwQcfcM4551CjRg1q1arFDz/8AMB7773nas3JL77c+vTpw4IFCwD47bff+PXXX4sUV1nTBEcppTx011135ZhN9dJLL/HOO+8QHR3Ne++9d9ogWXc9e/akbdu2gO2y2r9/P+eccw4AEydO5N133yUmJobt27fn+Ku5fv36dOjQweOWo6JKTExk7NixdOzYkejoaH777TemTp1Kz549OXz4sCsJi46OpnPnznm2BowfP57zzz+fgQMHMmfOHOLj4xkxYgRdunRh2LBhBAcHs2jRIu677z5iYmLo0qWLayB1QR5//HF69uxJnz59aN++faGvv/TSS2nTpg0dO3bkuuuuo3fv3kW/ISWUnJxMkyZNXI8ZM2Zw991389prr3HmmWfm+PxMmjSJW265hbZt2/LWW29x//33Exsby/vvv89bb71FTEwMUVFRRR5YHh4ezk8//USnTp1YsWIFkydPBuDdd9/lnnvuITo6mk2bNrn25xdfbs7u0o4dO/Lwww8TFRVFjRo1inGXyobx96a9gnTv3l38egS3UkqVUHJyMp07d2bjxo1+/ctEVXyZmZmkp6dTtWpVdu3axeDBg/njjz8IDg72aVzGmA0i0j33fo/H4Bhj6gPXAq2BR0TkiDGmD3BARP72XqhKKaXAjmW58cYbmTRpkiY3yueSk5MZOHAg6enpiAivvvqqz5ObgnjUgmOM6QZ8B/wNRGGnhv9ljJkKtBWRq0o1ynxoC45SSilVueXXguPpGJzngBdF5EwgzW3/10AfL8SnlFJKKeU1niY43YB389h/ELsAoFJKKaWU3/A0wUkBauWxvz3gH2thK6WUUko5eJrgLAGmGGOcqwqJMaYFtj7V4tIITCmllFKquDxNcO4GagNxQBiwBtiJrST+cKlEppRSSilVTB5NExeRk8A5xphBQFdsYrRRRJaXZnBKKaWUUsWRb4JjjMkEGopIrDHmbeAOEVkBrCiz6JRSSimliqGgLqoUIMLx9VigagGvVUoppZTyGwV1Uf0IfGqM2QAYYJYxJiWvF4rIDSUNxDGA+VVgMHa8zy7gARH5sqTnVkoppVTlUlCCcy12cPEZgACR5FzkrzRi+QfoD+wFhgELjDGdRWR3KV5XKaWUUhVMvgmOiBwG7gEwxvwNjBGR+NIKRESSgKluu5Y5rtsN2F1a11VKKaVUxePpLKqWpR1Ibo7inm2BbWV9baWUUkqVbwXNoroTeFVEUh1f50tEZngzKGNMEPA+8K6IbM/13HhgPECzZs28eVmllFJKVRD5VhN3dA91F5F4x9f5ERFp5bWAjAkAPgCqA5eISHp+r9Vq4koppVTlll818YLG4LTM6+vSZIwxwFvYAp7DCkpulFJKKaXy42mphjwZY5obYxZ4KxjgNaADcLGI5DklXSmllFKqMCVKcICawEgvxIExpjlwE9AFOGSMSXQ8rvbG+ZVSSilVeXg0i6osiMge7IKCSimllFIlUtIWHKWUUkopv6MJjlJKKaUqnAK7qIwxSws5vroXY1FKKaWU8orCxuAUVpohHihojRyllFJKqTJXYIIjIteXVSBKKaWUUt6iY3CUUkopVeFogqOUUkqpCkcTHKWUUkpVOJrgKKWUUqrC0QRHKaWUUhWOJjhKKaWUqnA0wVFKKaVUhaMJjlJKKaUqHE1wlFJKKVXhaIKjlFJKqQpHExyllFJKVTia4CillFKqwtEERymllFIVjiY4SimllKpwNMFRSimlVIWjCY5SSimlKhy/SnCMMbWNMZ8YY5KMMXuMMVf5OiallFJKlT9VfB1ALq8Ap4D6QBfgc2PMZhHZ5tOolFJKKVWu+E0LjjEmHBgJPCIiiSKyBlgKXOvbyJRSSilV3vhTC05bIENEdrjt2wz0d3+RMWY8MN6xmWaM2VpG8alsdYAjvg6iktF77ht638ue3nPfKM/3vXleO/0pwYkATubadwKo5r5DRGYDswGMMetFpHvZhKec9L6XPb3nvqH3vezpPfeNinjf/aaLCkgEqufaVx1I8EEsSimllCrH/CnB2QFUMca0cdsXA+gAY6WUUkoVid8kOCKSBHwMPGaMCTfG9AEuAd4r4LDZZRKcyk3ve9nTe+4bet/Lnt5z36hw992IiK9jcDHG1AbeBoYA8cD9IvKBb6NSSimlVHnjVwmOUkoppZQ3+E0XlVJKKaWUt2iCo5RSSqkKp1wmOFqzqniMMSHGmLcc9yzBGLPJGHOB2/PnGmO2G2OSjTErjTHNcx37tjHmpDHmkDHmzlznLvaxlYUxpo0xJtUYM89t31WO70eSMeZTxzg053MFfs5LcmxlYYy50hjzu+M+7DLG9HXs1896KTDGtDDGfGGMOeZ4/y8bY6o4nutijNnguG8bjDFd3I4zxphnjDHxjsczxhjj9nyxj62IjDG3GmPWG2PSjDFzcj3nk892Qcf6jIiUuwfwITAfuzjgOdgFAaN8HZe/P4BwYCrQApvcXoRdZ6gFdhXLE8AooCowHVjnduxTwA9ALaADcAg43/FcsY+tTA/gG8d9mOfYjnLc/36Oz/IHwEdur8/3c16SYyvLAztZYQ/Qy/F5b+x46Ge99O75F8Acx71pAPwK3A4EO74Xk4AQx749QLDjuJuAP4Amju/Rb8DNjueKfWxFfQCXASOA14A5bvt98tku7Fif3SdfB1CMb2w4tiBnW7d97wFP+zq28vgAtmBrgI0Hfsx1n1OA9o7tA8B5bs8/juMXakmOrSwP4EpgATbBdCY4TwIfuL2mteOzXa2wz3lJjq0sD+BH4MY89utnvfTu+e/AMLft6cB/gPOA/Tgmtjie2+v2C/JHYLzbczc6f0GW5NiK/gCeIGeC45PPdmHH+upRHruo8qtZFeWjeMotY0x97P3chr1/m53PiV2XaBcQZYypBTR0f56c97wkx1Z4xpjqwGNA7u6K3PdtF47EhMI/5yU5tsIzxgQC3YG6xpidxph9ju6SUPSzXppmAlcaY8KMMY2BC4CvsPdgizh++zlsIZ/7yun3vLjHVja++mzne6xX3lUxlccEx6OaVapgxpgg4H3gXRHZjr2vJ3K9zHlfI9y2cz9HCY+tDB4H3hKRfbn2F3bfCvqcl+TYyqA+EARcDvQFugBnAg+jn/XStBr7S+0ksA9YD3xKwfeNPJ4/AUQ4xtKU5NjKxlef7cK+Rz5RHhMcrVlVQsaYAGyXxSngVsfugu5rott27udKemyF5hgMORh4IY+nC7tvBX3OS3JsZZDi+PclETkoIkeAGcAw9LNeKhw/V77Crkgfjh2XUQt4hqJ/nqsDiY5Wm5IcW9n46rPtlz9zymOCozWrSsDxV81b2L9wR4pIuuOpbdj76HxdOHZcxzYROQYcdH+enPe8JMdWdAOwg7j3GmMOAXcDI40xGzn9vrXCDqLcQeGf85IcW+E5Pnf7APdfcs6v9bNeOmoDzYCXRSRNROKBd7BJ5TYgOlerSjT53FdOv+fFPbay8dVnO99jvfKuisvXg6SKObDqI+wskXCgD5VwhkgJ7t3rwDogItf+uo77OBI7Cv4Zco6gfxr4HvsXWXvsh/38kh5b0R9AGHY2ifPxHLDIcc+cTfl9HZ/leeScCZXv57wkx1aWB3bc089APcdn7wdsd6F+1kvvnv8F3A9UAWoCn2Bn+DlnQt2BTcRvJedMqJuxA5QbA42wvxhzz6Iq8rEV9eG4v1WxM5vec3xdxVef7cKO9dl98nUAxfzm1sb26yZhR9Nf5euYysMDaI79KzYV26TofFzteH4wsB3bvL8KaOF2bAi2TthJ4DBwZ65zF/vYyvTAbRaVY/sqx2c4CVgC1HZ7rsDPeUmOrQwP7BicV4Hj2Cmts4Cqjuf0s14697yL454cA45gZw7Wdzx3JrDBcd82Ame6HWeAZ4Gjjsez5Jw1VexjK+LD8XNEcj2mlvTzWVrH+uqhtaiUUkopVeGUxzE4SimllFIF0gRHKaWUUhWOJjhKKaWUqnA0wVFKKaVUhaMJjlJKKaUqHE1wlFJKKVXhaIKjlKpUjDEtjDFijOleSucPMsb8YYzpVxrnL0IcnY0x+x2ryipV6WiCo5SfMsbUN8a8YIz50xiTaoyJNcb8aIy5zRgT4fa63Y5f2OJ43T/GmE+MMRfncU5xeyQYY9YbYy4r23fmc/9gKyNvAjDGDHDcjzpeOv944ICIrHacP9+Eyhizyhjzstt2jDFmiTHmkON7udcYs9gY09ztNe7fw2RjzF/GmA+MMX3dzy0iv2JXLc9dxV6pSkETHKX8kDGmBXbF1vOBR4CuQE/gSeBcYHiuQx7D/tJuC1wJ7AY+cf/l6eb/HK89C9gMLDTG9Pb6myiAMSa4LK/nTkQyReSQiGR4+9yOekm3Y+u9FfXYusB32NXFL8Quh38tsIvTCxk6v4cdgBuxhXO/N8bck+t17wATjDFVihqPUuWer5dS1oc+9HH6A/gS29IQns/z7svY7wbuzuM147FLuA902yfA5W7bQUAy8FQ+12nhOOYqYA22zMd24Lxcr+sIfI6tHhyLrYPVwO35OcAy4D5sEczYAt57L2AFtszECcfXjRzPnY+tKXUMuyz/10CHosTr9prubl+7P+Z4cq18Yu8OZAE187peHq9fhS1OCTACyMRRY6mAa+T4HrrtfxLIAM5w2xfsuAeDff2Z1oc+yvqhLThK+RljTCQwFHhFRJLyeo2IeFJj5S3sL+eR+b1AbDX5dGyiU5BnsbWcugDfAkuMMY0d8TYEVgNbgR7YmjQRjte4/4zpj60CfT62Feo0xpgYYCWwE1sktBcwH1tIEGzx0JmO6wzAJkCf5dEilG+8ufxD9v2JwraK3FHEa7nrC+wSkeMFvCY/h7Ct6pfnqpztqecdx49w7hCRU9iuuP7FOJ9S5Zo2Wyrlf87AFhD8w32nMWYftkIz2IKdNxd0EhHJNMbsAFrl9bwxJgS4B9v98V0hMb0mIgscx92BTcAmAA87/t0sIve5nfs6bKtHd+Anx+5U4AYRSSvgOvcCm0RkvNu+393e0+Jc7+F6bPG/HtgWG0/idXHco6OOzVgROVKMa7lrDhwo4P3lS0TWGWOeBN4FXjHG/Ixt4XlfRPZ4cHy8MSaW07/fB7CtSEpVKtqCo1T50RfbIvETUNXDYwy2S8Pde8aYRGzX1J3Y7q0vCznPWucXIpIF/A/bLQXQDehnjEl0PrAtIwCt3c6xtZDkBmzV6BX5vhljWjsG1O4yxjirGgcAzYoQr0eKcC13odhErlhE5CGgAbZ78Vfs+JrfjDF5tnjlFTanf79THHEpValoC45S/mcn9pdUe/edIvI3gDEm2ZOTGGMCsYOOf8r11D3AV8BJEYktcbT2l/7nwN15PHfY7es8u9uKaBl2DM9NwH7smJPfsGNNvK041zqCTdLcnXT8WyOP19fEdn25iEg8sBA7+PsB4BfsQPMCW9kcs8DqAn/leqo2dpyWUpWKtuAo5Wccv+C+AW51nw5eDP/C/gJdlGv/IRHZWcTkppfzC8f4kB5kdx1txI5f2eM4r/sjoYgx/wIMyusJx9ik9sCTIrJcRH4HqpH3H2oFxZvbKce/gcW8Vu7427mPPRKRo9jEp1uu91Md2x2ZoyvSnWMMzS7smKbC3IUd4Pxprv2dsN8jpSoVbcFRyj9NBP4LbDDGTMVO587A/pKMwSZA7qoZYxpgBws3BUYBt2Fn6HzvhXgmOMbz/OqIrTnwmuO5V7DTlucbY54B4rDjQK4A7ipikjMdWGeMme04byq2a+4bbGvKEeD/jDH/AI0dr89rundB8ea2B9tidqEx5jNsl86xIlzL3Ups92E0jnV2HGYA9xtjDmC7zyKxrTJx2NYajDEXYaf4fwTswHY3XQwMA6bkuk5Nx/c7GNsNOBa4DrhXRHY5X+RYbqAxp39elKr4fD2NSx/60EfeD+xYjBexXVZp2PVRfgYeAKq5vW432VOc07CJwKfA8DzOmecU4wJiaOE45mrgR2zC8QdwQa7XtcG2FB3DJgh/AC/hmPKMY5q4h9c8BzsrKwU4DiwHGjqeG4SdrZXq+Heo476M8zRe8pi2jU02DmJbQOZ4cq0C4v8QmJ5rXyA24dziOMc+bCLTwu01rYDXsdPanVPkNwH/JueyAO5T2lOBvx3X7JdHLA8AX/n6s6wPffjiYUQ8mW2qlKqMHC0AfwNnich6H4dTKH+I1xgThW3JOUNEThb2+lKMIwT4ExgjIv/1VRxK+YqOwVFKKS8SkW3YAdctfRxKc2CaJjeqstIxOEop5WUiMtcPYtiBHcujVKWkXVRKKaWUqnC0i0oppZRSFY4mOEoppZSqcDTBUUoppVSFowmOUkoppSocTXCUUkopVeH8P4Vh+WenXM4HAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "sample_data.plot(kind='scatter', x=\"GDP per capita\", y='Life satisfaction', figsize=(8,3))\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(country, xy=(pos_data_x, pos_data_y), xytext=pos_text,\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", "plt.xlabel(\"GDP per capita (USD)\")\n", "\n", "save_fig('representative_training_data_scatterplot')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "execution": { "iopub.execute_input": "2021-10-23T06:48:32.294397Z", "iopub.status.busy": "2021-10-23T06:48:32.293513Z", "iopub.status.idle": "2021-10-23T06:48:32.735202Z", "shell.execute_reply": "2021-10-23T06:48:32.734561Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Saving figure overfitting_model_plot\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "full_country_stats.plot(kind='scatter', x=\"GDP per capita\", y='Life satisfaction', figsize=(8,3))\n", "plt.axis([0, 110000, 0, 10])\n", "\n", "from sklearn import preprocessing\n", "from sklearn import pipeline\n", "\n", "poly = preprocessing.PolynomialFeatures(degree=30, 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", "plt.xlabel(\"GDP per capita (USD)\")\n", "save_fig('overfitting_model_plot')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "execution": { "iopub.execute_input": "2021-10-23T06:48:32.740479Z", "iopub.status.busy": "2021-10-23T06:48:32.739229Z", "iopub.status.idle": "2021-10-23T06:48:32.748044Z", "shell.execute_reply": "2021-10-23T06:48:32.747254Z" } }, "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": 34, "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": 35, "metadata": { "execution": { "iopub.execute_input": "2021-10-23T06:48:32.762809Z", "iopub.status.busy": "2021-10-23T06:48:32.761466Z", "iopub.status.idle": "2021-10-23T06:48:32.765884Z", "shell.execute_reply": "2021-10-23T06:48:32.766422Z" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Subject DescriptorUnitsScaleCountry/Series-specific NotesGDP per capitaEstimates Start After
Country
BotswanaGross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...6040.9572008.0
KuwaitGross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...29363.0272014.0
MalawiGross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...354.2752011.0
New ZealandGross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...37044.8912015.0
NorwayGross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...74822.1062015.0
\n", "
" ], "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": 35, "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": 36, "metadata": { "execution": { "iopub.execute_input": "2021-10-23T06:48:32.777676Z", "iopub.status.busy": "2021-10-23T06:48:32.776317Z", "iopub.status.idle": "2021-10-23T06:48:33.193607Z", "shell.execute_reply": "2021-10-23T06:48:33.194180Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Saving figure ridge_model_plot\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(8,3))\n", "\n", "plt.xlabel(\"GDP per capita\")\n", "plt.ylabel('Life satisfaction')\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=\"Linear model on all data\")\n", "plt.plot(X, t0 + t1*X, \"b:\", label=\"Linear model on partial data\")\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=\"Regularized linear model on partial data\")\n", "\n", "plt.legend(loc=\"lower right\")\n", "plt.axis([0, 110000, 0, 10])\n", "plt.xlabel(\"GDP per capita (USD)\")\n", "save_fig('ridge_model_plot')\n", "plt.show()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.7.3" }, "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": 4 }