{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "**Chapter 1 – The Machine Learning landscape**\n", "\n", "_This is the code used to generate some of the figures in chapter 1._" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Setup" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First, let's make sure this notebook works well in both python 2 and 3, import a few common modules, ensure MatplotLib plots figures inline and prepare a function to save the figures:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false, "slideshow": { "slide_type": "-" } }, "outputs": [], "source": [ "# To support both python 2 and python 3\n", "from __future__ import division, print_function, unicode_literals\n", "\n", "# Common imports\n", "import numpy as np\n", "import numpy.random as rnd\n", "import os\n", "\n", "# to make this notebook's output stable across runs\n", "rnd.seed(42)\n", "\n", "# To plot pretty figures\n", "%matplotlib inline\n", "import matplotlib\n", "import matplotlib.pyplot as plt\n", "plt.rcParams['axes.labelsize'] = 14\n", "plt.rcParams['xtick.labelsize'] = 12\n", "plt.rcParams['ytick.labelsize'] = 12\n", "\n", "# Where to save the figures\n", "PROJECT_ROOT_DIR = \".\"\n", "CHAPTER_ID = \"fundamentals\"\n", "\n", "def save_fig(fig_id, tight_layout=True):\n", " path = os.path.join(PROJECT_ROOT_DIR, \"images\", CHAPTER_ID, fig_id + \".png\")\n", " print(\"Saving figure\", fig_id)\n", " if tight_layout:\n", " plt.tight_layout()\n", " plt.savefig(path, format='png', dpi=300)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Load and prepare Life satisfaction data" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "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", "
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
Australia132.110.51.17614.02720.83158847657...1.0850449922.38551214.41939119.4
Austria273.47.11.0837.61720.43117349887...1.1945199891.66950014.46759417.0
\n", "

2 rows × 24 columns

\n", "
" ], "text/plain": [ "Indicator Air pollution Assault rate Consultation on rule-making \\\n", "Country \n", "Australia 13 2.1 10.5 \n", "Austria 27 3.4 7.1 \n", "\n", "Indicator Dwellings without basic facilities Educational attainment \\\n", "Country \n", "Australia 1.1 76 \n", "Austria 1.0 83 \n", "\n", "Indicator Employees working very long hours Employment rate Homicide rate \\\n", "Country \n", "Australia 14.02 72 0.8 \n", "Austria 7.61 72 0.4 \n", "\n", "Indicator Household net adjusted disposable income \\\n", "Country \n", "Australia 31588 \n", "Austria 31173 \n", "\n", "Indicator Household net financial wealth ... \\\n", "Country ... \n", "Australia 47657 ... \n", "Austria 49887 ... \n", "\n", "Indicator Long-term unemployment rate Personal earnings \\\n", "Country \n", "Australia 1.08 50449 \n", "Austria 1.19 45199 \n", "\n", "Indicator Quality of support network Rooms per person Self-reported health \\\n", "Country \n", "Australia 92 2.3 85 \n", "Austria 89 1.6 69 \n", "\n", "Indicator Student skills Time devoted to leisure and personal care \\\n", "Country \n", "Australia 512 14.41 \n", "Austria 500 14.46 \n", "\n", "Indicator Voter turnout Water quality Years in education \n", "Country \n", "Australia 93 91 19.4 \n", "Austria 75 94 17.0 \n", "\n", "[2 rows x 24 columns]" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import pandas as pd\n", "\n", "# Download CSV from http://stats.oecd.org/index.aspx?DataSetCode=BLI\n", "datapath = \"datasets/lifesat/\"\n", "\n", "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": 3, "metadata": { "collapsed": false }, "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": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "oecd_bli[\"Life satisfaction\"].head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Load and prepare GDP per capita data" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "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", "
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
AlbaniaGross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...3995.3832010
\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 \n", "Albania 3995.383 2010 " ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Download data from http://goo.gl/j1MSKe (=> imf.org)\n", "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": 5, "metadata": { "collapsed": false }, "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", "
IndicatorAir 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
Brazil187.94.06.74510.416725.5116646844...14.97797216.3Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...8669.9982014
Mexico3012.89.04.23728.836123.4130859056...13.89636714.4Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...9009.2802015
Russia153.82.515.1940.166912.8192923412...14.97655616.0Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...9054.9142015
Turkey355.05.512.73440.86501.2140953251...13.42886216.4Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...9437.3722013
Hungary153.67.94.8823.19581.31544213277...15.04627717.6Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...12239.8942015
Poland331.410.83.2907.41600.91785210919...14.20557918.4Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...12495.3342014
Chile466.92.09.45715.42624.41453317733...14.41497316.5Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...13340.9052014
Slovak Republic133.06.60.6927.02601.2175038663...14.99598116.3Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...15991.7362015
Czech Republic162.86.80.9926.98680.81840417299...14.98598518.1Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...17256.9182015
Estonia95.53.38.1903.30684.8151677680...14.90647917.5Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...17288.0832014
Greece273.76.50.7686.16491.61857514579...14.91646918.6Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...18064.2882014
Portugal185.76.50.9389.62611.12008631245...14.95588617.6Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...19121.5922014
Slovenia263.910.30.5855.63630.41932618465...14.62528818.4Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...20732.4822015
Spain244.27.30.1555.89560.62247724774...16.06697117.6Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...25864.7212014
Korea302.110.44.28218.72641.11951029091...14.63767817.5Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...27195.1972014
Italy214.75.01.1573.66560.72516654987...14.98757116.8Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...29866.5812015
Japan241.47.36.49422.26720.32611186764...14.93538516.3Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...32485.5452015
Israel216.42.53.78516.03672.32210452933...14.48686815.8Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...35343.3362015
New Zealand112.210.30.27413.87731.22381528290...14.87778918.1Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...37044.8912015
France125.03.50.5738.15640.62879948741...15.33808216.4Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...37675.0062015
Belgium216.64.52.0724.57621.12830783876...15.71898718.9Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...40106.6322014
Germany163.64.50.1865.25730.53125250394...15.31729518.2Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...40996.5112014
Finland152.49.00.6853.58691.42792718761...14.89699419.7Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...41973.9882014
Canada151.310.50.2893.94721.52936567913...14.25619117.2Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...43331.9612015
Netherlands304.96.10.0730.45740.92788877961...15.44759218.7Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...43603.1152014
Austria273.47.11.0837.61720.43117349887...14.46759417.0Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...43724.0312015
United Kingdom131.911.50.27812.70710.32702960778...14.83668816.4Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...43770.6882015
Sweden105.110.90.0881.13740.72918560328...15.11869519.3Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...49866.2662014
Iceland182.75.10.47112.25820.32396543045...14.61819719.8Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...50854.5832014
Australia132.110.51.17614.02720.83158847657...14.41939119.4Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...50961.8652014
Ireland132.69.00.2754.20600.82391731580...15.19708017.6Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...51350.7442014
Denmark153.97.00.9782.03730.32649144488...16.06889419.4Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...52114.1652015
United States181.58.30.18911.30675.241355145769...14.27688517.2Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...55805.2042015
Norway163.38.10.3822.82750.6334928797...15.56789417.9Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...74822.1062015
Switzerland204.28.40.0866.72800.533491108823...14.98499617.3Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...80675.3082015
Luxembourg124.36.00.1783.47660.43895161765...15.12918615.1Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...101994.0932014
\n", "

36 rows × 30 columns

\n", "
" ], "text/plain": [ "Indicator Air pollution Assault rate Consultation on rule-making \\\n", "Country \n", "Brazil 18 7.9 4.0 \n", "Mexico 30 12.8 9.0 \n", "Russia 15 3.8 2.5 \n", "Turkey 35 5.0 5.5 \n", "Hungary 15 3.6 7.9 \n", "Poland 33 1.4 10.8 \n", "Chile 46 6.9 2.0 \n", "Slovak Republic 13 3.0 6.6 \n", "Czech Republic 16 2.8 6.8 \n", "Estonia 9 5.5 3.3 \n", "Greece 27 3.7 6.5 \n", "Portugal 18 5.7 6.5 \n", "Slovenia 26 3.9 10.3 \n", "Spain 24 4.2 7.3 \n", "Korea 30 2.1 10.4 \n", "Italy 21 4.7 5.0 \n", "Japan 24 1.4 7.3 \n", "Israel 21 6.4 2.5 \n", "New Zealand 11 2.2 10.3 \n", "France 12 5.0 3.5 \n", "Belgium 21 6.6 4.5 \n", "Germany 16 3.6 4.5 \n", "Finland 15 2.4 9.0 \n", "Canada 15 1.3 10.5 \n", "Netherlands 30 4.9 6.1 \n", "Austria 27 3.4 7.1 \n", "United Kingdom 13 1.9 11.5 \n", "Sweden 10 5.1 10.9 \n", "Iceland 18 2.7 5.1 \n", "Australia 13 2.1 10.5 \n", "Ireland 13 2.6 9.0 \n", "Denmark 15 3.9 7.0 \n", "United States 18 1.5 8.3 \n", "Norway 16 3.3 8.1 \n", "Switzerland 20 4.2 8.4 \n", "Luxembourg 12 4.3 6.0 \n", "\n", "Indicator Dwellings without basic facilities Educational attainment \\\n", "Country \n", "Brazil 6.7 45 \n", "Mexico 4.2 37 \n", "Russia 15.1 94 \n", "Turkey 12.7 34 \n", "Hungary 4.8 82 \n", "Poland 3.2 90 \n", "Chile 9.4 57 \n", "Slovak Republic 0.6 92 \n", "Czech Republic 0.9 92 \n", "Estonia 8.1 90 \n", "Greece 0.7 68 \n", "Portugal 0.9 38 \n", "Slovenia 0.5 85 \n", "Spain 0.1 55 \n", "Korea 4.2 82 \n", "Italy 1.1 57 \n", "Japan 6.4 94 \n", "Israel 3.7 85 \n", "New Zealand 0.2 74 \n", "France 0.5 73 \n", "Belgium 2.0 72 \n", "Germany 0.1 86 \n", "Finland 0.6 85 \n", "Canada 0.2 89 \n", "Netherlands 0.0 73 \n", "Austria 1.0 83 \n", "United Kingdom 0.2 78 \n", "Sweden 0.0 88 \n", "Iceland 0.4 71 \n", "Australia 1.1 76 \n", "Ireland 0.2 75 \n", "Denmark 0.9 78 \n", "United States 0.1 89 \n", "Norway 0.3 82 \n", "Switzerland 0.0 86 \n", "Luxembourg 0.1 78 \n", "\n", "Indicator Employees working very long hours Employment rate \\\n", "Country \n", "Brazil 10.41 67 \n", "Mexico 28.83 61 \n", "Russia 0.16 69 \n", "Turkey 40.86 50 \n", "Hungary 3.19 58 \n", "Poland 7.41 60 \n", "Chile 15.42 62 \n", "Slovak Republic 7.02 60 \n", "Czech Republic 6.98 68 \n", "Estonia 3.30 68 \n", "Greece 6.16 49 \n", "Portugal 9.62 61 \n", "Slovenia 5.63 63 \n", "Spain 5.89 56 \n", "Korea 18.72 64 \n", "Italy 3.66 56 \n", "Japan 22.26 72 \n", "Israel 16.03 67 \n", "New Zealand 13.87 73 \n", "France 8.15 64 \n", "Belgium 4.57 62 \n", "Germany 5.25 73 \n", "Finland 3.58 69 \n", "Canada 3.94 72 \n", "Netherlands 0.45 74 \n", "Austria 7.61 72 \n", "United Kingdom 12.70 71 \n", "Sweden 1.13 74 \n", "Iceland 12.25 82 \n", "Australia 14.02 72 \n", "Ireland 4.20 60 \n", "Denmark 2.03 73 \n", "United States 11.30 67 \n", "Norway 2.82 75 \n", "Switzerland 6.72 80 \n", "Luxembourg 3.47 66 \n", "\n", "Indicator Homicide rate Household net adjusted disposable income \\\n", "Country \n", "Brazil 25.5 11664 \n", "Mexico 23.4 13085 \n", "Russia 12.8 19292 \n", "Turkey 1.2 14095 \n", "Hungary 1.3 15442 \n", "Poland 0.9 17852 \n", "Chile 4.4 14533 \n", "Slovak Republic 1.2 17503 \n", "Czech Republic 0.8 18404 \n", "Estonia 4.8 15167 \n", "Greece 1.6 18575 \n", "Portugal 1.1 20086 \n", "Slovenia 0.4 19326 \n", "Spain 0.6 22477 \n", "Korea 1.1 19510 \n", "Italy 0.7 25166 \n", "Japan 0.3 26111 \n", "Israel 2.3 22104 \n", "New Zealand 1.2 23815 \n", "France 0.6 28799 \n", "Belgium 1.1 28307 \n", "Germany 0.5 31252 \n", "Finland 1.4 27927 \n", "Canada 1.5 29365 \n", "Netherlands 0.9 27888 \n", "Austria 0.4 31173 \n", "United Kingdom 0.3 27029 \n", "Sweden 0.7 29185 \n", "Iceland 0.3 23965 \n", "Australia 0.8 31588 \n", "Ireland 0.8 23917 \n", "Denmark 0.3 26491 \n", "United States 5.2 41355 \n", "Norway 0.6 33492 \n", "Switzerland 0.5 33491 \n", "Luxembourg 0.4 38951 \n", "\n", "Indicator Household net financial wealth ... \\\n", "Country ... \n", "Brazil 6844 ... \n", "Mexico 9056 ... \n", "Russia 3412 ... \n", "Turkey 3251 ... \n", "Hungary 13277 ... \n", "Poland 10919 ... \n", "Chile 17733 ... \n", "Slovak Republic 8663 ... \n", "Czech Republic 17299 ... \n", "Estonia 7680 ... \n", "Greece 14579 ... \n", "Portugal 31245 ... \n", "Slovenia 18465 ... \n", "Spain 24774 ... \n", "Korea 29091 ... \n", "Italy 54987 ... \n", "Japan 86764 ... \n", "Israel 52933 ... \n", "New Zealand 28290 ... \n", "France 48741 ... \n", "Belgium 83876 ... \n", "Germany 50394 ... \n", "Finland 18761 ... \n", "Canada 67913 ... \n", "Netherlands 77961 ... \n", "Austria 49887 ... \n", "United Kingdom 60778 ... \n", "Sweden 60328 ... \n", "Iceland 43045 ... \n", "Australia 47657 ... \n", "Ireland 31580 ... \n", "Denmark 44488 ... \n", "United States 145769 ... \n", "Norway 8797 ... \n", "Switzerland 108823 ... \n", "Luxembourg 61765 ... \n", "\n", "Indicator Time devoted to leisure and personal care Voter turnout \\\n", "Country \n", "Brazil 14.97 79 \n", "Mexico 13.89 63 \n", "Russia 14.97 65 \n", "Turkey 13.42 88 \n", "Hungary 15.04 62 \n", "Poland 14.20 55 \n", "Chile 14.41 49 \n", "Slovak Republic 14.99 59 \n", "Czech Republic 14.98 59 \n", "Estonia 14.90 64 \n", "Greece 14.91 64 \n", "Portugal 14.95 58 \n", "Slovenia 14.62 52 \n", "Spain 16.06 69 \n", "Korea 14.63 76 \n", "Italy 14.98 75 \n", "Japan 14.93 53 \n", "Israel 14.48 68 \n", "New Zealand 14.87 77 \n", "France 15.33 80 \n", "Belgium 15.71 89 \n", "Germany 15.31 72 \n", "Finland 14.89 69 \n", "Canada 14.25 61 \n", "Netherlands 15.44 75 \n", "Austria 14.46 75 \n", "United Kingdom 14.83 66 \n", "Sweden 15.11 86 \n", "Iceland 14.61 81 \n", "Australia 14.41 93 \n", "Ireland 15.19 70 \n", "Denmark 16.06 88 \n", "United States 14.27 68 \n", "Norway 15.56 78 \n", "Switzerland 14.98 49 \n", "Luxembourg 15.12 91 \n", "\n", "Indicator Water quality Years in education \\\n", "Country \n", "Brazil 72 16.3 \n", "Mexico 67 14.4 \n", "Russia 56 16.0 \n", "Turkey 62 16.4 \n", "Hungary 77 17.6 \n", "Poland 79 18.4 \n", "Chile 73 16.5 \n", "Slovak Republic 81 16.3 \n", "Czech Republic 85 18.1 \n", "Estonia 79 17.5 \n", "Greece 69 18.6 \n", "Portugal 86 17.6 \n", "Slovenia 88 18.4 \n", "Spain 71 17.6 \n", "Korea 78 17.5 \n", "Italy 71 16.8 \n", "Japan 85 16.3 \n", "Israel 68 15.8 \n", "New Zealand 89 18.1 \n", "France 82 16.4 \n", "Belgium 87 18.9 \n", "Germany 95 18.2 \n", "Finland 94 19.7 \n", "Canada 91 17.2 \n", "Netherlands 92 18.7 \n", "Austria 94 17.0 \n", "United Kingdom 88 16.4 \n", "Sweden 95 19.3 \n", "Iceland 97 19.8 \n", "Australia 91 19.4 \n", "Ireland 80 17.6 \n", "Denmark 94 19.4 \n", "United States 85 17.2 \n", "Norway 94 17.9 \n", "Switzerland 96 17.3 \n", "Luxembourg 86 15.1 \n", "\n", "Indicator 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", "Indicator 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", "Indicator 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", "Indicator GDP per capita Estimates Start After \n", "Country \n", "Brazil 8669.998 2014 \n", "Mexico 9009.280 2015 \n", "Russia 9054.914 2015 \n", "Turkey 9437.372 2013 \n", "Hungary 12239.894 2015 \n", "Poland 12495.334 2014 \n", "Chile 13340.905 2014 \n", "Slovak Republic 15991.736 2015 \n", "Czech Republic 17256.918 2015 \n", "Estonia 17288.083 2014 \n", "Greece 18064.288 2014 \n", "Portugal 19121.592 2014 \n", "Slovenia 20732.482 2015 \n", "Spain 25864.721 2014 \n", "Korea 27195.197 2014 \n", "Italy 29866.581 2015 \n", "Japan 32485.545 2015 \n", "Israel 35343.336 2015 \n", "New Zealand 37044.891 2015 \n", "France 37675.006 2015 \n", "Belgium 40106.632 2014 \n", "Germany 40996.511 2014 \n", "Finland 41973.988 2014 \n", "Canada 43331.961 2015 \n", "Netherlands 43603.115 2014 \n", "Austria 43724.031 2015 \n", "United Kingdom 43770.688 2015 \n", "Sweden 49866.266 2014 \n", "Iceland 50854.583 2014 \n", "Australia 50961.865 2014 \n", "Ireland 51350.744 2014 \n", "Denmark 52114.165 2015 \n", "United States 55805.204 2015 \n", "Norway 74822.106 2015 \n", "Switzerland 80675.308 2015 \n", "Luxembourg 101994.093 2014 \n", "\n", "[36 rows x 30 columns]" ] }, "execution_count": 5, "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": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "Indicator\n", "GDP per capita 55805.204\n", "Life satisfaction 7.200\n", "Name: United States, dtype: float64" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "full_country_stats[[\"GDP per capita\", 'Life satisfaction']].loc[\"United States\"]" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "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": 23, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Saving figure money_happy_scatterplot\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWEAAADTCAYAAABQiqIdAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJztnXl8VOX1/98nYUkIi7LbqhC1IGLZoeKC7NCvoq244Noi\nVVQqKsWtVgH7rf31C1+tWC1+3QoiiCvgUkXAoBSUXVRcUAIoKGEPWYCQnN8f984whCRMkjv3zkzO\n+/W6r9x57r3P85lJcua5557nHFFVDMMwjGBICVqAYRhGTcaMsGEYRoCYETYMwwgQM8KGYRgBYkbY\nMAwjQMwIG4ZhBIgZYcMwjADx3QiLyCgRWS4i+0Xk2VLH+onIFyKSJyILRORkv/UZhmH4SRAz4S3A\nn4FnIhtFpAnwKnAf0BhYCczyXZ1hGIaP1PJ7QFWdDSAi3YGfRhy6BPhMVV9zj48HdohIG1X92m+d\nhmEYfhBPPuH2wCehF6paAHzjthuGYSQl8WSE6wN7S7XlAg0C0GIYhuELvrsjKiAPaFiqrRGwr/SJ\nImJZhwzDiDmqKrEeI55mwp8DnUIvRCQDONVtPwpVTcht3LhxgWsw7Ym1mfZgNr8IIkQtVUTSgFSg\nlojUFZFU4HWgvYj8WkTqAuOANWoP5QzDSGKCmAn/CSgA7gaudvfvU9UdwFDgIWAX0A0YFoA+wzAM\n3wgiRG0CMKGcYwuBdv4q8pfevXsHLaHKmPZgMO3Jjfjp+/AKEdFE1G0YRuIgImgNezBnGIZR4zAj\nbBiGESBmhA3DMALEjLBhGEaAmBE2DMMIEDPChmEYAWJG2DAMI0DMCBuGYQSIGWHDMIwAMSNsGIYR\nIGaEDcMwAsSMsGEYRoCYETYMwwgQM8KGYRgBYkbYMAwjQMwIG4ZhBIgZYcMwjAAxI2wYhhEgUdeY\nE5ErgH5Ac0oZb1W9yGNdhmEYNYKojLCITARuB94HtgJW4M0wDMMDoir0KSLbgFGq+krMBYn8FPgn\ncA5wAHgVuE1VSyLOsUKfhmHElHgr9JkCrImlkAgmAzuBlkAn4HzgFp/GNgzD8JVojfD/AdfEUkgE\nZwKzVLVIVXOAd4D2Po1tGIbhK9E+mDsOuEpEBgBrgaLIg6o62kNN77hjLQIaA78E7vOwf8MwjLgh\nWp/w+xUcVlXt65kgkeOBBcDPcWbqU1X1+lLnmE/YMIyY4pdPOKqZsKr2ibWQCN4FXgJ6AA2A50Tk\nb6p6d+RJ48ePD+/37t2b3r17+yjRMIxkIysri6ysLN/HjWomHD5ZJA04DSdE7VtV3e+pGJGmQA7Q\nSFX3uW0XA39W1Q4R59lM2DCMmBJX0REiUtuNFd4NfAJ8CuwWkf8RkdpeiVHVHThxyDeJSKqIHAf8\nxh3TMAwj6Yg2OuJvONERNwFtgJ8BNwPXAn/1WNMlwEXADuBr4CAwxuMxDMMw4oJoH8z9CFyvqm+X\nar8AeFpVT4iRvvL0mDvCMIyYElfuCKAR8G0Z7d/ihK8ZhmFUyPbt21m+fDnbt2+Pqr2mEK0R/gQo\nKxb4NvxbSWcYRoIyc+YsWrU6nQEDbqJVq9OZOXNWhe01iWjdEb2At4EtwEdu81nAT4BfqurimCks\nW4+5I4y4Yvv27WzcuJHWrVvTrFmzGjN2NGzfvp1WrU6nsPB9oAOwlvT0PqxcuZiuXc89qn3Tpi/j\n4n3ElTtCVT/AeSD3ClDf3V4G2vptgA0j3ohmNherW+5jjb19+3bmzZvHvHnzArvd37hxI3XqtAYa\ncBqXci7DaV1UzNtvvum2h6JPO1C7dis2btwYiM7AUNWE2xzZhhE8OTk5mp7eWOETBVX4RNPTG2tO\nTk74nBkzXtT09MbaqFEXTU9vrDNmvOjL2DNmvKi1azdQqKdwmtap08izsSurM61uQ72YxprnCNU8\n0BGNm2ha3YYVfnZB4tqZ2Nuzcg9AFyAlYr/czQ+hpbR58iEbRnVZtmyZNmrUxTUiztawYWddtmyZ\nqkZnpGMxdk5OjqalHadwfCBGLicnJ6xDVfXq7j3CBlgjDPHV3Xtoenpjbdiwc5W/oDZu2KD3DB2q\nt3fpovcMHaobN2zw5D34ZYQrWra8AiedZI67r0BZ/hEFUqs7IzeMRKR169YcPLgRJ6+V49csKtpE\n69atgcO34oWFR99yV9fvWdHYGzduJDW1BZBB5O1+SsqJnoxdETNnzmLEiFuoU8fR98wzT9Cs+BAZ\npc7LAJqVFLNp05dV9mlvys7moZ49eXjbNjKA/FWrGLN4MX9cupRWmZlevaXYUp51Blpx+MFdq4o2\nP74tSmnz4ovOMDwh5G4oazYXy5lwRWMHNRMu7/3eccEFZc6E7xk6tFrj3TN0aEz6VfVvJhyt0Ts5\nZJDLOuaH0FJjVu/TNQyPKX37HUlFRtqLscob2/EJ13d9wqf64hMuz0Uy5/XX9cYWLY7wCf+uabNq\nuw5u79LlCAMc2m7v2rXa7yXejHAx0LyM9iZAsR9CS41bzY/XMPylIiNdmWsr+5AvJydH3333XZ01\na5a+++67MfcHVzTz37hhg17dvYf2klRtV+t4TavbsNpfCjVpJlwCNCujvRWQ74fQUuNW8+M1jMQg\n0uimpR2ndeo0qrR7IVbRGccarywXideumY0bNhw1w76xRQtPHs75ZYQrXKwhIpPd3VHAc0BBxOFU\nnJy/B1X1nMr6oquDLdYwagJHL3KYAYwD1ofPadiwC/PnP0n37t2P0cerOI/C8klPHxrzBRFlLSB5\n9NFHuf/+p9m379Oo9UfDpuxsptx5J99+9hmnnnkmN02c6MlDuXhJ6v7zkB6gHU5GsxAHgVXApBjo\nMowaz9GRFQOAGygvEqO8Ppz0LkOB1sBGVBvGPEKiWbNmR/Svqjz00EPs359fKf3R0Cozk9v+8Q9O\nOOEEfsjKomXLltXqz28qNMLqVtQQkedwys7n+qLKMIwyQtB+oHbtFGrV6kPt2q0oKtrkhH9VYEzr\n169PYeEPONkGHMO3f/9Z1K9f34+3EGb58uXk5ORwxRXDmDs3ev3R8uWXXwKwcOFCrrrqqmr35yfR\nFvq8F2gIHGGEReREoEhVt3ktzDBqOs2aNeOZZ55gxIhIo/U0/fv3jTquNi8vj/T0046IU05PP5W8\nvLzYv4EInn/+eQCaNm1Srbjg8ggZ4blz5yatEZ4OzASeKdU+CLgCGOilKMOI96Q0VSXkv9yfnU1a\nZuYx/ZdXXnlFmUY32s/EudXfQqQLALZW2wVQGVSVmTNnAvDdd98d5arwgrVr1wIwf/5852GXxNyV\n6x3RPL0D9gBtymhvA+zy4wliqXGr8rDTSBD8fprvF7F8kl8RXscpV5alS5dq/fr1FdBu3brFZIye\nPXsqoOnp6bp+/XpP+iTOQtTygA5ltHfAQtQMD4n1CrMgiWVM67GoTpxydbnllls0JSVFAW3VqlVM\nxmjatKkCWq9ePf3nP//pSZ9+GeFok7p/jFNTrjSjgOVVmYEbRlkcTnuYfOkN92dnl5k/Yb8P761Z\ns2Z0797dd9dOSUkJL774IiUlJQDs3r3b8zEKCwvD/RYUFDBnzhzPx4gl0fqE7wMWikgHYKHb1hfo\nDPSPhTCjZnKshDiJTFpmJvmrVh1hiPOBtCR4b+Xx0UcfcfDg4cjWvLw8SkpKSEmJdv53bL7++mvq\n1avHvn37AFi8eLHnY8SSaJO6fwT0BLJxqiFf4u73VNUlsZNn1DRCEQHp6X1o2LAL6el9PAtjCpqb\nJk5kTIsW5Luv84ExLVpw08SJQcqKKdOnT6ewsDD8unbt2uzatcvTMUKREZGEHtQlAtHOhFHVT3DK\n3sccERkGPICTOOgH4Leq+h8/xjaCp7yIgESnVWYmf1y6lP++8072b9xIWuvW/NGj1V3xSMgVUVxc\nHG6rU6cO27Zto2nTpp6Ns27dOvLz88Ovi4qKeO+99+jUqZNnY8SSqI1wCBFpCdSJbFPVzV4JEpEB\nwF+By1V1uYic4FXfNY1EDvOKRRhTPNAqM5O/vvJK0DJ8YenSpRw6dOiItpSUFHJycmjfvr1n46xc\nuTLscwY4cOAAs2fP5s477/RsjFgSlTtCRBqJyFQRKcQJOswutXnJeOBBVV0OoKo/qOoPHo/hC0GW\n8rYqtoeJp5Lqqk7MrPPwPblZtGgRBw4coFGjRmH/7P79+9m2zdu1XevWrTuqbfny5RQVFXk6TsyI\nJoQCeAqntP0gHFfWFcAYYBNwqVehGjhfCgeAu3GylGwGHgPqljqvmsEnsSfIWNdkDvOqLPEWc7x2\n7VoFdPfu3YHq8IOioiL98ssv9dZbb1VAb7/9dr388st11apVno5z/fXXa9++fRWnyo+OHTtWH374\nYS0pKalWv8RZnPD3wHnufi5wmrt/JfCeZ2LgBJy0mcuA5kBjYDHw51LnVevDjTVBG8Fj1T2rKVT1\n9xDLmNq77rpLAf3qq6887zteueWWWxTQ4uLimI4zcOBA9dI2+GWEo/UJH+fOegH24iRz/wZYCjwd\nZR/REHqMOllVcwBE5GGcELn7I08cP358eL9379707t3bQxnVw6u6YlX16SZrmFdll/xW5fdQVn20\nK6+8whP9qsrzzz9PrVq1yMnJoU2bNp70G+988MEHADEPGTvppJOqdX1WVhZZWVneiKkM0Vhq4BOg\nt7s/D3gEJ73lGOA7L78VcFwQ10S8/jWwstQ5XnzRxQwvZsLVvY0Oeqmq11RlyW9lfw+xvoNZtWqV\nZmRkaMOGDfXVV1/1pM9EANDU1NSYj/PAAw8ooIcOHfKkP+LMHXEHMNrd74uT3L0Ip+zR7z0VBBNw\nVug1A44HPgDGlzrHkw85llTHCHplDGJ5W+33MtiqLvmtzO8h1m6cP/zhD1qrVi1NT0/3bGltIgDo\nWWedFfNx/vd//9dTf7tfRjgqd4SqPhKxv1BETge6AetV9dPyr6wSfwaaAl/juCdmAQ95PEbMiYx1\nrV+/Pnl5eWzfvj0qt4JX7oyKwryqE74Wy1v28qjqkt/KxBzH0o2jqkyfPp1Dhw5RXFxMTk5OtftM\nBEIRCr169Yr5WA0aNABg3759HHfccTEfzzPKs85EFPcEngUa+PGtEM1GAsyEQ1TFreBXmfSquDqC\neujoV/KbWLlxli9frhkZGeEn+Ndff70n/cY72dnZCujTTz8d87FefPFFBfTzzz/3pD+CdkfgZE47\nRQ8b5KMKfQa1JYoRro7BipUxqK4RDSryws80kLFwtYwePVpTU1PDRnjw4MGe9R3PZGVlKaDz5s2L\n+VhvvfWWAvrRRx950p9fRrgid8QSYLaIrMR5CDfZXaxR1mz6+qrPxZOX6rgVYrV0t7qujqAiL/xc\n8uv1aj1V5YUXXjhi+e6PP/7oWf/xzObNzmLak08+OeZjRbojEomKjPC1wFjgNJxv7yY4CymMKKmu\nwYrF0l0vNB1dcsefBDuJuuT3448/5sCBI/91du7cGZAaf8nOdhbUmhGugGimyzhLk5v4MTWPUk81\nbjL8JR5DxbzQ5Hd0RElJiY4dO1YLCwt9Gc9LIpOah7b69esHLcsXBgwY4OkCior45ptvFNCpU6d6\n0h8+uSPEGavyiEhtVQ1kcbaIaFV1B0E8JtKJR00V8eabbzJkyBB27drF8ccfH7ScStGmTRu2bt1K\nSUnJEWkdDx06RGpqaoDKYk/Dhg3Zt28ffvy/5uTk0KJFC/7xj38watSoavcnIqhqzIvVRRWiJiKj\ngS2q+qr7+hngNyLyLXCRqn4VQ40JTzxmBItHTeWhquGMWBkZpQPV4p8lS5bw1Vdfce655wJw3XXX\nkZub64thCpp9+/b5tlIzUd0R0S5bHg1cDyAivYDLgauAocD/AhfGRJ0RGPE0U37nnXfYvHkzqamp\n1KlT59gXxBlNmzYN58/t2LEjU6dODViRP4S+ZEJfPrEmLS0NIC6y5VWGaBdz/5TDKSuHAC+r6ks4\naSfPioEuI0DiKQ1maBZcUFBA3bp1A9NRXUKREX369AlYiX+EKmh06dLFl/FCZe5DERmJQrRGOBcn\nqxnAAGCBu18EpHktygiO7du3M2LELRQWvs/evSspLHyfESNuCWx2MX/+/HCRz9BMJxHZunUrAKef\nfnrASvxj0yYn51erVq18HXfLli2+jlddojXC84CnRORpnJC1f7vt7fE+qXuNZ1N2Nvdeeil3dO3K\nvZdeyqZs/z7ieKp2HJoFh0rXpKen+67BK4IySEHiZ4xwJKEvvEQhWp/wKOAvODXfLlXVUKW+LsDM\nWAirqWzKzuahnj15eNs2MoD8VasYs3gxf1y61JdaZPGUBvP999/nm2++Cb9OxIdyIWqyEfb7PSda\nXo5oqy3nquqtqnqxqr4T0T5OVRMuuU48M+XOO8MGGJwkNQ9v28aUGNbLiiz/E0/Vju+6664jCjjW\nr1/fdw1e4eeihXhhzZo1AJ4W9TwW6enpR4QBJgLlzoRFpHFoxisijSvqJGJmbFSTqmYLqyrlZUQL\nutrxokWLjiplHgpBSkQWL14MJPZsvrKEkrmHHpj5QfPmzcN3HYlCRe6I7SJygjoVLnbgrPQpjbjt\nyR1x7iNpmZnkr1p1hCHOB9Ji4A6IfAjn5JJYy4gRfejfv2/gccR33333EbNgcAL/E5WlS5cGLcF3\nvv32W+rVq+frmMlmhPsCuyL2kz+yPA64aeJExixefNgnDIxp0YI/Tpzo+Vhe5S32mjVr1vDxxx8f\n1d6oUaMA1HhDbm5uwpeXqgpnneVvBOvNN99M+/btfR2zupRrhFV1UcR+li9qDF+zhcXTQ7hI2rZt\ny5QpU5g2bRpLliwhIyODAwcOJFai7ghCixbOP//8gJX4x/79+wE477zzfB13+PDhDB8+3Ncxq0u0\ny5aLgZBrIrK9CZCjquaO8JBQtrD9+/fHNDY2yIxoFZGens7IkSPZu3cvS5YsYc6cOXz22We+z6q8\nYseOHQB07tw5YCX+8f333wOQ6UNET6ITbYhaeZ71usBBj7QYpfjlL3/J6NGj+fWvfx2zMeLhIVx5\nTHRdMP369aNfv34Bq6k6NTE8rSa+56pSoREWkTHurgI3iUhexOFU4Dzgy6MuNDzh+++/Z9KkSTE1\nwhCfyXyKiorYsWMHF110UdBSqk1NNEhBLdRIRI41E77V/SnA73DKHIU4CGwEbvJelgFQWFjI0qVL\n2bRpU436BwZYsWIFANdee23ASqpPTTTCoUU2J554YsBK4p8KF2uoaqaqZgKLgI6h1+7WVlUHqerR\nj7ENT9i/fz+pqak89dRTQUvxnbfffhuA3r17ByvEA0JfKImWB7k6hGKEEzHrnd9UOal7LBGRn+E8\nsn9ZVa8r43hCJXWvKg0aNCAvL48mTZqwbdu2pE8AHklaWhoHDhxIipy7J554Ilu2bEmK9xItdevW\n5eDBg1G/502bNnHhhRfy6aefhtsmTJhAgwYNGDNmTLgtJyeHESNG8N1331FUVERmZiZvvvmm5/oh\nzpK6A4hIG+BSnPwRR3y9qfeFPv8BLPO4z4Tj4MGD4Z/vvfcegwcPDliRP+zfv58DBw4khSsCnKxe\njRtXuOg06Th48CDt2rWr1DXRrKx74IEHGDhwILfe6nhKP/vssyrpiyeiyh0hIhfgzEyH4CR3bwv8\nF/BrwNOF4SIyDNjN4XSZNRJVpajIqR61b98+Hn300YAV+Udoddnll18esBLv8CuxeTxQUlICQK9e\nvTzv+4cffjjCz3zmmWd6PobfRJvK8kFggqr2xKm4fC3QGpgPZHklRkQaAhOAMZQfFlcjOHjwICkp\nh389WVlZCZcdqqrMnTsXiM0/sd+ESu307NkzYCX+Eco9HQsDOWrUKK6//nr69evHQw89xA8//OD5\nGH4TrRFuC4TKKxQB9VR1P45xvt1DPQ8CT6lqYiUEjQEFBQXUqnWkt6imlMX5+9//DiR2rogQociI\noFch+km9evX41a9+VamHquW5Ikq3Dxw4kOzsbG644Qa+/PJLunTpws6dO6sjN3Ci9Qnv43AFjR9w\nErt/5l7vySNfEekE9Ac6RXP++PHjw/u9e/dOiqfokRQUFBzxIG7//v1MnjyZsWPH+pqVym9CM8ff\n//73ASvxhpoYntagQQNef/31Sl3TpEmTcDmkELt27eKUU0456tzjjjuOYcOGMWzYMIYMGcIHH3zg\nSSx9VlYWWVlZ1e6n0qjqMTdgNnCju/8/wLfAOGANMC+aPqIY4zYcY78Vx9DvAwqAFWWcq8nO119/\nrfXr11echTIKaEZGhi5evDhoaTHl7bffVkDnz58ftBRPePzxxxXQLVu2BC0l7unevbsuXLhQVVV3\n7typbdu21Q0bNhxxzsKFC7WgoEBVVXNzc7Vdu3a6YsWKmOhx7Uy1bduxtmjdEWOAj9z98TjljoYC\n3+As4vCCJ4FTcWbCHYEpwJvAQI/6TygKCgqO8AkDHDhwgGeffTYgRf7wyiuvAHD22WcHrMQbQk/v\nW7ZsGbCS+GfatGn8+c9/pnPnzvTv35/x48eTmZnJk08+yf/93/8BsHLlSrp160anTp0455xzuPHG\nG+natSvgX0FRr4nLOGEAERkHnKo1NE54zZo1dO7cOVwp4MQTT2Ts2LEMGjQoqYtFigi1atUKR4Yk\nOu3bt2fdunU1KkY4WfArTjgqIywizQBUdbv7+ufAFcDnqup7jbmaYIRVlZ07d9KkSRNSUlJo1KgR\ne/bsCVpWTNm1axdNmjTh3nvv5aGHkqNqlohQp04dDhw4ELQUo5L4ZYSjdUe8hBMjjIg0BT7AiRGe\nIiJ/iJG2Go2I0LRpU0SEzp07s3fv3qAlxZxFi5wU1hdccEHASrzlF7/4RdASjDgmWiPcgcM+4UuB\nb1S1PXAdMDIWwozDXHLJJYBTnSGZeeGFFwDo3r17wEq8ITT7TYZ4ZyN2RGuE04FQGsv+wFx3fxVw\nkteijCPp0MEpP/T5558HrCS2vPrqqxx//PFJk/Tlu+++A+C0004LWIkRz0RrhNcDl4jISTjRCvPc\n9hZAcjsq44BQzaxkNsKhlU9jx44NWIl3/Pjjj4B31SVmz55NSkoKX3/9dZWunzNnzlEVrKNh6tSp\njB49GoAnn3yS6dOnV2l8o2yiNcITgL/h5A/+SA+nrxwErI6BLiOC0D9xKD1gMvL+++8DMGjQoICV\neEfPnj1Zvny5Z3kjXnzxRS688EJmzqzas/DZs2eX+0VeXFxcZntpRo4cyTXXXFOl8Y2yicoIq+pr\nONnTugGRqbzm48QQGzEkFC/86quvBqwkdjz33HMAdOoU1YLJhCA1NZVu3bp5koI0Pz+fjz/+mMcf\nf5wXX3wRcB5kDhkyJHzOrbfeyrRp0wC45557aN++PZ06deKuu+5i6dKlzJ07l7vuuosuXbqwYcMG\n+vTpwx133EGPHj2YPHkyb775JmeddRZdu3Zl4MCB4RwQkUyYMIGHH34YgKeffpoePXrQuXNnLrvs\nsnBxT6NyRJ3KUlW3AdtKtVlCd5/o0aMHy5Ylb3bP+fPn06pVqxqVM7kyzJkzh0GDBnHSSSfRvHlz\nVq92bkDLWsK+a9cuZs+eHXY95Obm0rBhQy666CKGDBkSftALThmp0N/V3r17+egj5/n7M888w9/+\n9jcmTZpUrqahQ4fyu985a7Xuv/9+nnnmGUaNGuXNG65BROuOMAImtDY+GWOFs7OzAbjjjjsCVhK/\nzJw5M5za87LLLmPGjBnlntuoUSPS09P53e9+x+uvv056enq5515xxRXh/e+++45BgwbRoUMHJk2a\nxLp16yrUtHbtWnr16kWHDh2YMWNGUj+ziCVmhBOEn//850ByPpwL+YP79+8fsJL4ZPfu3SxcuJAR\nI0ZwyimnMHHiRF5++WVq1ap1hC835A5ITU1l2bJlXHrppbz55psVFgPIyMgI7996662MHj2atWvX\nMmXKlGO6F4YPH84TTzzB2rVreeCBB8wdUUXMCCcIyRwh8cQTTwBwxhlnBKwkPnn55Ze57rrryM7O\nZsOGDWzatInMzEyKi4v54osvKCoqYs+ePSxY4NRBKCgoYM+ePQwePJiHH36YtWvXAk52s4pizXNz\nc/nJT34CRJc2NS8vj5YtW1JUVBSO8TYqjxnhBCFUOnzhwoUBK/EWVWXlypV06NAhqVN0VodZs2Yd\nlapx6NChzJo1i8svv5z27dszbNiwcAKb3NxcLrzwQjp27EivXr145JFHABg2bBgTJ06ka9eubNiw\n4ajPe9y4cVx66aV0796dZs2aHVPXgw8+SI8ePTjvvPMqXcrIOEzUCXxEpAVORY1TgftVdYeInANs\nVdXsGGosS0vS544oi2TMQ/Dll1/Srl07pkyZwsiRtvjSiB/iKneEiHQFvgKuBkYAoZIHA4C/xEaa\nUZpzzz03XPwzWZg/fz7gvT84NTWVLl260LlzZ7p06cLmzZs97d8wvCLaELVJwKOqOk5E9kW0vwsM\n916WURZDhgxh8eLF4exqyUColFFZFRSqQ0ZGBqtWrSr3eHFxsYXDGXFBtD7hrkBZnvofcJYuGz6Q\njBESW7ZsoV+/fp77g8tyV02dOpWLL76Yfv360b9/f/Lz8+nfvz/dunWjY8eO4QKjmzZt4owzzuDG\nG2/kzDPPZPDgwWEX0LfffsuAAQPo1KkT3bp1C4fXTZo0iR49etCpUycmTJjg6Xsxkpxoym/gLNLo\n6u7vA05x9wcDm/0oAVJKT3T1SZKMzZs3K6BPPPFE0FI8o6ioSIuKijzvNzU1VTt37qydOnXSSy65\nRFVV//Wvf+lJJ52ke/bsUVXV4uJi3bdvn6qq7tixQ0877TRVVd24caPWrl1b165dq6qql19+ub7w\nwguqqvqLX/xC58yZo6qqBw4c0MLCQp03b57eeOONqqpaUlKiF154oX744YeevyfDX/CpvFG07og5\nwDgRuSxku0WkNU4+ieRdSxtnnHjiiQAsWLCAm2++OWA13lC6orRX1KtXr0x3xIABA2jUqBEAJSUl\n3HvvvXzwwQekpKSwdetWcnJyACdfR+jOo2vXrmzcuJG8vDy2bt3KRRddBBDO9jZv3jzee+89unTp\ngqqSn5/qWWFuAAARt0lEQVTP+vXrPcsZYSQ30f4HjAXeBrYD9YDFOG6I/wB/io00ozShW/bZs2cH\nrCRxiVyc8MILL7Bjxw5Wr15NSkoKmZmZ4QUHdevWDZ+Xmpoabtcy3Byqyr333ssNN9wQY/VGMhJt\nAp9cVT0X+BVwN/AoMFhVz1fV/FgKNI6kT58+UWe8qsmUZSxLs3fvXpo3b05KSgrvv/9+uDx9edfX\nr1+fk046iTlz5gBw8OBBCgsLGTRoEM8++yz5+c6/wtatW8tMfmMYZVGuERaRYhFp7u4/KyINVHWh\nqk5S1f9R1fn+yTRCXHjhhQDh22ajbKJ50Hf11VezfPlyOnbsyPTp049YcFDe9dOmTWPy5Ml07NiR\nc845h23btjFgwACuuuoqevbsSYcOHbjsssvIy8sr83rDKE25izVEJA/ooKobRKQYaKluoc+gqamL\nNcDxPw4aNIiFCxfSp0+foOUYRtLi12KNinzCS4DZIrISEGCyiBSWdaKqXu+FGBGpAzyBU0LpeOBb\n4I+q+o4X/ScDkTkkzAgbRuJTkU/4WpzFGMcBCjQBmpWzeUUtYDNwnqo2Au4HXhKRkz0cI6EJJVh5\n9913A1ZiGIYXRJU7QkSygW6qujP2ko4a+xNgvKq+HtFWY90RcNhf6fVn0KBBA/btcxZEvv3224wZ\nM4b33nuPk06yWq5GzSOuckeoamZABrgF8DMgeZaIeUCoDpvXRjhk3BcsWMDtt9/OO++8E7UBtogN\nw6gaFUVHjBGRtIj9crdYCBORWsB04F+qWrXysklKKELC6yfwqsqHH37IyJEjeeutt2jdujXgLOPt\n168fnTp1YsCAAXz//feAk9T75ptv5qyzzuLuu++moKCAESNGhOuUvfHGG+Hre/XqRbdu3ejWrVu4\nhI5hGBVHR4RdEO5+eaiqepp9RZwp2UygPnCxqhaXOq7jxo0Lv+7duze9e/f2UkJcc/DgQbZv385P\nf/pTT/utU6cODRs2JCsrizPPPDPcftFFF3H55ZdzzTXX8NxzzzF37lxef/11hg8fzs6dO8M5F+67\n7z7at2/PVVddxd69e+nRowdr1qxBREhJSaFOnTp88803XHnllSxfvtxT7YZRXbKyssjKygq/njBh\ngi/uiKjzCfuJiDyLU935v1T1qNyNNd0nHCsyMjLo168fp5xySji7GUCzZs348ccfSU1N5dChQ/zk\nJz8hJyeH4cOH07dvX6699loAunfvzoEDB8LZyfbs2cM777zDCSecwO9//3vWrFlDamoq69evtzha\nI+6JK59weYhIKxF5ySsxbp9TgNOBi8oywEbsSE1N5aWXXmLZsmX89a9/DbdXtPAhchkwwKuvvsrq\n1atZvXo12dnZtG3blkceeYSWLVuydu1aVqxYkXQ5kQ2jOlS3vNFxwFAvhAC4oWg3Ap2AbSKyT0Ry\nReRKr8YwykdVSUtL46233mLGjBk899xzAJx99tnMnDkTgOnTp3PeeeeVef2gQYOYPHly+PWaNWsA\nZ3nwCSecADgrzuwhnmEcJjYprKqIqm7G6t4FRmjGe/zxx/Pvf/+b888/n2bNmvHYY4/x29/+lkmT\nJtGsWbOwcS49Q/7Tn/7E7bffTocOHVBVMjMzmTt3LrfccgtDhw5l2rRpDB48+KjZs2HUZKrlExaR\njsAqVfW1RIH5hA3DiDUJ4RM2DMMwqkeF7ggRmXuM6xse47hhGIZRAcfyCR9rldxOwNdy934RuYQX\nnPpkK1as4LHHHgtQlWEYyUaFRlhVa2wl5bLCsrwuRhktVhnYMJIX8wlXgeHDh/Paa6+FXzdo0ACA\nRYsW0adPHy677DLatWsXXsQATkKcdu3a0b17d2677TaGDBkCwPLlyzn77LPp2rUr5557LuvXrweO\nrgz829/+NlzRAeCaa64JLws2DCNxiasQtXiioKCALl26AE787O7du8MFHksTOUNes2YN69ato2XL\nlpxzzjksWbKErl27ctNNN7F48WJOPvlkrrrqqvA17dq1Y/HixaSkpLBgwQLuvfdeXnnlFQBWr17N\np59+SqNGjfjggw945JFHuPjii8nNzWXp0qVMmzYtxp+CYRixxoxwOZSu1jt16lRWrlx5zOt69OgR\nXpjQqVMnNm7cSEZGBqeeeionn+ykRb7yyit56qmnAGdp73XXXcf69esREQ4dOhTuK7IycK9evRg1\nahQ7d+7klVdeYejQoaSk2I2MYSQ69l9cBWrVqkVJSQngzJIjl+GWrtIbMqrlxTXff//99O3bl08/\n/ZQ33ngjXNUXjl4SfN111/H888/z3HPPcf31nhQzMQwjYMwIl0NFi0Fat27NihUrAJgzZw5FRUUV\n9tW2bVuys7PZvHkzALNmzQof27t3bzgbWmglWnn85je/4e9//zsiwumnnx7V+zAMI74xI1wOFUVC\n3HDDDSxatIjOnTvz0UcflbsMN9RHWloaTzzxBIMGDaJ79+40bNgw7Ga46667uOeee+jatWt4dl0e\nzZs3p127dgwfXmODVgwj6YjLVJbHIhGXLefn54eN9ahRo2jTpg233XZbpfooKCigY8eOrFq1KhyR\nYRhGbLBly0nGU089RefOnWnfvj25ubmMHDmyUtcvWLCAM844g9GjR5sBNowkwmbChmEYZWAzYcMw\njBqAGWHDMIwAMSNsGIYRIGaEDcMwAsSMsGEYRoCYETYMwwgQM8KGYRgBEndGWESOF5HXRSRPRLKt\n3L1hGMlM3Blh4AlgP9AMuAb4p4i0C1aSd2RlZQUtocqY9mAw7clNXBlhEakHXAL8SVULVfU/wBzg\n2oqvTBwS+Y/StAeDaU9u4soIA22AIlX9NqLtE6B9QHoMwzBiSrwZ4fpAbqm2XMAy1hiGkZTEVQIf\nEekELFbV+hFtfwB6qerFEW3xI9owjKTFjwQ+8VZj7mugloicGuGS6Ah8HnmSHx+MYRiGH8TVTBhA\nRGYACtwAdAHeAM5W1S8CFWYYhhED4s0nDDAKqAfkANOBm8wAG4aRrMTdTNgwDKMmEY8z4XIJejWd\niIwSkeUisl9Eni11rJ+IfOFqWyAiJ5c6/jcR2SEi20Xk/5U61kpEFopIvoisE5F+pY5fJSIbRWSf\niLwmIsdVUncdEXna7WOviKwSkcGJoN3t43kR+cHV/q2I3Jco2iP6+pmIFIrItETRLiJZruZct58v\nIo7FtXa3n2Fu/3kisl5EzolL7aqaMBsw093SgXOAPUA7H8f/FXAR8DjwbER7E1fLJUAd4H+ApRHH\nRwJfACe42+fAjRHHlwATgbpuH7uBJu6x9jhheufguGleAGZWUnc94AHgJPf1BW6fJ8e7drefM4A0\nd78N8CMwKBG0R4z1LrAImOa+bhrv2oH3geFltMf95w4MALKB7u7rkJa40+6L8fJic9/UAeDUiLap\nwEMBaPkzRxrhG3BC6yK1FgBt3Nf/AX4XcXw4sMTdbwMUAhkRxxeFfvHAX4DpEcdOcT+HjGq+h0+A\nXyeadqAt8B3OQ9uE0A4MA17E+SIMGeG4145jhK8voz0RtP+Hsr9A4k57Irkj4nk1XXscLQCoagHw\nDYe1HXGcI3WfAWxQ1fxyjpfuewPOL7ZNVcWKSAvgZzjf8gmhXUQeF5F84DPgL6q6KhG0i0hDYAIw\nBogMrYx77S5/FZEcEflQRM5PBO0ikgJ0A5q7bojNIjJZRNLiUXsiGeF4Xk1XH9hbqi1SW+njuW5b\nVa4tfbxSiEgtnKiTf6nq14miXVVHuf0NAP5bRHokiPYHgadUdWup9kTQfhfObO6nwFPAXBHJTADt\nLYDawFAc10AnnDunP8Wj9kQywnlAw1JtjYB9AWgpzbG0lT7eyG2ryrWlj0eNiAiOAT4A3JpI2gHU\nIQt4Gbgy3rWLswK0P/D3Mg7HtXYAVV2uqvmqWqSq03Bu1S9IAO2F7s/JqpqjqruAh4H/cvuJK+2J\nZITDq+ki2o5aTRcQn+N82wIgIhnAqTi3zqHjHSPO78Rh3Z8Dp7jXhOhY6nj4Wvf918b5PCrLMzgP\nhC5R1eIE0x5JLSA/AbSfD7QCNovID8BYYKiIrHA1xrP2iojrz11V9wDfl252t/jTXtmHDEFuwAyc\nJ471gHNxnkz6GR2RCqQBDwHTcJ6QpuIYtt04D7rq4jxxXRJx3Uj3F/QTnFu7z4EbIo4vca8JPXHd\nxeEnrmfgPM09B8hw3/8LVdA+xR2nXqn2uNaOk1f6Cvf6FJyoiD04Pr94154GNI/YJgIvAY0TQHsj\nYCCH/8avxpnRnRrv2t1+JgAfu38/xwMfAOPjUXtgBrUqm/thvo4z7d8IXOHz+OOAEqA4YnvAPdYX\nJ7QlH1gInFzq2v8H7AR2AH8tdexknCfRBW4ffUodHwZscv8JXgOOq6Tuk13dBW4f+3B8VVcmgPam\nQJb7x74bWAYMiTget9rL+fuZlgja3c99GY6PcxeO8embCNrdPmrhhJLuBrYCjwB14lG7rZgzDMMI\nkETyCRuGYSQdZoQNwzACxIywYRhGgJgRNgzDCBAzwoZhGAFiRtgwDCNAzAgbhmEEiBlhw/AZNzF4\niYh0CVqLETxmhI1yEZHmIvKIiHztVlj4UUQWi8jvI9fPu5UEStyt0E0d+JqIXFhGnyURW644lUp+\n7e87C5zNQEtgDYCInO9+Ho2DlWUEgRlho0xEpBWwGid/wH1AZ+AXOHkz+gJDIk5XnHX5LXHyFF+B\nU9XgdRGZXEb3I9xzu+HkX33ZTU3pGyJS28/xIlGHHFUtCcnB+QylgsuMZKU6a+FtS94N+DfOGvi0\nKM7NBsaU0X4DTs6K8yPaSnCyuIVep+LkAvnvcvpu5V5zJfAhTprCL4ABpc47A3gTJyfGNpxkTy0i\njj8HvIGTI/c74McK3s9ZwAJX1x5gPtDSPTYIJxnMLpz8Au8Ap1dGb8Q5XSL2iyN+PhvNWLYlx2Yz\nYeMo3NvigcA/VHV/Nbp6BieBytDyTlAnpeYhnKxUFfE3nLy8HYH3gDkicoKrtyVOmZm1OLPrfjhZ\nrOaU6uN84Oc4xq0fZSAiHXGSunwNnA30wKlrWMs9JQMnGUw3t789wBtusvyo9IbeuvtzM4c/n3Y4\ndc1uq+RYRiIT9LeAbfG34RieEuDiUu3fcTgL2xMR7WXOhN1jS4E3I16HZ8I4hvd+nNnfwHKuD80U\n74loE+Ar4EH39YPAe6WuO969rpv7+jmcGXKtY7z36cB/KvFZZeB8iZxdCb3hmbD7+nz3M2hcmbFs\nS47NZsJGZTgXZ2a3DCdXbjSE/J2RPC8i+3BSCd4G/EFV5x2jn49CO+pYpI9xXBDg3Naf75YZ3+f2\nvdkdN7IIwGeqeugY43TGmQmX/WZEThGRGSLyjYjsxan8LDgpDqPVGxWVGMtIYOy2xiiLb3AM2OlE\n3NKr6iYAESmIphO34GIbHAMUyVicEvC5qrrDA70pOP7gP3D0w61tEfv5VJ+3cAz8jcAWnJnpFzjl\n073Gz7GMgLCZsHEU6tTkmgccEYpWBW7AqdDwSqn2baq6oZIG+KxSr3sA69z9UOXlzW6/kVtlDe9q\nnOiPo3B95W2Bh1R1oap+hfP+yprMlKX3i3LGPOj+TK3iWEYCY0bYKI9bcP4+VojIMBFpJyI/E5Er\ncVwSxaXObyAiLUTkRBHpKSKPAI8Bj6nqhx7ouVlEhopIGxF5FOeWfIp77HEcA/WSiPQQkUwR6S8i\nT1bhS2Qi0Nm9toM73ggRORHnIeMO4AYROdUtAf9PoChKvf8sZ8xNOHceF4hIU1dzZcYyEpmgndK2\nxe+GUxftEZxIgUKc8K+PccK8MiLOy+ZwuadCnFvo14ALyuizmIgQtSg0RIZ8/YfDZWUGljrvVJz6\nbTtx3A5fAI/iPojDeTA3N8oxz8YpqZSPEx42DzfcDeiNE4VR4P4c4H4u10Wr1z2nGPfBnNt2H4dd\nDqEQtT4VjWVbcmxW3siIa9xFI9k4UQ6rgtZzLBJNrxE85o4wDMMIEDPCRiKQaLdriabXCBBzRxiG\nYQSIzYQNwzACxIywYRhGgJgRNgzDCBAzwoZhGAFiRtgwDCNAzAgbhmEEyP8HHnVrH0NA5qUAAAAA\nSUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "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", "save_fig('money_happy_scatterplot')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "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", "
IndicatorGDP per capitaLife satisfaction
Country
Australia50961.8657.3
Hungary12239.8944.9
United States55805.2047.2
Korea27195.1975.8
France37675.0066.5
\n", "
" ], "text/plain": [ "Indicator GDP per capita Life satisfaction\n", "Country \n", "Australia 50961.865 7.3\n", "Hungary 12239.894 4.9\n", "United States 55805.204 7.2\n", "Korea 27195.197 5.8\n", "France 37675.006 6.5" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sample_data.loc[list(position_text.keys())]" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Saving figure tweaking_model_params_plot.png\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWEAAADTCAYAAABQiqIdAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJztnXl8lNW5x78PIRBIQkggIIiA7AniAu7tFbRqq7a9RWsR\nvbVV6q271WrrlapY61KptujV1lq0aqW1Vau1dbsuccEqlEUtiez7loQthCSEJM/947yTTGYmySSZ\n5Z3wfD+f95N5z7uc30wmv5z3Oec8R1QVwzAMIzl0S7YAwzCMgxkzYcMwjCRiJmwYhpFEzIQNwzCS\niJmwYRhGEjETNgzDSCJmwoZhGEkk4SYsIleJyEIRqRGRx0OOfUlESkSkUkTeEpGhidZnGIaRSJLR\nEt4M3AnMDS4UkX7A88BMIA9YBDybcHWGYRgJpHuiK1TVFwFE5Djg0KBD5wL/VtUXvOOzgHIRGaOq\nKxKt0zAMIxH4KSY8HvgksKOqVcAqr9wwDKNL4icTzgL2hJRVANlJ0GIYhpEQEh6OaIVKoE9IWQ6w\nN/REEbGsQ4ZhxB1VlXjX4aeW8DLg6MCOiGQCI73yMFQ1Jbfbb7896RpMe2ptpj05W6JIxhC1NBHJ\nANKA7iLSU0TSgL8C40Vkqoj0BG4Hlqp1yhmG0YVJRkv4J0AV8GPgIu/1TFUtB84D7gZ2AscCFyRB\nn2EYRsJIxhC1O4A7Wjj2NlCQWEWJZcqUKcmW0GFMe3Iw7V0bSWTsI1aIiCZKd01dDbPnz2Zw9mDW\n7FrDXV+6K251bdizgb+v+Dvp3dIp3VfKOWPO4ehDjm77QsMwYo6IoAdZx5wvueC5Czh79NnMmDiD\ntbvXsmrnqrjV9euFv+bK467kskmXMfOUmdz/z/vjVpdhGP7ATLgVnljyBPvr9zNp8CQAqg5UxdWE\nny95nuKy4sb9jLSMuNVlGIY/8NM4Yd9xzwf3cPeX7m7cX7x1MbkZucwqmsWEARPYWLGRH5z4g2bX\n7KrexewPZzfuB8ImItK4n56Wzu2TbyetW1qza6887komPjqRH5z4A7J6ZHH18VfH660ZhuETzIRb\nYPHWxazbvY7ismLum38fO6p2sLN6J2VVZWR0z+C8wvO44u9XsGbXGkbkjmi8LrdXbjPjbg8XTbiI\nRVsX8Vzxc9TU1XDKsFNi9XYMw/ApFo5ogQWbF3DCkBO4bfJt/OgLP2JQ9iCmHzGdJVuXNHaWTRg4\ngffXvx+T+vbV7uPyf1zOY197jOKrivnexO/xjT99g417Nsbk/oZh+BNrCbfAnpo9TDxkIuBCCHOX\nzGXeufN4dNGjZKZnApCZnsn2fdubXbezeie/+PAXLd5XVenerTuzpsxqFo54Y/UbTB42mYzuLg48\na8os6hrq+HjzxxyWc1is355hGD7BTLgFRuaNpGJ/BQBPffIU5xWcx4SBE2jQhkbzbNAG0qR5XDev\nV16HwhGj8kbx8oqXm5U1aAMnHHpCB9+BYRipgJlwC0wdN5U317zJ3MVzqTpQxawpswAYkDmA6gPV\nAFTsryA/Mz8m9U0YOIGzRp3FTW/cxJA+Q9hfv5/TR5xurWDD6OLYZI128vqq11m+YznXnnAtF//1\nYm75j1sY139cUrQYhhE/bLKGTzlj5Bls3LOR54qfY2y/sWbAneDGN26kpq6GO9+9M9lSDCNpWEvY\nSBp97+1L7/TezPnKHM4ff36y5RhGMxLVEjYTNpLGvM/mceGEC5MtwzAiYuEIo8uzeudqXln5Cg99\n/FCypRhG0jATboNAzHLu4rnMfGtmsuW0yIyXZpB+Zzq97+rNCb87gSVbl8T0/pW1lZz/l/PZVLGp\nWfmiLYu47tXrePqTp7n875ezeufqqO956+RbOXv02Wyr3Mby8uUx1WsYqYINUWuDC567gFtPuZVJ\ngydx4fMXsmrnKkbljUq2rDCG9R3Glhu20KANDMwaGNN7z108l00Vm3ih5AXuP7Mps1ttfS3n/fk8\nFly2gAGZAyjIL2D689NZcNkCwBn388XPN8ubISIMyhrE5r2bqW+oZ8bEGWR0z+Cz0s8Y239sTHUb\nRipgJtwKLWVR86MJq2rUY5afXPok3zn6O83K6hrqePbfz3LRkReFnT9j4gwA7ni3eS7+99a/R3bP\nbAZkDgDg2MHHUlJewrrd6xjedzhZPbLC6gnwt+V/48QhJwKwqWIT046YFpV2w+hqmAm3QktZ1FSV\nG9+4kfu/HJ7vtzNZ1DpDdV01jy16jOye2by15i1uOOkGCvIjL1IyMm8kN795M/eefi8AB+oPcO2r\n14ZlhGuLdbvX0a9Xv2ZluRm5LCtdxvC+w1u99qtjvspDHz9En559mDJ8CmP6jWlX3YbRVTATboGW\nsqgV5hfyq49+xbvr3414XWeyqHWGIwceyfmF55Oels6AzAF849lvsPzqyHHWLw79ImmSxo1v3MjP\nTvsZ1792PTecdAOj+41uV53lVeX0Tu/drCyjewZ7a/e2eW036cZ1J17XrvoMoysStQmLyDTgS8AA\nQjr0VPXrMdaVdIKzqAH86qNfMf2I6WT3zOb6k64Py/MQS3698Nes2bWmsfUcIBBTnTRoUtjj+7Tx\n0xpb1iNzR7Jyx0o+3f4pRw48MmIdJx12EgcaDlD4cCGv/ddr7TZggJyeOSjNhwpW1lbSv3f/dt/L\nMA5WojJhEZkN/AB4B9gCdPlBusFZ1IDGLGpt0dEsasFccdwV7dL68aaPOf3p0ym/qZye3Xuyt3Yv\nIkKPtB4tXlN1oIonlz7JnK/M4eEFD/PAlx9od3hkXP9x/Hbxbxv36xvq2Vm9k2E5w9p1H8M4mIm2\nJXwxMF1Vn4unGAARORT4NfAFYD/wPHCdqjbEu+5ggrOoPbn0ycYsam3R0SxqnWFInyHcdPJN9Oze\nE4D5G+Zz8mEntzilurK2kmtevYY7T72TIX2GMLzvcK599VrmnDWH7t2ij1CdMuwUyvaVsaliE0P6\nDKFoXRHjB4zvUKvaMA5Woh0n3A1YGk8hQTwI7AAOAY4GJgNXJqjuRqaOm8qO6h3MXTyXiv0VjVnU\n/MihfQ5l4qCJ3P/h/dw3/z7+teVf/HXaX1s8/3/e/B/uOu0uhvQZArgMblcdf1WLORzmfTaPK/9x\nJSLCzW/ezCMLHwEgrVsaT099mrveu4unPnmKZz57hme/+Wzs36BhdGGimrYsIncBB1R1VtwFiSzH\ntXxf8/bvA7JV9Yqgc5I+bfnUJ0/lne+8k1QNhmHEj0RNW4722bMvcKGInAF8ChwIPqiq18ZQ02te\nXe8CecBZgG+mqtXU1fDovx7l8/LP+dVHv+KKY69oDAMYhmG0l2hbwq01+VRVT4uZIJFc4C1gAi4M\n8qSqXhpyjlYfqG5cCsgwDCPW+KolrKqnxltIEK8DfwaOB7KBJ0Tk56r64+CTss7MIqdnDvmZ+Uw6\naRJnnXEW4/PHM7b/2LCxq4ZhGG1RVFREUVFRwuttVypLEckARuGGqK1W1ZqYihHpD5QCOaq61yv7\nT+BOVT0y6DzdX7efVTtXUVxW3GxbuXMlg7MHU5hfSGH/Qvczv5CC/AKyemTFUq5hGF0YX+UTFpF0\n4G7gaqAHILjhYw8BM1X1QCuXt0+QyCZgDvAAriX8OLBPVb8ddE6LHXN1DXWs3rm6yZjL3c/l5csZ\nkDmg0ZQbzbl/ATkZObGSbxhGF8FvJvwAMB24GfjAK/4P4B7gGVW9MWaCRI4H7geOwHUAvg1co6pl\nQee0e3REfUN94zTk4rJilpUto7ismJLyEnIzchtNeXz++MaWc16vvFi9LcMwUgy/mfA24FJVfSWk\n/Bzgd6o6KE76WtITsyFqDdrAhj0bwsIaxWXFZPbIDAtrFOYXxmyFZcMw/IvfTLgaOFpVl4eUjwOW\nqGqvOOlrSU/cxwmrKpsqNjU35vJilpUuIz0tvbHFHLwNzBwYlu/BMAxHWVkZ69atY/jw4eTn57dZ\nnmz8ZsIfAYtU9aqQ8l/jzPmkOOlrSU/SJmuoKtsqtzULaQReq2pYWKMwv5DB2YPNnI2Dmj/+8Vlm\nzLiSHj2GU1u7jrlzH2H69GktlvsBv5nwKcArwGbgI6/4RGAwcJaqftDStfHADzPmQlFVyqrKwkIa\ny8qWUVNXEzGsMTRnqJlzFyGZrTm/tiQDlJWVMWzYOKqr3wGOBD6lV69TWbToAyZN+mJY+fr1n/vi\nffhtnPB7IjIGuAoIZIX5C/CIqm6Jl7hUQkQYkDmAAZkDmDJ8SrNj5VXllJSVNBrza6tfo7ismIr9\nFRT0LwgLawzvO5xuYsv/pQrRtObiZZRt1V1WVsaSJW69wWOOOSYp5rZu3Tp69BhOdfWRQBmwn7S0\nwSxYsCCoHOBI0tOHsW7dOl+YcMJQ1ZTbnOzUZ1f1Lv1ww4f62KLH9PrXrtcvP/1lPeyBw7T3Xb31\nmN8coxc9f5He/d7d+mLJi7qifIXW1dclW7IRQmlpqfbqlafwiYIqfKK9euVpaWlp4znz5v1Je/XK\n05ycidqrV57Om/enhNQ9b96fND09W6G3wijt0SMnZnV3TOfPFfIUjlLopbNn39/mZ5dMPJ+Ju5+1\nGI4QkYnAUlVt8F63ZuSLY/7foRX8GI6IJRX7K/i8/POw4XTbKrcxpt+YsNDGqLxRpKelJ1v2QcnC\nhQs544zL2bNnUWNZnz4TefPNRznuuONafBSPxSN3a3UPHz6coUPHUFMjQFHM626L0Jb/o48+xuWX\nX4eLZjZp+eUv7+X6628mPX0YBw6s73BMOB5PGn4IR/wLl06y1HutuEkaoSgQu8XSDPr07MPxhx7P\n8Yce36x8X+2+Zub81KdPUVxWzKaKTYzMHRkW1hidN9qSC8WZ4cNdGMDltXLmcuDAeoYPHw6EPopD\nLB+5W6t73bp1pKUNBDK9Y67ubt2GxP1xP1KIZOLEo8nOHsfevc0/h4kTj2b9+s87ZaB+7tyLipaa\nyMAwmjruhrW2JaLJHqKtc88ZXYyq2ipdsnWJPvPpMzrzrZk69U9TdexDY7XnnT117ENjdeqfpupP\n3vqJzvt0ni7dulSrD1QnW3KXIhBu6NPnmLBwQzThinjUXVpaqhkZfRVyE/q439L7LS4ujsvnEM/P\nlwSFI6I1vaEBQ450LBFCQ+rs3Kd7kFBzoEY/2/6ZPvvvZ/X2d27Xb/75m1r4cKH2vLOnjnpwlH79\nj1/Xm//vZn1q6VP6r83/0n21+5ItOWUpLS3VBQsWRPzjb82kY1FXS3W7mHCWFxMemZCY8IIFCzQn\nZ6JniG7r0+cYXbBgQePnkJV1hPbs2Ud/85vfxrW+zpIoE452iFo9MEhVS0PK+wGlqprQcERXjwnH\nmwP1B5onP/Lya6zYsYJBWYMi5tfI7pmdbNkpTWdilsHXvvnm2+169A6Mjti9ezd9+/aN+wiJtmLg\njz76GNdd9yN69DicurqOx4Cjra8z+G2ccAMwUIPyN3jlw4BiVc2Mk76W9JgJx4G6hjrW7FoTNtb5\n8/LP6d+7f9gklIL8Avpm9E227C5NcLxz//41NDQotbXv0R7DSXTMNFBfaGdbvAyzpfraQ1UVLF8O\nxcVN24sv+sCEReRB7+VVwBNAVdDhNFzO31pV/ULcFEbWZSacQOob6lm/Z70bqVG6rLHlXFJWQk5G\nTrPRGuMHOJO25EedJ9y05gG3AysbzwkeidH6PZ7HddLto1ev8+I+QiJSy7+tkSSxri8SlZVQUtLc\nbIuLYcsWGDUKCgubtm99K/mjI8CtbgFuVEQBUBt0rBZYDLS8vrvRJUjrlsaI3BGMyB3BV8d8tbG8\nQRvYuGdjY4t5weYF/P6T31NcVkyv7r3CwhqF+YXk9863WYJREj6y4gzgMloaidHSPdzqZOcBw4F1\nqPaJ+wiJ/Pz8sPu3NZIklvXt2RPZbEtLYcwYGD/eGe2ll7qfI0dC9+gXGo8prVar3ooaIvIEbvHN\nioSoMlKCbtKNYX2HMazvMM4afVZjuaqyee/mRnNeum0p8z6bx7KyZaRJWlhYozC/kEOyDjFzDiHc\ntLaSnt6N7t1Pbfbo3ZqZZmVlUV29leDxuTU1J5KVlfgFDvLz85k79xFmzIhef1vs2hVutMuWufKC\ngqZW7eWXu5+HHw5pPhtQG21M+BCgu6puCikfgluFeXuc9LWkx8IRKYiqsn3f9qZJKF5oY1npMuq1\nPmJY49DsQw9qc44U7zz99NOi7uRbuHAhkyfPoLr608ayXr0m8O67j3c6BNBROtJJWV7eZLDBhltZ\n2TyEUFjoWrlDh0K3Ts7891vH3JvAH1V1bkj5DGCaqp4ZJ30t6TET7mKU7Wue/OiTLZ+wrGwZtVrb\naMihyY9SNb9Ge02osyMr4jV6INaowvbt4S3b4mKorW0y2GDDHTIE4vU/2m8mvBs4XlVXhJSPAT5S\n1YT2wpgJd22ajQjotoYf/eIHHHrUoGYmvbtmNwX5BWFTuIf3HU5aN589bwaRjNldsRg9EEtUXUdY\nJLOFcKMtLIRBg+Jnti3hNxOuBE5W1U9Dyo8E/mlD1IxYEW3LbU/NHkrKS1xII2isc9m+Msb2HxsW\n2hiRO4Lu3ZLU8+KRzFZpMtJdqsLGjc1jtYHXGRmRwwj5+Yk325bwQ+6IYD4GrvC2YK4CFsZUkXFQ\nE22uhZyMHE4cciInDjmx2fV79+9tll/j8aWPs6x0GVsrtzI6b3RYWGNU3ih6pPXw1XuLB5FGK8SK\nhgZYvz48XltSAtnZTQZ7/PHw3e+6DrP+/eMiJSWJtiV8Im7BzSXeT4DTgGOA01X1w7gpjKzHWsJd\nlHi1FvfV7mP5juVhE1E2VmxkRO6IsLDGmH5jYp78KJXis5Gor4c1a8JDCJ9/Dv36hbdsCwogNzfZ\nqjuOr8IRACJyFHATznjBGfJsVf0kTtpa02Im3IVJZAyzpq6GFTtWhIU11u5ay7C+wxrNOdA5OLbf\nWHqld3xJRb/FZyNx4ACsXh0+7GvFCjjkkMhm26dPslXHHt+ZcCIRkQuA23CJg7YC31XV+UHHzYS7\nOMlesqe2vpaVO1aG5XRetXMVQ/oMCQtrjOs/jqwe0Y29TfZ7C1BbCytXhsdrV6+GQw8NH40wbhxk\nJrT3J7n41oS9McPNgmiquiFmgkTOAH4LfEtVF4rIIK+OrUHnmAlHgV/+2LsSB+oPsHrX6rCwxood\nKxiYNTAsrFGQX0CfnsltJtbUhOdFKC6GtWth+PDwlu3YsdAroeun+xNfmbCI5AAPAt8ixIABYplF\nTUTmA79T1SdaOSclTDiZJpjyia5jSCJ+D/UN9c2TH5U3JT/K65UXFtYo6F9Abq/YBkyrqlx8NtRs\nN26EESPCzXbMGOhpOf9bxG8m/BhwHPBj4AXgUuBQ4Drgh6r6XEzEiHQDqnGhiO8BPYGXgBtVdX/Q\neb434WSaYKp3AMWSZP8zatAG1u9eHxbWKCkvIbtHdlhYY3z+ePr17tfqPUOT0ARCCVu3wujR4WGE\nUaMg3Va/ajd+M+FNwHRVfV9EKoCJqrpKRKYDl6rqGTER40IPm3HLKX0VqAP+BryjqrcGnedrE062\nCcYzW1Uq0dHfQyJazqrKxoqNYWGNZWXLyOieQWF+ISN7TSRn70l0KzuCvZsPY/2q3hQXC2VlLj4b\n2rIdMSJ5SWi6In4bJ9wXWO+93gP0A1YB/wR+F0M91d7PBwMJ5EXkAWAmcGvwibNmzWp8PWXKFKZM\nmRJDGZ0jVuNBO2oG8cxWlWza85l05PeQqJaziDA0ZyhDc4ZyfN5XKK6H4m2wbKuy9LP9/LsYPqzo\nRs6hW5ABJezt8yfSBq5g7JR6zhyby4RBTa3nQVmDDur8GrGiqKiIoqKixFcczfIbwCfAFO/1G8Av\ncektbwA2xnKpD2AD8F9B+1OBRSHnqJ+JxbpXnV0mPdZL6viB9n4m7f09xHs9uNJS1aIi1UceUb36\natVTT1UdOFA1O1v1hBNUL7lEdfZs1VdeUV23TrW+vunahoYG3bZ3m7695m3934//V6/4+xU6+YnJ\nmn9fvubck6Mn/e4knfHSDL3/w/v11ZWv6vrd67WhoSEmug9W8NnyRtcD9ar6oIicBvwdSAe64VJc\n/m+s/imIyB3AV2gKR7wEvK2qs4LO0Wh0J5POjAeNVTgjno/Vie507Ohn0p7fQyzCOIEkNKGzx4qL\noa4ucl6EQw/t3FTdsn1llJSXhIU19tXui5hfY1jfYSmb/CiR+ComHHaRyFDgWGClqn4WU0Ei3YE5\nwIW48MSzwI9VtTboHN+bMDQZVVZWFpWVlVEbViJiup0x0WR0dnXmM4n2vbbH6FVh8+bISWi6dYts\ntocckti8CDurd1JSVhI2YmNn9U7G9R8XltP58L6H+zr5UaJJugkHL+4pIo/jWrx74y0oGlLFhKFj\nhhXvjr3OmGiyOh0TVW9oy/mxxx7hi1+cFtFse/UKT0BTWOiS0PiZPTV7+Lz888aRGoGtdF8pY/qN\niZhfI9nJj5KBH0y4EjhSVdd4hnyIhiz0mSxSxYQ7Yxzxmt7aWTNL5siLeE75bWiAdeucuX78cSWL\nF9ewZUsOK1emk5MT3rItKHD5EroSlbWVzZIfBcIaW/ZuYVTeqLCwxuh+oxOW/CgZ+MGE3wAOARYB\n38GFBaojnauql8ZLYCRSxYQ7a1jxiLvGQlMyh9919jOpq4uchGb5cpfZK1JehL4H+YLSVQeqWF6+\nPCyssX73eg7PPTwsrDGm3xgyumckW3an8YMJDwRuBEYBXwfeAvZHOldVvxYvgZFIFRNOtmHFS1Oq\nJKFZtSrcbFeuDE9CM368G3ebnZ1s1alFTV0NK3esDAtrrNm1hqE5Q8MmoYztP5be6b2TLTtqkm7C\nIWLWAseq6o54C4qGVDFh8KdhxUKTX/JS7N/flIQmePbYmjVu6ZvQMMLYsQdXEppkUFtfy6qdqyIm\nPxqcPThifo1okx8lEl+ZcMQLRdJV9UCM9URbd8qYMPjHsILxo6bWCCShCR36tW6dW0E3Ul4ES0Lj\nL+oa6li9c3VYWGN5+XLyM/PDVuEu6F9ATkZO0vT6yoRF5Fpgs6o+7+3PxcWJVwNfV9XlcVUZriel\nTNiInn37Iieh2bQJRo4MDyOMHg09um7f0EFBfUM963avCwtrlJSXkJuRGxbWKMgvIK9X/Je19JsJ\nr8LliHhPRE4B/gHMAM4DMlX1q/GVGabHTDjOxLulvHdv8yQ0gVDCtm2uFRuahGbkSEtCc7DRoA1s\n2LMhbLRGcVkxWT2ywsIahfmF5GfG7rvqNxOuBsao6kYRmQ30U9VLRaQAeF9VE7pilJlwfInlZIzd\nu5vMNjiUsGNH5CQ0hx9uSWiM1lFVNlVsap78qLyYZaXLSE9LDxutUZhfyMDMge3Or+E3E94OnK2q\ni0RkKW5Zo2dEZBSwVFUTGlU3E44fHR09sWNH5NljFRVumFdoGGHYMDezzDBihaqytXJrxMx0qhoW\n1ijML2Rw9uAWzdlvWdTeAB4TkcW4IWuveuXjgbXxEHawk6yOs9Yyj/Xvn09ZWWSzra5ubrJnneVe\nDxliZmskBhFhcPZgBmcP5vQRpzeWqyplVWXOkL21BF9a/hLFZcXU1NVEDGsclnNY4nRH2RLuA9yF\nW/Pt16r6mld+B7BfVe+Oq8pwPV26JZzshPBDh46jpuZ9oBDYTFraGxx33EWsXNmDhobIeREGD05s\nXgTDiAXlVeUR82tU7K+g8pZK/4Qj/EZXNuFETvAIJKH58MPd/POfFZSX57NmTS+WLq2lqmoPaWnr\ngU/5r/86iosvnkRhIQwcaGZrdH12Ve8ir3decsMRIpKnqjsDr1u7SeA8o/PEKiF8MA0NsGFD5DBC\nWlo1FRWf0r37FlQXcvPN5/Dii6d5WpThw7+WEuOIDSOWxHr9v9aINotaAxDpRMElPk5o/jtrCUem\nvr4pCU3wVlICubnhIYT8/HKOPnqsr6ZVG4Zf8EPH3GnAzqDXXdP1fEZ+fj5z5z7CjBmnNptWHGyK\noUloAkO/li+HAQOaTHbyZLjiCjc6ISfCxKOFC9fGvNVtGEb7sJiwTykrK2PVqvXU149g27a8sCQ0\ngweH57EdNw6y2jFY0I8JhgzDL/htnHBjaCKkvB9QauGIzrF/P6xYER5GWLMGhg4NDyOMHQu9Y5SM\nyo8JhgzDD/jNhBtwSd1DTXgwsFpVE5oqJVVNuLrahQxCZ49t2NByEpqMBKRlTbVkPoaRCHxhwiJy\ng/dyNnAHUBl0OA34D+AwVT0mbgoj6/K1Ce/bF54XobjYDQcbNSo8jDBqlCWhMQy/4RcTDsyGGwZs\nAuqDDtcC64DbVPXjeAlsQZcvTLiiIrLZbt/uWrGhkxpGjrS8CIaRKvjChIPEvAOcq6q74i0oGhJt\nwrt2Rc74tWtXy0lo0mzRWsNIaXxlwolGREYDnwJ/UdWLIxyPiwkHktCEJg7fuzfyqrpDh1peBMPo\nqvjOhEVkDPBNXP6IZhHMWC/0KSKvAxnA+libsCqUlkaePbZ/f+S8CEOG2FRdwzjY8MNkjWAx5wDP\nA0uAScBCYCTQE3g/loJE5AJgF1CMy9jWIVRh69bIZqva3GynTnU/Bw0yszUMI7FEGxNeBDynqveI\nyF7gKGAL8DTwT1V9ICZiXLa2hcCpwGXAyLZawqpu6ZvQ2WPFxdCzZ3irdvx4yM+P3mxramD2bDc5\nYs0auOuuWLzTtrnxRjj3XDj55MTUZxhGc3zVEgbGAs96rw8AvVW1RkR+ilvqKCYmDPwUeExVt7SV\nBf+SS5ryImRlNbVsjzsOvvMdN1W3fwzW+7jgArj1Vpg0CS680C2jPqrD7fPoePdd+MMf4Otfj289\nhmEkn2hNeC8uRguwFRcm+Ld3fUzSDYnI0cDpwNHRnL9jxyyOOAKmTIGzzprClClTYiGjGU884eLE\nkya5/aqq+JtwRQV8+qn7h2IYRuIoKiqiqKgo4fVGG454EXhFVX8rIvfhFvh8CpiKm7Z8ZqeFiFwH\n/Axn+AJk4SaEFKvqsSHnJmSI2pgxcPfd8M1vuv2hQ+Evf4FXX4UJE2DjRvjBD5pfs2uXC18ECMgM\nNOxV3YJNCkl2AAAVxklEQVSVt98eeRjb/ffDtdfCmWfCHXfAKafE/n0ZhtE2fgtH3IAzRYBZQDbO\niFd4x2LBo8Afg/Zvwk0SuTxG928Xixc3pYW87z43fG3nTigrc1OJzzvPZShbswZGjGi6LjfXGXdH\nePlltyyQrSpsGAcPUZmwqq4Jel0FXBFrIapaA9QE9kWkEqhJVsL4BQvghBPgttvc/q9+BdOnw5Il\nLu4MrjX8/vvNTbijbN3qVia2MIRhHFxEO0QtH0BVy7z9CcA0YJmq/rG1azuKqt4Rj/tGy549MHFi\nQAvMnQvz5sGjj0JmpivPzHRTlIPZuRN+8YuW76vqpi7PmtU8HPH66+5e993nzlmxwtW3b59rHRuG\n0TWJNhzxZ9xwtMdFpD/wHm6I2jUiMlhV74+XwGQxcqTrJAN46ikXfpgwwS0VFDDP4NcB8vI6Fo74\n7neb7//mN240hsWEDaNrE+2k2yOBj7zX3wRWqep44GLg+/EQlmymTnVx4LlznRnPmuXKBwxwKSnB\nlcc68+PmzfDjH7tW8f33wyuvxPb+hmH4i2hHR1QB41R1g4g8B3yiqneKyGHAioMpn/Drr7ucwNde\nCxdfDLfc4pL4GIbRtUjU6IhoW8IrgXM90z0TeMMrHwjsjocwv3LGGW5o2nPPuRUuDnYDvvFGN6vw\nzjuTrcQwUpNoW8Ln4oaPdQfeCowLFpGZwBdU9ey4qgzX44t8wgb07euWWpozB84/P9lqDCN2+DGL\n2kBgMC4U0eCVnQDsUdXP4ycxohYzYZ8wb57rQDSMrobfJmugqtuB7SFlCV1Rw/Afq1e7zsPVq+Ga\na5Kt5iAgkRmlFi1yQ4OOPRbmz4ebbnLDhoyYYinJ2yAQ75w7F2bOjG9dM2a42XK9e7uJIkuWxO7e\nlZUuXLBpU/PyRYvguuvg6afh8sudmbaHW2+Fs8+Gbdtch6URZy64wH3gM2bA2rUumUk8qK114zJn\nzoRvfxu+9z03W8mIObbiWRskMovasGGwZYsbfzxwYOzuO3euM98XXnDD3gIE/s4WLHBD7woK3N/Z\nggXueGUlPP98eNrPQYNcB+Xvfw/19c4PMjLgs89cZ6URJxKZUeq99yA7230xwLWGS0rcXP7hw2Nf\n30GMmXArJDqLmmp0446ffNKl6wymrg6efRYuuij8/Bkz3M87QuYgtvV3lpUVXk8weXlw4onu9aZN\nMG1a29qNTnDPPc1nAi1e7JKVzJoV+4xS69ZBv37N75Wb6xJ2mwnHFDPhVmjpO6/qhmbdH2GeYGey\nqFVXw2OPOWN86y244QbXOg1l5Ei4+Wa49163f+CAG7cc+vfXFp39O/vqV+Ghh6BPH5dSdMyY9tVv\ntINEZ5QqL3dxsWAyMtyCi0ZMidqEvdER38Yta3SrqpaLyBeALaq6Nl4Ck0VL3/nCQpfM5913I1/X\nmSxqRx7p4rbp6a51+o1vRI6zfvGLzsBvvBF+9jO4/npn2KNHt6++zv6ddevm4slGAkh0RqmcnKYW\nRIDKytislGA0I9oEPpOAt4C1wHhgNlAOnAGMAbrcIKWWvvPZ2c70Xn459nVOm9bUOh45ElaudAne\njzwy/NyTTnIt4MJCeO219hsw2N9ZSpHojFLjxsFvf9u0X1/v7jVsWEzejtFEtC3hXwBzVPV2b425\nAK8Dl8ReVvIJ/s5D03e+LTr6nf/4Yzj9dNc67dnTtUZFoEePyPepqnKx4Tlz4OGH4YEHIieJbw37\nO0shEp1R6pRTXKhj0ya33HhRkVtDrCP/7Y1WidaEJwEzIpRvxU1d7nIEf+effLLpO98WHf3ODxni\nhmH27On25893i3xGmhZdWenG5N55p7tu+HAXE54zxxl8tNjfWQoxdSq8+aZrDVRVxT+jVFqaG7d4\n113usauoyPX8GrFHVdvccJM0Jnmv9wIjvNdfATZEc49Ybk52fKmrU/3+91V/9zvVBx8MP37qqbGv\n8+WXVX/xC9Wf/1z1e99TLSuLfN7VV6tu3ty8bNky1dtui3z+M8+oXnGFarduqtOnqz78cNOxt99W\nvfxy1SefVL3kEtWVK2PzXowE8dprqnPmuNff/rZqSUly9SSbH/5Qtbpa9ac/7fStPJ+Ju59Fmzvi\nt8AhwPm4WPCRgAIvAW+r6vWx/ufQhh6NRnc8OfVUeOedpEowDBeC+PGPXQfG8uXxn1Hkd2KYzMRX\nuSNEpA/wCs58M4FtuDDEfOBsVd0XT5ER9CTNhGtqXF/Ivfe67/4VVzSFEAzDSDIxTGbiKxNuPFnk\nNGAibrrzYlV9M17C2tCR9JawYRg+5M473eyqGCQzSboJi0g9MEhVS0XkceA6VfXFSG0zYeOgJZEJ\nfBYsgA8+cB1+H34IP/lJ7NbbqqyESy6BX/7S9QoHiFXSoJkz3aoLnZhH74csatW4Ze5Lge8AP8Z1\nyhmGkSwSlcykuhpefLFpqM9zz7kVZ1etcslDOoMlM2lGayb8IfCiiCwCBHhQRKojnaiql8ZCjIj0\nAB4BTgdygdXALar6WizubxgpTSKTmaxaBT//ucueNmIEfPnLzpjnz4dvfrP5uZbMpFO0ZsLfBm4E\nRuFGQvQD9idAzwbgP1R1o4icA/xZRI5Q1Q1xrtsw/E0ik5lMmOAMNzAFeuNGd02kQeSWzKRTtGjC\n6pK43wQgImuB6aq6I55iVLUK+GnQ/j+8uifhzNkwDk6Skcwk0KoEZ7A//CEcdVT4eZbMpFNENb9K\nVQ+Pt5BIeEmDRgPLklG/YfiGZCQzCfD4464jMNDSjYQlM+kwLZqwiNwAPKKqNd7rFlHVB2ItTES6\nA38Afq+qK2J9f8NIKRKdzCTAP/7hwhD33uvi0du2RU4uYslMOkxrLeFrgCeBGu91SygQUxMWEcEZ\n8P6W6p4VmDsPTJkyhSlTpsRSgmH4i0QnMwEX4ti+Hc45x5nvRx+5kQihpthFkpkUFRVRVFSUkLqC\naddkjUThjUseipuNVxvhuI0TNg4u6uvhqqtc7uCqqvCJCKedBm+/Hbv61q518d993mRYVdci3rPH\njVII5ppr4H/+x4UsAhQXu9ERoSMgwLXgP/jATT2dNs3FlK+80h175x3485+bkgbdckv8lrJpg6RP\n1ojqYpFhwGxV/VbMBIn8Bjc9+nSvoy7SOWbChhGMJTOJOYky4c6uttwXOC8WQgBEZCjw38DRwHYR\n2SsiFSJiy7waRiRqatxj/+efu866/fEeRWrEms62hI/C5ZBoZwS+c1hL2DCMeJMqLWHDMAyjE5gJ\nG4ZhJJFWx4+IyN/auL5PDLUYhmEcdLQ1iK+taco7cCswG4ZhGB3Al+OE28I65gzDiDfWMWcYhnEQ\n0I45hYZhGF2YhgY3I3DXLti9O2HVmgkbhtF1qKtzBrprV/MtUllo+d69bkp2bq7bEoTFhA3D8Bf7\n90dvnKFbdbVLiRkw0uCtb9/Wy3NymmV+S4ncEcnCTNgwfIyqM8P2tkQDW11d66bZ2rGsLJfcPQaY\nCbeCmbBhxBlVl6KyPS3R4PJu3drXCg3eevcOX8wzCZgJt4KZsGFEQWhHU3sMdc8e6NmzY4/1ublu\nWaIUx0y4FcyEjYOGSB1N0RpqcEdTe1qigfL09GS/+6RiJtwKZsJGSrF/f8c6mXbvdgncQzuaojXU\nkI4mo32YCbeCmbCRUEI7mtprqAcOtK8VGnwsOztmHU1G+zATbgUzYaPdtNTRFK2hBjqa2vtY76OO\nJqN9mAm3gpnwQUqgo6kjj/aROpraY6hdoKPJaB9mwq1gJpzChHY0tRUTDd6vqGg+o6k9j/Z9+0KP\nHsl+90YKYSbcCmbCSaa2tuPjRwMdTR0ZiG8dTUYCMRNuBTPhThLc0dSRR/vQjqb2GKp1NBkpgplw\nK5gJE7mjqT2P9iId77HPzLSOJqPLc9CasIjkAo8DZwBlwC2q+seQc7qGCTc0uDhntMYZXL57d1NH\nU0d67K2jyTBaJVEm7MdUlo8ANUA+MBH4h4gsVdWS5MpqgeCOpihaokUbNjClrq7ljqZQ4xwyJHJ5\nEjqaioqKmDJlSkLrjBWmPTmksvZE4SsTFpHewLlAoapWA/NF5CXg28Atcas4UkdTtI/2VVXQp0/L\nLdG8PBg5srGs6C9/YcqPftTU0dTdV7+CVknlPyjTnhxSWXui8JsDjAEOqOrqoLJPgMmtXhXoaGpP\nTDS4vLa29cf3QYOgoCDysfZ2NM2fD6NGdeSzMQyjC+I3E84CKkLKKoDssDNPPrn1jqZQQx02DI4+\nOvIx62gyDCNJ+KpjTkSOBj5Q1aygsh8Cp6jqfwaV+Ue0YRhdloOxY24F0F1ERgaFJI4ClgWflIgP\nxjAMIxH4qiUMICLzAAUuw42OeBk42bejIwzDMDqBH6cuXQX0BkqBPwCXmwEbhtFV8V1L2DAM42DC\njy3hFhGRXBH5q4hUishaEZme4PqvEpGFIlIjIo+HHPuSiJR42t4SkaEhx38uIuUiUiYi94YcGyYi\nb4vIPhEpFpEvhRy/UETWicheEXlBRPq2U3cPEfmdd489IrJYRL6SCtq9ezwtIls97atFZGaqaA+6\n12gRqRaRp1JFu4gUeZorvPuUBB3ztXbvPhd4968UkZUi8gVfalfVlNmAP3pbL+ALwG6gIIH1fwP4\nOvAw8HhQeT9Py7lAD+A+4J9Bx78PlACDvG0Z8N9Bxz8EZgM9vXvsAvp5x8bjhul9ARemeQb4Yzt1\n9wZuAw7z9s/x7jnU79q9+xQCGd7rMcA24MupoD2orteBd4GnvP3+ftcOvANcEqHc9587Lu3BWuA4\nbz+gxXfaE2Jesdi8N7UfGBlU9iRwdxK03ElzE74MN7QuWGsVMMbbnw98L+j4JcCH3usxQDWQGXT8\n3cAvHrgL+EPQsRHe55DZyffwCTA11bQDY4GNuE7blNAOXAD8CfePMGDCvteOM+FLI5Sngvb5RP4H\n4jvtqRSOaGk23fgk6QlmPE4LAKpaBayiSVuz4zTXXQisUdV9LRwPvfca3C92TEfFishAYDTuv3xK\naBeRh0VkH/Bv4C5VXZwK2kWkD3AHcAMQPLTS99o97hGRUhF5X0QCM1d9rV1EugHHAgO8MMQGEXlQ\nRDL8qD2VTDj62XSJJwvYE1IWrC30eIVX1pFrQ4+3CxHpjht18ntVXZEq2lX1Ku9+ZwA/E5HjU0T7\nT4HHVHVLSHkqaP8RrjV3KPAY8DcROTwFtA8E0oHzcKGBo3FPTj/xo/ZUMuFKoE9IWQ6wNwlaQmlL\nW+jxHK+sI9eGHo8aERGcAe8Hrkkl7QDqKAL+Akz3u3ZxM0BPB34V4bCvtQOo6kJV3aeqB1T1Kdyj\n+jkpoL3a+/mgqpaq6k7gAeBs7z6+0p5KJtw4my6oLGw2XZJYhvtvC4CIZAIjcY/OgeNHBZ1/NE26\nlwEjvGsCHBVyvPFa7/2n4z6P9jIX1yF0rqrWp5j2YLoD+1JA+2RgGLBBRLYCNwLnici/PI1+1t4a\nvv7cVXU3sCm02Nv8p729nQzJ3IB5uB7H3sAXcT2TiRwdkQZkAHcDT+F6SNNwxrYL19HVE9fj+mHQ\ndd/3fkGDcY92y4DLgo5/6F0T6HHdSVOPayGuN/cLQKb3/p/pgPbfePX0Din3tXZcXulp3vXdcKMi\nduNifn7XngEMCNpmA38G8lJAew5wJk3f8YtwLbqRftfu3ecO4GPv+5MLvAfM8qP2pBlqRzbvw/wr\nrtm/DpiW4PpvBxqA+qDtNu/YabihLfuAt4GhIdfeC+wAyoF7Qo4NxfVEV3n3ODXk+AXAeu+P4AWg\nbzt1D/V0V3n32IuLVU1PAe39gSLvy74LWAB8Lei4b7W38P15KhW0e5/7AlyMcyfOfE5LBe3ePbrj\nhpLuArYAvwR6+FG7zZgzDMNIIqkUEzYMw+hymAkbhmEkETNhwzCMJGImbBiGkUTMhA3DMJKImbBh\nGEYSMRM2DMNIImbChpFgvMTgDSIyMdlajORjJmy0iIgMEJFfisgKb4WFbSLygYhcHTx/3ltJoMHb\nqr3UgS+IyFcj3LMhaKsQt1LJ1MS+s6SzATgEWAogIpO9zyMvubKMZGAmbERERIYBS3D5A2YCxwAn\n4PJmnAZ8Leh0xc3LPwSXp3gablWDv4rIgxFuP8M791hc/tW/eKkpE4aIpCeyvmDUUaqqDQE5uM9Q\nWrnM6Kp0Zi68bV13A17FzYHPiOLctcANEcovw+WsmBxU1oDL4hbYT8PlAvlZC/ce5l0zHXgfl6aw\nBDgj5LxC4O+4nBjbccmeBgYdfwJ4GZcjdyOwrZX3cyLwlqdrN/AmcIh37Mu4ZDA7cfkFXgPGtUdv\n0DkTg17XB/18PJq6bOsam7WEjTC8x+Izgf9V1ZpO3GouLoHKeS2doC6lZh0uK1Vr/ByXl/co4P+A\nl0RkkKf3ENwyM5/iWtdfwmWxeinkHpOBCThz+xIREJGjcEldVgAnA8fj1jXs7p2SiUsGc6x3v93A\ny16y/Kj0Bt6693MDTZ9PAW5ds+vaWZeRyiT7v4Bt/ttwxtMA/GdI+UaasrA9ElQesSXsHfsn8Peg\n/caWMM54b8W1/s5s4fpAS/HmoDIBlgM/9fZ/CvxfyHW53nXHevtP4FrI3dt4738A5rfjs8rE/RM5\nuR16G1vC3v5k7zPIa09dtnWNzVrCRnv4Iq5ltwCXKzcaAvHOYJ4Wkb24VILXAT9U1TfauM9HgRfq\nHOljXAgC3GP9ZG+Z8b3evTd49QYvAvBvVa1ro55jcC3hyG9GZISIzBORVSKyB7fys+BSHEarNyra\nUZeRwthjjRGJVTgDG0fQI72qrgcQkapobuItuDgGZ0DB3IhbAr5CVctjoLcbLh78Q8I7t7YHvd5H\n5/kHzuD/G9iMa5mW4JZPjzWJrMtIEtYSNsJQtybXG0CzoWgd4DLcCg3PhZRvV9U17TTgE0P2jweK\nvdeBlZc3ePcN3tprvEtwoz/C8GLlY4G7VfVtVV2Oe3+RGjOR9Ja0UGet9zOtg3UZKYyZsNESV+K+\nH/8SkQtEpEBERovIdFxIoj7k/GwRGSgiQ0TkJBH5JfAQ8JCqvh8DPVeIyHkiMkZE5uAeyX/jHXsY\nZ1B/FpHjReRwETldRB7twD+R2cAx3rVHevXNEJEhuE7GcuAyERnpLQH/a+BAlHp/3UKd63FPHueI\nSH9Pc3vqMlKZZAelbfPvhlsX7Ze4kQLVuOFfH+OGeWUGnbeWpuWeqnGP0C8A50S4Zz1BQ9Si0BA8\n5Gs+TcvKnBly3kjc+m07cGGHEmAOXkccrmPub1HWeTJuSaV9uOFhb+ANdwOm4EZhVHk/z/A+l4uj\n1eudU4/XMeeVzaQp5BAYonZqa3XZ1jU2W97I8DXepJG1uFEOi5Otpy1STa+RfCwcYRiGkUTMhI1U\nINUe11JNr5FELBxhGIaRRKwlbBiGkUTMhA3DMJKImbBhGEYSMRM2DMNIImbChmEYScRM2DAMI4n8\nP73yw5ww5AHPAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "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.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": 11, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(4.8530528002664362, 4.9115445891584838e-05)" ] }, "execution_count": 11, "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": 12, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Saving figure best_fit_model_plot.png\n" ] }, { "data": { "image/png": "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\nYujQHlx66YJ6lWrqcnEvUpJlZ6CAigt3BdU9gvi2iIstHV90xqRFrNyQqDWXyZZwdedOV0t4507V\nefNUp05VHTtW9bzzVPv2VW3RQrVbN9XTT1e96irVRx5Rff991a+/Xpfw/c6fPz8jn0MmP1/CLkdU\n2gm6xhJyom1BBBp3zvp9usakWXU/h6tL0uk4V7Jzu5pwa68m3L3amvC2baqzZqk+8YTq9dernnWW\n6uGHq+blqfbqpXrOOao33qj69NOqc+eqbt+eOLbqSiSxz6F16+9o8+Zt9cEHH67X51DT+eorqCSc\nahe1MqCLukHW/ev3A4pVNdByhHVRM9mmPr0j/K+dNm1GrX56x3pHbN68mfbt21NQMIB16/av0u1r\nwwbX6yC+j22PHpCbW7tYE3VHi3U7e+ihSVxxxbXk5h7K3r3L6l06qOl89RFUF7VUW57lQH6C9QXA\n9iC+LeLOW+dvN2Oyib9nRV5ee83NbVfjT+/yctWVK1X/9S/VCRNUTz31a23S5F0V2aCwRXv0WKcX\nXaR6552qr76qunix6t696Y85UYkkE6WDdP/SiCEKLWERmeAtjgIeA/xjCzXFjfm7W1VPSveXQ3Ws\nJWwag6qtvCnAGODrffu0bv1Dxo27m7KynpVat3l5rkXbrVspf/vbOPbsGea9YjMtWpyblpZiTbHH\nt/xnz57N0KGXsWXLnH37tW07gGnTHuLYY49N+/nqKyo3a/SNxQP0Bnb7tu0G5gJ/ykBcxjR6VXtW\nnAEswo0o2wEoZ/v2ibz6amf69YMTT4RLLnFlhI4d3Stmz/6cqVOfY8+eSUA3YCmqbdPSQ6I6+fn5\nVY5fU0+SdJ8vW1SbhNWbUUNEHsNNO781kKiMaYS2b3fjH8TqtJ9+ehRbt/4dVw10Q383adKSpk1v\nIDd3K2Vl7/Loo3dVW1Nt3bo1paVrcKMNuMS3c+fxtG7dOoB3VFl+fj6TJ09kxIjBNGtWwJ49riac\nrckzXVK9MHcAkKOqK+PWHwzsUdW1GYovWTxWjjBZa9OmxCN9ffttxcWx2AWyJUteZ8yYi8jN7bIv\naQ0ZckrKP71nz57NoEEjKC2dt29dixZ9efvtR+tdAqirqI91ERO1AXymAc+o6uS49SOA81X1tAzF\nlyweS8INXLb8j5qMemPYxvdCWLAASkrK6dp1B3375tC/f96+hHvoodA0QT+j+vasyFTvgYYuakl4\n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\n", "text/plain": [ "" ] }, "metadata": {}, "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", "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": 13, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "22587.49\n" ] }, { "data": { "text/plain": [ "5.9624474431881502" ] }, "execution_count": 13, "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": 14, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Saving figure cyprus_prediction_plot.png\n" ] }, { "data": { "image/png": "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\nn+q8edW+fdVi3DjVHj2qd81JJ6kOHly+7I47VNu2jR6/9pq9lS1duuUyhgk5YAnHKuoKoyoiso2q\nbkjnA6G2s2JF4kxfP/1k1kLEZzt0qO2nM4dtKIwdm5Zm6tWzfBIQtTwvucRC4zp1srC5116DP/4R\n7rjDFhudPx/OOces6QkT7JpTT7Vsa2++Cb/7na3PN39+4j4jHH64/W5Tptjv8d135l/v08dWVhkz\nxhK+qyZf+fjUU+26F180K/myy+APf7CyyODn+vVw/fUwebKVnXKKyf/KK8llO+IIe1NIhkh0sdpk\nRJLV16sH++1ni9RWNoa6fn3Fv8n69W2q+YIFtvDs88/bCiM33QRTp9q9Pvxwa7thw8TtbtWkoqmB\nvwJDYo4fxKYUzwK6ZONpESfPFj7jMkdZmeqiRWax3XWXWUT9+6u2bm0WTq9eqsOHq157repzz6nO\nmqW6YUPYUucO8Zbwhx+qNmumOmyYHUcs0GefLX/dQQepXn11+bLnnov6bGfNsuvefz9aP3++ap06\nyS3hadOsftasxLJOnqy6/fYVy2Mt4W+/tX7ffTdav2KFauPGqg8+GG2noED1u++i5zzyiFnelfHT\nT6pz5lS+Vcarr6o++aTqV1+ZFV5UpNqypeqyZcmvue8++zueNs3+1mfNsre2ggLVDz6wc/7wB5P9\nqKPszW3aNAt3HDq0cnlyDXLJEg6U8OkAInIQlk3tJCzHw03AUel7LOQHGpPDNj61IpSPRDjySPvc\neWfPYZsKr7xi1u3GjbYNGlQ+0kAE9t67/DWffgoff2zWZISyMrPcFi2yREF16piFFqFt2+gK04n4\n/HPL2ta5c82/S6Tf/fePljVqZNETX38dLatXz6z6CK1bmxX/66/JfcytWtVcLjCfbiz7729W8JQp\n9paQiLPOMut50CCTr3FjW+pr3Ljo33ZZme0/9lj07eDOO836X7Ik+dp7WyupKuE2mF8Y4GjgSVV9\nQkS+Aip5Icp/Nm60P7pECzw2ahRVtnvuCSedZPs77ug5bLeEvn3h/vttsK1168SDRfGvtWVl5v0Y\nOrTiubH/9Ln0u8TKEj+wGKkrK0t+fTrcEbE0aADdu5ubpDKuu85cC7/8Yvf29detvEMH+2zVylwc\nse6ZwkIzXBYscCUcT6pKeCWwE/ADMACbrgywgcSrMOcd69ZZDtt4n+3s2aYIIsq2Xz8bBS4sNCug\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sample_data.plot(kind='scatter', x=\"GDP per capita\", y='Life satisfaction', figsize=(5,3), s=1)\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": 15, "metadata": { "collapsed": false }, "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", "
IndicatorGDP per capitaLife satisfaction
Country
Portugal19121.5925.1
Slovenia20732.4825.7
Spain25864.7216.5
\n", "
" ], "text/plain": [ "Indicator 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": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sample_data[7:10]" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "5.766666666666667" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(5.1+5.7+6.5)/3" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nGjMzy9X/B5W3kGbLMTpsAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "[[ 5.96242338]]\n" ] } ], "source": [ "backup = oecd_bli, gdp_per_capita\n", "\n", "def prepare_country_stats(oecd_bli, gdp_per_capita):\n", " return sample_data\n", "\n", "# Code example\n", "########################################################################\n", "import sklearn\n", "import numpy as np\n", "import pandas as pd\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", "lin_reg_model = sklearn.linear_model.LinearRegression()\n", "\n", "# Train the model\n", "lin_reg_model.fit(X, y)\n", "\n", "# Make a prediction for Cyprus\n", "X_new = [[22587]] # Cyprus' GDP per capita\n", "print(lin_reg_model.predict(X_new)) # outputs [[ 5.96242338]]\n", "########################################################################\n", "\n", "oecd_bli, gdp_per_capita = backup" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false }, "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", "
IndicatorGDP 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": [ "Indicator 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": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "missing_data" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": true }, "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": 20, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Saving figure representative_training_data_scatterplot.png\n" ] }, { "data": { "image/png": "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\nAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "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", "\n", "save_fig('representative_training_data_scatterplot')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Saving figure overfitting_model_plot.png\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "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=60, include_bias=False)\n", "scaler = preprocessing.StandardScaler()\n", "lin_reg2 = linear_model.LinearRegression()\n", "\n", "pipeline_reg = pipeline.Pipeline([('poly', poly), ('scal', scaler), ('lin', lin_reg2)])\n", "pipeline_reg.fit(Xfull, yfull)\n", "curve = pipeline_reg.predict(X[:, np.newaxis])\n", "plt.plot(X, curve)\n", "save_fig('overfitting_model_plot')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false }, "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": 22, "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": 23, "metadata": { "collapsed": false }, "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", "
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
KuwaitGross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...29363.0272014
MalawiGross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...354.2752011
New ZealandGross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...37044.8912015
NorwayGross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...74822.1062015
\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 \n", "Kuwait 29363.027 2014 \n", "Malawi 354.275 2011 \n", "New Zealand 37044.891 2015 \n", "Norway 74822.106 2015 " ] }, "execution_count": 23, "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": 24, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Saving figure ridge_model_plot.png\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjkAAADTCAYAAABjqwKgAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XlcVXX++PHXQdFAQVlEBRVQs3EpNfuWmpXaZNvPtNxL\nG7Mxv5aVWZOjpkLWmJXf9nJN25tqJjPL0dLQzEwzl3Ja1AhkcWUTUBF4//74cC/3Xi5wwcvq+/l4\nnIf3c86557zvUbxvPqslIiillFJK1Tc+NR2AUkoppVRV0CRHKaWUUvWSJjlKKaWUqpc0yVFKKaVU\nvaRJjlJKKaXqJU1ylFJKKVUvaZKjlFJKqXqp2pMcy7Lusyxrh2VZpy3Let3l2LWWZf1sWVa2ZVkb\nLMtqV93xKaWUUqp+qImanGRgHrDccadlWSHAv4BZQDCwE/hntUenlFJKqXqhYXXfUERWAViW9T9A\nhMOh24CfROTfRcdjgOOWZXUSkd+qO06llFJK1W21qU9OV2CPrSAiucCBov1KKaWUUhVSm5KcpkCm\ny74sIKAGYlFKKaVUHVftzVVlyAYCXfY1A066nmhZlq4qqpRSSikARMRyt7821eTsA3rYCpZlNQE6\nFO0vQUR0q+Zt7ty5NR7D+bjpc9fnfj5t+tzrxnNfuVI4cqS43Lu3sH9/cfnrr4Xc3OqJvSw1MYS8\ngWVZFwANgIaWZTW2LKsB8DHQ1bKsWy3LagzMBXaLdjpWSimlqlVCAmQ6dCD561/hu++Ky5mZcOpU\ncfnbb6Fjx+Jyv37g51f1cZanJmpyHgNygenAHUWvZ4nIcWAY8A8gDbgMGF0D8SmllFLnlR9/hB9+\nKC4/8wzs2lVc/vvfoVu34vIDD0BkZPXFV1k1MYQ8Fogt5dhGoHP1RqQ81b9//5oO4bykz71m6HOv\nGfrcq8aBA9CgAURHm/LMmdChA9x9tylfdll/Lrig+PyXX3Z+v2MtTV1ildeeVRtZliV1MW6llFKq\nquTnQ8OiqotPPoGzZ2H4cFNesgSaN4eRI005PR38/aFx45qJ1Zssy0JK6XisSY5SSilVxxw8CMeO\nQe/epvzKK/D777BwoSnv2QOFhdCzZ83FWF00yVFKKaXqkIICyMqCoCBT/vpr2LQJHnvMlOPi4Lff\n4J57TPnsWVOLY7n9qq/fNMlRSimlarGkJPjmGxg1ypTXr4fXX4f33zflw4fN1qNH6dc4X5WV5NSm\neXKUUkqpeikvz9S82Pz2G4wYUVzOz4eUlOLyoEHFCQ5Aq1aa4FSG1uQopZRSXpaVBS+9BLNmmXJS\nEowfD19+acqnT5s+NF261FiI9YbW5CillFJeVFho+sjYnDplhmQXFpqyn5/zyKU2bYoTHIALLtAE\npzpokqOUUkq5UVgIjo0GkyebGhgwHXznzy8u+/mZzsG2jr++vvDII9UbrypJkxyllFIK+Owz08xk\n06ULJCYWl6+5primxrLgP//BaQK98PDzc3RTbaZJjlJKqfNCbi6cOVNcfvhh+Pnn4vKmTWaSPJvd\nu52XLhg92kygp+oOTXKUUkrVS599ZpYzsLn9dti6tbg8bBi0bFlcfvpp56TGsZZG1U3VvnaVUkop\n5Q3HjpnmodBQU543Dy6+GIYONeUjR0wTks3HHzs3J/XtW32xqooTgRMnIDm57K0sOoRcKaVUnfDF\nF2ZW3wEDTDk21oxoGjvWlH//3azPFBxcczEqz+TlmXmBXBOWpKTi1ykppkN3RETZW6tWOuOxUkqp\nWu7wYdPxt1MnU168GI4ehdmzTTkuziQ5/frVWIiqHCKQkVEyYXHdMjJMU6FjstKmjXM5PByaNCn/\nnrqsg1JKqVqhsBB8inqDfvst7NsHf/2rKf/73/DHHzBtmimnp5ukJiCgRkJVLs6ehdTU8puPfH3L\nr30JC4MGDbwTlyY5Simlqt2RI/DLL2boNcDnn5v1mD76yJQPHIBDh4qbn1TNEDE1aGUlLklJpn9M\nWFj5CUx1J6Wa5CillPI6ETh5EgIDTfm330wT08KFpvzTTyahiYkx5bw8U4vTUIe8VJv8fJNsltbv\nxbHzrruExbEJqWXL2vl3p0mOUkqpc5aVBatWwZ13mvKvv8Idd8D335tyZqaZW8ZWc6Oq1smT5Tcd\nHT0KISHu+7w4boGBdXciw7KSnFqYkymllKoJhYVmhFLHjqaclQW33gobNpiyZZnaGZtOnWDHjuJy\ns2aa4HhDQYFJTspLYM6eLZmsXHgh9O9fXG7d2vSROV95XJNjWdYo4FogDJdJBEXkFu+HVmYsWpOj\nlFLnSMQMw54923QCzc+H7t1hzx7TLCEC27fD5ZfX3d/ya5vc3LL7vSQnm+al5s1Lr3Wx1cg0b65/\nL+CFmhzLsp4BpgJfASmAZhhKKVUHfP+9mSDPtiL2//yPmQk4LMx8QTZpYpY68Pc3ic2+fcXvtSy4\n4oqaibuuKSyE48fL7veSnGxWKw8Pd05YoqLgyiuda18cVzBXledRTY5lWUeA+0TkoyoPyLIigNeA\nK4EzwL+AB0Wk0OEcrclRSimKV8m2/UY/bx6MHw9t25ry6NGwYEHxcgWJieaL1FvDd88Hp0+X33SU\nmmpGFZU38igkRGtfSmXryX7ihMkYT5wwbaYjR5Y8NycHLroITpzAOn36nPvk+AC7Kx95hbwInABa\nAUHAl8C9wMvVdH+llKq1tm6F9u2hVStTvvlmmD69uC9Mly7OtQDvv+/8/nbtqifOusDTZQNOnjS1\nK64Jy+WXO09c5+dX05+oFhExPdEdE5bjxyEtDR58sGSml59vqhV9fc06HSEh5s8WLWDEiJLn+/ub\niZZCQsqcMdDTJGcJMBaIqcBHrKxumJqbs8BRy7L+A3SthvsqpVSNy883m21xyOeeg1694OqrTTku\nznwP2JKcDz90Xhl72LBqDbfWOpdlA3r1giFDisuhocUTGJ7X9u83C4a5Ji7z5rnv3dypEzRt6py0\nhIaantWuY9EbNjRJkaerolpWcXVlWad52Fz1CnA78F9gL3DW8biIPOBZVOWzLOsFTA3OJCAY+A8w\nS0RWO5yjzVVKqXrh22/NF22PHqZ8332m38z48aa8Y4epRWjTpsZCrFUqumxAWcOmPV02oN769lvT\ny9kxaTlxAl54wSQnri67zCQjtqTFlrhMm1ajS7af8zw5lmV9VcZhEZGBlQ3Ozb2CgA3AxZhmsjdE\nZILLOZrkKKXqhOxs09m0RQtTXrHC1DJMmmTKH31k5igZNMiURc7fPhu1ddmAOuPzz80DcqxlOXHC\n/KOzLdXuaMgQ8w/OsaYlJARuv925erCWO+fRVSJSnZNurwM+AC4HAoAVlmUtEJHpjifF2KbQBPr3\n70///v2rMUSllHLvhx/M98zgwab87rvmu2bmTFMeONC56WP4cOf318cEx5NlA2zfze6WDejWrWaX\nDagx77wD8fElm4c+/LC4J7mjNWtMBh0aaqqxunY1r0tLWD75pGrjryJxcXHExcV5dG6FZjy2LOsC\noCNmCPlBETldmQDLuH4ocBRoJiIni/YNAeaJyCUO52lNjlKqRmRmmr4cnTub8tq1Zkj2y0VDI3bu\nNM0oQ4bUXIzVyd2yAe6akqDsFadr87IBFVZaddxrr8HPPxc3C9kSlzVrTELi6oknzMQ6rs1D3btr\nL2cH3miu8gX+AUwBGgEWZnj3S5j+MmfLeHtFg00CXgD+D1OT8zqQIyLjHM7RJEcpVWUcv6P27zff\nQQ89ZMrffGOamJ57zpSzsswQ47Cwmom1KmVnl9/35ehR871bXvNRnVw2QMQMVW7c2H3H2meeMVV3\nrs1DGzZA794lz1+yxCQtjp1wQ0JMB9rzeVric+SNJOf/gDHA34EtRbuvAuYD74jII16KFcuyLgcW\nYkZZnQU2AveLyDGHczTJUUp5RXY2fPcdXHutKf/0E0ycaPpkAhw+bBKb+jRq6VyWDXDd6syyAY5z\nsLRo4b5jbUwMfP21SVZsCYuPD6xfD/36lTx/1SrnmhZb4uLvXwczurrLG0nOYWCCiHzusv9mYJmI\ntPZKpB7SJEcpVRG5ucXdEtLT4W9/g2XLTPnoUZgxA5YvN+X8fNOtoQ71u3RS1rIBtlqZspYNcGxG\nqrXLBtjmYLElIh06uO9Y++ijpjOurXmocWOTjLzxhvtFtrZsMdVyjs1DdfUfwnnEG0nOKaCHiPzq\nsv9PwC4RqdbGQU1ylKpb4uMTmD17JcnJhURE+DBv3niioyNL3X8uCgpg5UqYMMF8Qefmmgnwjh41\nv5QXFMDq1WbhybrEddmA0pqRHJcNKG34dK1aNqCw0GSeRQnLR7GxHMrMJNNlSPIFnTrxdz8/M7th\nWppJPmzJyNNPm1UpXf33vyZrtSUsNTjMWVUdbyQ524CdInKfy/7XMMlPH69E6iFNcpSqO+LjE7ju\nupc4eDAWaALk0KHDXF5//VYmTPi4xP4vvri/3EQnKcl8UTdoYH6pv+EG+Ne/TAuECEyZAv/3f8Vf\n5IWFtXsyt9OnTWfmsvq+1IllA/LzTQLi2rG2Tx8zFbOryZNh6VLTYacoEflt/346paWVODXmmmuI\nee898+GCg6FRo2r4QKou8EaSczXwOZAMbCva3RsIB24UkS2lvbcqaJKjapOqqI2oS/cvz9ixsbzz\nziOYRMYmh6ioO/njjzdL7L/jjmd5++25Ttd49VUYNcp8D4Lp0/mvf5kvdYBt2+DSS2vf9965Lhvg\nOnFdtQ+oKZp1752//52Gv/+O/9mz+OXn80fz5iQFBpralSVLis+/91744IOSHWvvvtusQOnK1qnX\nYUhVTP/+xGzaVOLUmGuuIcbDYcPq/OKNeXI2W5bVCbgP+FPR7g+BV0UkxTthKlX3uKul2LbNuTai\nKpOQsu4P8NBDz/PttwlAU3r3bsnzz0+p9gQoObmwKLYEYCVQCPhw4kRjnBMcgCakpBQyapRZj+nS\nS83ewkLTT8Zm2zbnd7kbyFLVSls2wLEZyd2yAW3amIlja2TZgKQkM1zMsWPt8eNw441w/fUlz3/h\nBfjnP+mXkkJkZmaJwzGuO155xWSknjqvpxtW1cHjGQmKkplZVRiLUnXO7NkrHRIMgCYcPBjL7Nmm\nNsKTJKgq7v/QQ4/xww85HDrUFHgLaMLq1Tns3j2TuLhp1ZroRET4AD8DywFbrGfIzZ0K5OBakxMe\n7sMTTxSvzQSm+am6OC4bUFbfl4wME6NrjUvPns7lKu23+ttvZgiza/PQLbeYqi9Xn3xiJpJz7Fjb\nrl3p49/nzoW5c1lRSu1KCbWyl7I6n5Wa5FiWdSmwW0QKi16XSkR+8HpkStUBxbUUjkxtBJSfBFXV\n/bdtS+DIka6YWR+K752Y+A+v3bss69al8NprH5KZmUazZlk0bHiA/PwnAVtv18YUFDxM06b3k539\nEo59cubNu5+oqIrdz9PasnNZNqB7d7jppipeNuDHH80KnK7zrtx6q2kKcrVzJ3z8cXHzUPv2Zmns\nSy4peS6YhbHuu8/9MaXqobJqcr4HWmFmIP4eM8uxuzRdgPNthRClAFsthfvaCCg/Caqq+4s0xSz9\nVjX3FjHNNbaOve+/b/rD3HabSTjGjv2e48cnARcAOfj63gcMdrlKR7p1C6RDh2dJSSkkPNyHefMq\nXsMVH5/An//8Er//bksmT7F+/SfceWcgublBHi8b4DgSyd0UKpXy/fem9sQxaTl+3KzlMGdOyfOT\nk+HXX03CctFFph9LSIh57c6YMWarRy7o1KlkM1jRfqUqqqwkJxo45vBaKeVi3rzxbNs2t8QIoXnz\nTJ+Y8pKgqrp/164tWb260Gv3/vlnM8q3b19TfuYZ02c0NtaUu3QpnhBu9uyVHD/+CCbBAWjC2bNt\n3cbSoUNQubVKpS0bYGtG+v77Jpw8+QzFv4P5cezYMNau/Y7Jk/tx3XUVXDagsBBO57kfbrxtG7z+\nesnmoWHDitd1cA3e1xcuvth5Wv7SlhS/4QazncecOjIrdY5K/XEXkQTHInDI3ZAmy7LaVUVgddFT\n99zD6d9+K7G/xAgEVW9ER0fyxRf3M3u2+9qI8pKginLXLOPu/gC7dj3JoUOzgXn2e7drN5N586aV\nuG5enplbzbZS9vr1sGMHzCrqhZeSYpp5bEnOww87N9U4to64r736K35+93Pq1EvAcWAZF1zwO+np\nUWzYkAxElNp0dOyYyQ1ca18GDjR/zpr1Pjt2uHba8aVlyy+YMrmPyc4KCkyG4+qbb+DZZ51rWtLT\n4S9/KZ4t0FFAgOkN7bhis+1Pd3r3rple0V6mtSuqrvJ0CHkB0FpEjrrsDwGOiki1NlfV1iHkOvRR\nuWNLTIqTEM9HVzkmNc2aZbFrVyGJif/Ak3ll4uMTeOih59my5Rdycgpo0qQFV14ZzvPPTwEi+e47\nGD3anLtmjWlVWbrUlFNTTcda2yKUFeF+yPgZLrxwM6dPNyM5uQmFhZ0xzWmCr+9xLr00gA4dLnA7\n+26rVkW1RI5zsPj42JtwHO93JVtYwHRCOUZ44yQC8vPMHCyjR7sf9ZOQYPq1OCYswcF1ZJ0Cpape\nXfjlvawh5IhIuRtmzGcLN/sjMYtnenQdb20m7Npn7jXXiJjuCk7b3GuuqenQVB30++9/SIcODwtk\nF/1TeszhtW3LljvuiCnx3lOnRPbtc7xGjv38Dh0elq++SpIlSyoXV06OyG+/iXz1lcjbb4ssWCDy\nwAMiw4aJ9O4t0rr1WYGzAoVF9zwrgYFb5aGH0qV371UCp6QBedKCw9KFH+Vq1srcQXe7v9nXX4t0\n6CDSvLlIgwYiISEiF10kMnWq2+cUylG5kvVyXdvx8seOnSJnz1buQyqlRKRufK8V5QRu84UyW6ct\ny3rRlgsB8y3LynU43AC4HNh9DgmYUqoUJUdmld6R+MQJU1Exe7bZm5ICjz0G/v4rOXjwbuA5wB/I\n4uDBu1m2bFmJvjDulg1wN3z61CmXpqOW+UQFZXNlm0wiGh8nwicVq8ExZn2T6FJ71Zwpl37Cf7gT\nf3JJI5jjhHKCEBJ/LaVmtnt3s/ZQSIhZSMnNcCb3TYYxRNaiCRGVUjWjvC54Fxf9aQGdAYfpuMgD\nfgCerYK46rSngNMO5T927yamf/9KV+/VhepC5X0l+7Z0pLSOxH5+xf1pwIwk/ve/oXfvdJznpzkF\n/Iuvv+7BQw+5WzZAiAg7S0TwKSICs4nwT6dPo2NEdD5LxNODSi4bsGOHGQHkOO9KaCj07Om2Q/HJ\niyKI3PVfMgmnuKNwDnf0e5ax7h5CQIDZyhEdHVnlw+KVUnVPmUmOiAwAsCxrBfCgiGRVS1R13Glc\nZgLNzIRNm9x23PPoer/95r6vTyWvp2qnvDzTFcSyTH1wQsKtOCc1w4A5FCcsObRvP5eHHnqQ/fvN\nnG5LlzonLrt+eJAGtKGQBviTTSBZBHEJwUd2ExFhplSxDZ0OD4cLfv8ZBg0C3xBoHApNQ6B5KLT/\nE3QfVDLoyy6DM2c8ngQu5h9/5Zsdz5HppY7YSilVFk9nPJ4BBAJOSY5lWW2AsyJyxNuB1UW2EQh/\n7N5tEhulyvDhh2ZyOdvM9hdeaCpGwsJMzvDggxEsXPgShw49CPgBDWje9M+0abyL7NwgcgqCSU6Y\nz5/75hHRNIU2/xNub0KyLRuQ+/u7PPbrRvJpSLpD81CDiO088sidJYPq0sW0T3mqgjPcljcaTSml\nvMnTJOdt4D1Mvbej64FRgJtf8c4/tqajmP79wZMp0KtZXWn2qu0LTnoqPd1M6W+bMO+ee2DMmGSW\nLVtGQkIjUlNvIDWhJU3/+ztJyRaDghox4bLGJGc1Jfl0CBmFLQgNfYTQ0FQsK4vg4Gxuvf4Sun31\nFhEt84kIFyLa+uAf3txUwwwdWiKG99/P57pfV1NiEcw+NdfKrE1LStUddX36AE+TnMsAN3OK8zXw\njPfCUVWpLjR7VfVaT1Xpo4/g4k5n8Ht/BcmJBdy/7iauDtxLwzM5JJ8KZk/rAaxY0Zj8/DmY/iiF\nzJy9nyFhZ4lqmU/Pdif5f30gIsqXNp2O0OKWPjRo0BBo63Kn6R7H5O15epRS55fa9AtwZXia5DSk\nePpSRxdQvBiNUuesqtd6KlV+vvupcAsK4O9/R44d55eECzhxrJBTGXkknwzk9Uuep2mAha+v6f9y\n4ADk5DQirPEYIoJyaNsmj7zW3Qhr68PF0Y048uX77Ns3guIOtz7knG6DddX7PFlFn02bh5RS5zNP\nk5zvgMlFm6P7gB1ejage8Hb1Xl2vLqwIr6z1lJdnJoxr1apknxERmDABjh61z3CbfzyDI9lNSN58\nkOQjDe2ddrdtg8zMBuQkzSA5K4C8gga0aH6WP3XMJ6JtA7qFQPsO0KGD47IBFg0bNgOalQjr9XW/\nY4Zxn8NnqwRtHlJKna88TXJmARsty7oE2Fi0byDQE/hzVQRWl3m7eq+uVxdWhOtaT405TQiH6O13\ntPTalmHD4NCh4sUPT50yQ5n37yfbCnCZ78UiOfnvJJ8MJP5EIKkZjUnPbUBIC2g4yiIgAPr3NwnL\nFVdA27YwYEAwERFm4lzLakxlKy+reh0rpZRSzjxKckRkm2VZfYC/AbcV7d4F3Csie6oqOFXP5OY6\nrxF01VUlFkGcN288//vvLrQ9JYSQRiPySG/QiKADbcyItaI1ggoKTGVMcjIkd59DcodmJGc3Izmj\nCcnHfE0y0wbOni2uZWnY0Gw33nwR/SPMYs8NGph1mHx9zeUbN3a/LqM3aP8YpZSqXh6tXVXdLMsa\njZkQpB2QCowXkW8cjkttjLu289roKhGzBLWt5sSWtAwebKo7XPXtC7t2mfeFhhZPHPfOO6ZJycX+\nVV/yxMvb+PVoGA2ahnDV1QM5dSrIaf6Xw4fNBLi29Y0iIqBpU7Ok0bXXmvKOHbBhA7z9dtF195sw\n+/Tx/KN627msY6WUUqqkstauqnCSY1lWK6CR4z4RSax8eCWufx2wBBgpIjssy2pddI9Uh3M0yfGA\nx0Oxs7LMUs+2ZMX25x13mElbXPXoYXrZuq7E/OyzZiizq8OHISCAwgv8OX7CqviyAUVb69Ymh+rS\nxbz+9Vd44w1YuNDcZvdu+OIL+NvfTDk/39TUVHAqF6WUUnXIOSc5lmU1A14ERuKS4ACIF1chtyzr\nG2CZiKwo45xan+TU6FwvCQmkfL+TuVPe4uzhGwghmxAO8592mbwRN6tkHAMGmNWYHaflDwkx2UKb\nNiWvn5cHjZz/GZw+bdZLck1YSi4b4D6BcdxsywacOAGffgrjx5t77NkD06aZ2hkw89Ds329m7S1N\nfZlzRymllHveSHKWAv+DmaDj38AEIAJ4EHhYRD7yUqA+mMV15gB/xfTw/AR4RETOOJxXq5Mcd3O9\ndOhwDnO97N0Lf/zhXMty/LjpTNKlS8nz77iDA+s28euJbpwgzD7L7RuMoP8d71VopI2IuWVpiYtt\nO3nS1K44Jiu2ZiTbFh7u3N+loAB++w06dzblY8dg9OjiJCYtDV55pXjRyYry+t+DUkqpWscbSU4S\nMEZEvrYsKwu4VEQOWJY1BpggItd5KdDWQDLwPfD/gHxgNfCViMx2OK9WJzljx8byzjuPUGKW2TuK\n5nrZsgV+/rlk89Bjj5khPa4eecS0zTj2ZwkNhZtvNpmFGwMGzCUuLtbt/o0bzf68PFP7UlrikpRk\njvv5lUxYXLfQUNMfpiz5+TBnDjz5pKmpOXUK+vUzfWd8fMwq2D/9BJdc4uGDLke5fw9uaM2PUkrV\nLWUlOZ4OIW8OJBS9zgRCgAPAt8Cyc46w2KmiP18UkaMAlmX9H2YIu9Pv8zExMfbX/fv3p3///l4M\no4L+8x/YudOerExZ+y1TWMts5vEltvzPYT6UrVtNFUZIiOnz0qWLeR0dbb+k85dtAPNefNnjL1vT\nv9cfyMV5Xpaz/PrrHfTsaZKYjAzT79c1YenZ07ns7zq1Sxk2bzYde319TRwXXWSSmGbNzMim0FAz\n4qlRI5M87dxZ/F4fn7ITnIomIBWdc6cuz7aslFLni7i4OOLi4jw619Mk5yDQHkgEfgZGW5a1HTOc\nPK0SMbolIhlFtUZOu92d65jknMMN3fdK/fe/zbe1a/PQ00/DiBElz09NhexskxFccglbEvP516a/\n8jOXOpzkMB/Ko4+WGVZZX7Zt2kSSmlp+81GDBn/D1/cYZ882BhoAeYSGrmHu3H706mVCbdHCdMyt\niMKi/MBWa/P3v8PUqcWDpF57zSQ2LVuaR7t5s/OAq2nTKnY/T55JaQlIReelqbHZlpVSSnnMtWIj\nNrZkq4WNp0nOSuASIA54ClgDTAF8MP1yvGkFcL9lWeswzVUPAZ+W+67cXPOnu2qHd96BNWtKNg89\n95xZNdFVw4YQGQm9ejk3D5XSNMRddzkVh10zgEXXvUTmQVvTU/nzoYiYQU7JyXD//Zs5ePBJiied\na8LBgwvo0iWXggKTnLj2e7n4Yufal6ZNfYiPP83s2U+4DFd2M1qqDBs2QLduJmkBM1HetGmpfPTR\nEpKTCyks7MyoUVfSqpVZX+m995zf72aEeKVUJgGp6Lw0XpltWSmlVK3h6WSAzzm83mhZ1p8wi3bu\nF5EfvRzTPCAU+A3TfPVP4B8lzrr2WuekBeCFF9wnLZGRZg4X19FDTZu6j+CWW87pAziuF3TwYDqp\nqck0a9aDyZPXM3ToEPLzw9wOn7Ysk6AcOXIlJWfVbcClly5m06ZH3E76W1oc7hIAx2afli0bMWfO\nOLp0aQfAvHkwcCBceaU5d9s2k1TZkpwlSxL4f//PuUZlxIiqb9KpTAJS0XWbdEZipZSqX0rteGxZ\nVgHQWkSOWpb1OvCgiJys1uhKYVmWyPr1zrUsFek44kXZ2aXP9/L772fYt+80BQWBmEUZC/D3/5lb\nb42kc+eAEiORbM06lekw66l33z3M9OnvkJT0v0XXP0vLlu/z7bdXEx0dyc6dJhZbUuOqKmMrS3Xc\nV0djKaVU3VOp0VWWZWUDl4jI70UJTysROVaFcXqsOkZXOS0bUMbmuGyAaxPS0qXLWLfudpw7/5b/\nxXwuX7ai+fQqAAAgAElEQVTp6XDmTHEz0SuvmGHbd99tyldf/QFffz0Y8KtQTDaejNqqCtWVgOiM\nxEopVbdUdnTVVmCVZVk7MdUQL1qWdcrdiSIy4dzDrD65ueUnL7ZlA1yHTl99tXO5efPSZ9R9+eVD\nVGbV6Yo0s2zdalrrBg825ffeM4nXg0U9pW65xXnevgYN9mHmdKxYTDY11aRT0aanc7mPdjJWSqn6\noawkZxzwCNARM8IpBDhTxvk1rrDQdNEpbc6XspYNiIoy/VAclxBoXLnFpu3OJSGwfdkeP24SLtvo\n8o8+MiOWXnzRlBs1co7z3nudr9O2rfdigppdZFITEKWUUhXh6WSA8cBlInKi6kMqn2VZ8swzUqFl\nAxxrZIKDq2c9I0+bWAoLi4dk//QTrF9fPNQ6Lg42boTHHzflkydNU1rz5lUbU3nX0CYdpZRStYFX\nF+h0uKiviJw9p8gqybIseeghKZHIuC4bUBu4JgR/+9tdHD7cjuuvN8d37DCrM2zebMopKWahyZtu\nqr6YNElRSilVV3ljWYcHgGQR+VdReTnwF8wkgbeIyK9ejNeTeGr1sg6ZmWaGXzBNTbNmwfLlppyc\nDM88A88/b8r5+WaOHF/fmolVKaWUqsvKSnI87S36AHCs6GJXY3qu3g7sBhZ6I8i6Ki8PFi8uLqen\nm6UJbDlYcDCMdOjnGxFRnOCAmXewtiU48fEJjB0by4ABcxk7Npb4+ITy36SUUkrVMp7OeBwBxBe9\nHgx8KCIfWJb1I/B1lURWi+zfDx06FC8iefXVpp9Mo0YmSfnvf00/mQYNICjILBhu6/PTqBH2pqm6\nQNdvUkopVV94WpOTBdjWA7gO2FD0+ixQy3rBnLtnnjFNTjbjxkFa0QpdPj5mYmVbR2Fb2XENqOro\n1FxVSl8+YWUNRqWUUkpVnKdJznpgqWVZyzBDytcW7e9KcQ1PnbF3r1knyubGG2HfvuJykyZmrhmb\nbdvMpMo2vXrh8dIKlVGTzUW6fpNSSqn6wtOv6vuAJ4F2wHARsa08finwXqnvqkGOw7JfeMEsddWt\nmykvWgSTJkH37qa8bJnzMgauc81Up5puLtL1m5RSStUXlR5CXpNcR1ft3Gk6+NomzBs/3gzBtnX4\nXbsWunaFdu2qP9aKqu61oRwX64yI8OGee/7MhAkf6/pNSiml6oRKLetgWVawrcbGsqzgsm7gULNT\nbT75BIYMMa+3bYOLLipOcl55xXm9zhtvrO7oKq86m4tKqzV6/fVbWbKkapdPUEoppapaWc1VxyzL\nai0iR4HjmKUdXFlF+xu4OValbE1PAPfd53ysiWuOUIdUZ3NRaZ2Mlyyp2hXFlVJKqepQVpIzEEhz\neF2r2rU6dKjpCKpGda4NpZ2MlVJK1WelJjkissnhdVy1RKOqbbVt0E7GSiml6jdPl3UoAGxNV477\nQ4CjIlKtzVW1fVmHusIbi3UqpZRSNckba1cVAq3cJDnhwEER8fNKpB7SJMd7dLFOpZRSdVmlkxzL\nsqYVvXwGiAWyHQ43AK4C2opITy/F6hFNcpRSSikF55bk2GYzjgSSgAKHw3nAH8AcEfnOO6F6RpMc\npZRSSoF3mqu+Am4TkXRvB1cZmuQopZRSCryQ5FQ3y7IuBPZiVju/081xTXKUqiFRUVEkJFTfempK\nKQUQGRnJH3/8UWK/V5Icy7I6AcMx61c1cjwmIhMqGmw591qHWd08QZMcpWqXov9QajoMpdR5prT/\neyq1rIPLBW4G/gXsAnoBO4AOQGPg68oGXMq9RgPpwH8xK54rpZRSSlWYp7O+PQ7Eikgf4AwwDogC\nvgTivBWMZVmBmFFc0zBLRiillFJKVYqnSc5FwD+LXp8F/EXkNCb5merFeB4HlopIihevqZRSSqnz\nkEfNVcBJTB8ZgFRMM9JPRe8P8kYglmX1AP4M9PDk/JiYGPvr/v37079/f2+EoZSqp7Zs2cLEiRP5\n+eefazqUKrVp0ybGjh3LoUOHyj03NjaWAwcO8NZbb1VDZKXz8fHhwIEDtG/fnrvuuou2bdvy+OOP\nl/u+hIQEoqOjyc/Px8dHl6M5X8TFxREXF+fRuZ4mOd8B/TD9ZD4DFlqW1R24Ffi2EjG6cw1mPp5E\ny7IsoCnQwLKsLiJymevJjkmOUkrZREdHs3z5cgYOHOi0v1+/fvU+wbEx/4V6/9yqci4xePreiiR/\nqnZzrdiIjY0t9VxPk5xpmKQDIAYIAIYBvxUd84bFwHsO5b9hkp7/9dL1lVKq2hUUFNCgQbUu71fn\nVMdoPRGpFQmdql4e1e+JyO8isrfoda6ITBaRS0RkuIgkeiMQETktIkdtG2YJidMikuaN6yulzm+b\nNm2ibdu29nJ0dDQLFy6ke/fuBAUFMWbMGPLy8uzH16xZQ8+ePQkKCqJfv378+OOP9mMLFiygY8eO\nBAYG0q1bN1atWmU/9sYbb9CvXz+mTZtGaGio298yY2NjGTlyJOPGjSMwMJDu3buzf/9+nnrqKVq2\nbElUVBRffvml/fzU1FSGDBlCSEgInTp1YtmyZfZjp0+fZvz48QQHB9OtWzd27NjhdK/U1FSGDx9O\nWFgYHTp04KWXXvL4mS1dupQLL7yQ0NBQhg4dSmpqqv2Yj48PixcvplOnTgQHBzNlypRSr7Njxw76\n9u1LUFAQERER3H///eTn53sch01hYSGPPPIILVq0oGPHjnz22WdOx1euXEmXLl0IDAykY8eOLFmy\nBIDc3FxuuukmUlJSCAgIIDAwkMOHD3stLlWLiUi5G9ACaOFQvhh4Ahjjyfu9vZmwlVI1obb//EVF\nRcmGDRtK7I+Li5O2bds6nXfFFVfI4cOHJT09XTp37iyLFy8WEZEffvhBwsLCZMeOHVJYWChvvvmm\nREVFSV5enoiIfPTRR3L48GEREfnggw+kSZMm9vLKlSulYcOG8sorr0hBQYGcPn26RCwxMTHi5+cn\nX3zxhRQUFMidd94pkZGR8o9//EPy8/Nl6dKlEh0dbT//qquukilTpkheXp7s3r1bWrRoIV999ZWI\niEyfPl2uvvpqycjIkKSkJOnWrZv9cxYWFkqvXr3kiSeekPz8fImPj5cOHTrI+vXr7XGMGzfO7XPc\nsGGDhIaGyu7duyUvL0/uv/9+ufrqq+3HLcuSwYMHS1ZWliQmJkqLFi1k3bp1bq+1c+dO+e6776Sw\nsFASEhKkS5cu8sILLzhd6+DBgyIiMn78eJk9e7bb67z22mvSuXNnSU5OlvT0dBkwYID4+PhIQUGB\niIh8/vnnEh8fLyIimzdvFn9/f9m1a5eIlPz79yQuVbuU9n9P0X73+UJpB8Q5qfgKmFD0OhQzj80+\nIBN42JNreHOr7f/JKlWf1fafv4okOe+++669/Oijj8rkyZNFRGTy5MkyZ84cp/dfdNFFsnnzZrf3\n7NGjh6xevVpETJITGRlZZowxMTEyaNAge/nTTz+VgIAAKSwsFBGRkydPio+Pj2RmZkpiYqI0bNhQ\ncnJy7OfPmDFD7rrrLhERad++vT1pERFZsmSJ/XNu27atRCzz58+XCRMm2OMoLcm5++67Zfr06fZy\ndna2+Pr6SkJCgoiYxGTr1q324yNHjpQFCxaU+bltnn/+ebntttvsZU+TnIEDB9oTURGR9evXOyU5\nroYOHSovvviiiLhPcsqLS9UulUlyPO2Ofgmwrej1cOCAiHQF7gQmVb4eSSlVL8XEgGWV3EobMOB6\nfjUNLGjZsqX9tb+/P9nZ2YAZtbNw4UKCg4MJDg4mKCiIpKQkUlLM7BZvvvmmvSkrKCiIffv2cfz4\ncfu1HJvFPLm3n58foaGh9j4jfn5+iAjZ2dmkpqYSHByMv7+//fzIyEiSk5MBSElJoU2bNk7HbBIT\nE0lOTnb6HPPnz+fo0aPlxpeSkuJ0rSZNmhASEmK/r+tncHx+rvbv38/gwYNp3bo1zZs3Z9asWU7P\ny1MpKSlOz9YxPoC1a9fSp08fQkJCCAoKYu3atWXex1txqdrL0yTHD9NHBsww79VFr38Ayv9pVkqd\nX2JiwFQVO29lJTmenFdN2rZty6xZs0hLSyMtLY309HSys7MZNWoUiYmJ3HPPPbz66qukp6eTnp5O\n165dnTrPerODa3h4OGlpaeTk5Nj3JSYmEhERAUDr1q2dRgw5rivWtm1b2rdv7/Q5MjMz+fTTTz26\nr+O1cnJyOHHihFNC5anJkyfTuXNnDh48SEZGBk8++WSlOhuX9Vnz8vIYPnw4jz76KMeOHSM9PZ0b\nb7zRfh93fyfeikvVXp4mOfuB2yzLagsMAtYX7W8JZFRFYEopVVl5eXmcOXPGvhUUFFTo/RMnTmTR\nokVs374dMF/wn3/+OTk5OeTk5ODj40NoaCiFhYWsWLGCn376qSo+BgBt2rShb9++zJgxgzNnzrB3\n716WL1/OuHHjABg5ciTz588nIyODpKQkXn75Zft7L7/8cgICAnj66ac5ffo0BQUF7Nu3j++//77c\n+44ZM4YVK1awd+9ezpw5w8yZM+ndu7dHtVSuTp48SWBgIP7+/vzyyy+89tprFb4GmM/64osvkpyc\nTHp6OgsWLLAfy8vLIy8vj9DQUHx8fFi7di3r16+3H2/ZsiUnTpwgKyvL63Gp2svTJCcWWAD8AWwT\nke+K9l+PWc9KKaVqjZtvvhl/f3/8/Pzw9/d3O8KprNqWXr16sXTpUqZMmUJwcDCdOnXijTfeAKBz\n5848/PDD9O7dm1atWrFv3z769evn9c/gGN97771HfHw84eHhDBs2jHnz5jFgwAAA5s6dS7t27YiO\njuaGG27gzjuL1zT28fFhzZo17N69m+joaMLCwpg4caLTF31prr32WubNm8dtt91GREQE8fHxvP/+\n+27jc1d29Oyzz/LOO+8QGBjIpEmTGD16tMfvdTRx4kSuv/56unfvzmWXXcawYcPsx5o2bcqLL77I\niBEjCA4O5v3332fIkCH24xdddBFjxoyhffv2BAcHc/jw4XLjUnVfRVYhbwmEA3tEpLBo3xVApoj8\nUnUhuo1FtEpRqZqhq5ArpWpCZVYh9zjJqU00yVGq5miSo5SqCZVJcnSxD6WUUkrVS5rkKKWUUqpe\n0iRHKaWUUvWSJjlKKaWUqpc8TnIsy2ppWdYjlmW9ZllWaNG+Ky3Liq668JRSSimlKsejJMeyrF7A\nr8AdwN1AYNGh64AnqyY0pZRSSqnK87Qm51ngBRHpCZxx2L8OuNLrUSmllFJKnSNPk5xewBtu9qdi\nlnZQSqlabcuWLXTu3Lmmw6hymzZt8njphdjYWPvyEHXd5MmTefJJzxoWBgwYwOuvv+7RuRV5nqr2\n8TTJOQUEudn/J6D85WyVUqqaREdHs3HjxhL7+/Xrx88//1wDEVW/iiwQ6s3FRKvLG2+8wVVXXeW0\n77XXXmPWrFlVcj9Pn5G7uFTN8jTJ+QSYa1lW46KyWJYVhVnP6l9VEJdSStULFV0cVJWtoKAAEamV\nyVltjet85mmS8wgQDBwD/IEtwAHMCuSPVU1oSinlPa7NDtHR0SxcuJDu3bsTFBTEmDFjyMvLsx9f\ns2YNPXv2JCgoiH79+vHjjz/ajy1YsICOHTsSGBhIt27dWLVqlf3YG2+8Qb9+/Zg2bRqhoaFuFweN\njY1l5MiRjBs3jsDAQLp3787+/ft56qmnaNmyJVFRUXz55Zf281NTUxkyZAghISF06tSJZcuW2Y+d\nPn2a8ePHExwcTLdu3dixY4fTvVJTUxk+fDhhYWF06NCBl156yeNntnTpUi688EJCQ0MZOnQoqamp\n9mM+Pj4sXryYTp06ERwczJQpU0q9TmxsLCNGjGD06NEEBgZy2WWXsXfv3ko9z9GjRzN58mS+/fZb\nAgICCA4OBuCuu+5izpw5AGRkZDB48GDCwsIICQlh8ODBJCcne/SZy3uepcX6yy+/uI3r888/59JL\nL6VZs2ZERka6/fegqo5HSY6IZIlIP2AoMB14AbhBRK4RkZyqDFAppbzF9bfsDz/8kPXr1xMfH8+e\nPXtYuXIlALt27eLuu+9m6dKlpKWlMWnSJG655RbOnj0LQMeOHfnmm2/Iyspi7ty5jB07liNHjtiv\n+91339GxY0eOHj1aahPKmjVr+Mtf/kJGRgY9evTguuuuQ0RISUnhscce45577rGfO2rUKNq1a8fh\nw4f58MMPmTlzJnFxcQDExMQQHx9PfHw869ats6+WDqZmYfDgwfTs2ZPU1FQ2bNjACy+8wBdffFHu\ns9q4cSMzZ87ko48+IjU1lXbt2pVYpfuzzz5j586d7Nmzhw8++ID169eXer3Vq1czatQo0tPTGTNm\nDEOHDrXXclXkeb799tssWrSIPn36cPLkSdLS0krcq7CwkAkTJnDo0CESExPx9/cvMwlzVNbzLCvW\nP/3pT27jatq0KW+99RaZmZl89tlnLFq0iNWrV3sUi/ICEXG7AQVAWNHr14GA0s6t7s2ErZSqCbX9\n5y8qKko2bNhQYn9cXJy0bdvW6bx3333XXn700Udl8uTJIiIyefJkmTNnjtP7L7roItm8ebPbe/bo\n0UNWr14tIiIrV66UyMjIMmOMiYmRQYMG2cuffvqpBAQESGFhoYiInDx5Unx8fCQzM1MSExOlYcOG\nkpOTYz9/xowZctddd4mISPv27WX9+vX2Y0uWLLF/zm3btpWIZf78+TJhwgR7HOPGjXMb49133y3T\np0+3l7Ozs8XX11cSEhJERMSyLNm6dav9+MiRI2XBggWlft4+ffrYy4WFhdK6dWvZsmWL2/PLe54r\nV66Uq666ymnf+PHjZfbs2W6vt2vXLgkODraX+/fvL8uXL3d7blnP05NYXeNyNXXqVJk2bVqZ5yj3\nSvu/p2i/23yhrJqcU0DTotd/AS6oojxLKVXPxMSYrbLl6tKyZfHgUH9/f7KzswFISEhg4cKFBAcH\nExwcTFBQEElJSaSkpADw5ptv2puygoKC2LdvH8ePH7dfy5PROI739vPzIzQ01F7T5Ofnh4iQnZ1N\namoqwcHB+Pv728+PjIy0N7+kpKTQpk0bp2M2iYmJJCcnO32O+fPnc/Ro+eNFUlJSnK7VpEkTQkJC\nnJp9Snt+7jg+E8uyaNOmjVefp6NTp04xadIkoqKiaN68Oddccw0ZGRluV7B2Vdbz9CRWV9u3b2fg\nwIGEhYXRvHlzFi9eXOb5yrsalnFsK7DKsqydgAW8aFnWKXcnisgEbwRjWVYj4FXgz5jRXAeBmSLy\n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\n4AB79+7lwIEDJCcn8/jjjwPwn//8h+eff56NGzdy4MAB4uLiyv3Ns7TjTZs25a233iIzM5PPPvuM\nRYsWsXr1aqdzNm/ezC+//MK6deucrtW7d29OnjxJVlYWaWlpXHHFFdx+++0AvPjii6xevZqvv/6a\nlJQUgoKCuPfeewH473//y7333ss777xDSkoKJ06c8PjLy91n+fDDD1m/fj3x8fHs2bOHlStXArBr\n1y7uvvtuli5dSlpaGpMmTeKWW27h7NmzAHTs2JFvvvmGrKws5s6dy9ixYzly5Ij9ut999x0dO3bk\n6NGjpTahrFmzhr/85S9kZGTQo0cPrrvuOkSElJQUHnvsMe655x77uaNGjaJdu3YcPnyYDz/8kJkz\nZ9qn/Y+JiSE+Pp74+HjWrVtnX00eTMI4ePBgevbsSWpqKhs2bOCFF17giy++KPdZbdy4kZkzZ/LR\nRx+RmppKu3btGD16tNM5n332GTt37mTPnj188MEHrF+/vtTrrV69mlGjRpGens6YMWMYOnQoBQUF\nFX6eb7/9NosWLaJPnz6cPHmStLS0EvcqLCxkwoQJHDp0iMTERPz9/ctMwhyV9TzLivVPf/qT27g8\n+Tk5JyJS5zYTtlKqJtT2n7+oqCgJCAiQgIAAsSxLhg4dKgUFBfbjTZo0kd9//91e3rp1q0RHR4uI\nyIQJE2TmzJn2YwcOHBDLsuTgwYMiItK/f39Zvny5/fjKlSvlqquuspcdz3U1depUmTZtmoiI/PHH\nH+Lj4yN//PGH/bhtn2OsIiL/+7//K4MHD7aXO3fuLBs3brSXU1JSxNfXVwoKCuTxxx+XMWPG2I/l\n5ORIo0aNZMOGDW5jGj9+vMyePVtEROLi4qRt27b2Y1FRUfLuu+/ay48++qhMnjxZREQmT54sc+bM\ncbrWRRddJJs3b3Z7nx49esjq1atFxDyzyMhIt+fZxMTEyKBBg+zlTz/9VAICAqSwsFBERE6ePCk+\nPj6SmZkpiYmJ0rBhQ8nJybGfP2PGDLnrrrtERKR9+/ayfv16+7ElS5bYP+e2bdtKxDJ//nyZMGGC\nPY5x48a5jfHuu++W6dOn28vZ2dni6+srCQkJImL+LWzdutV+fOTIkbJgwYJSP2+fPn3s5cLCQmnd\nurVs2bLF7fnlPU/Xf5cizn/Xrnbt2iXBwcH2suu/c0dlPU9PYnWNy5Xjz4mr0v7vKdrvNl/Qmhyl\nlNdZ1rlv5+KTTz4hKyuLuLg4vvrqK3bu3AnAsWPHyM3NpVevXgQHBxMcHMyNN97IiRMnAEhJSXFq\nsop+UpwAABDzSURBVDmXUSPfffcdAwcOJCwsjObNm7N48WKOHz/udE6bNm3KvMbixYvZvHkz7777\nrn1fQkICt956qz3+Ll264Ovry5EjR0rE7+/vT0hISKU/Q8uWLZ2ulZ2dbY9h4cKF9hiCgoJISkoi\nJSUFgDfffNPelBUUFMS+ffucPrsnz9Xx3n5+foSGhtprmvz8/BARsrOzSU1NJTg4GH9/f/v5kZGR\n9hqslJQUp+ccGRlpf52YmEhycrLT55g/fz5Hjx4tN76UlBSnazVp0oSQkBCnmrPSnp87js/Esiza\ntGnj1efp6NSpU0yaNImoqCiaN2/ONddcQ0ZGhkd9ysp6np7E6mr79u3l/pycC01ylFJeJ3Lu27nd\n31zg6quvZsqUKTz66KMAhIaG4u/vz759+0hLSyMtLY2MjAwyMzMBaN26NUlJSfbrJCYmOl23SZMm\n5Obm2suHDx8uNYY77riDoUOHkpycTEZGBpMmTSrxJVJWU9jXX3/N3LlzWb16NU2bNrXvb9euHWvX\nrrXHn56eTk5ODq1bt6Z169YcOnTIfm5ubq49gfOmtm3bMmvWLKcYsrOzGTVqFImJidxzzz28+uqr\npKenk56eTteuXZ0+uzc7n4aHh5OWlkZOTo59X2JiIhEREQAlnklCQoLT52jfvr3T58jMzOTTTz/1\n6L6O18rJyeHEiRPlJq6lcYxRREhKSiI8PLxSz7O85/vss8+yf/9+duzYQUZGBps3b7bftzzh4eGl\nPs/yYnUX1+23317uz8m50CRHKVWvTZ06le3bt7N9+3Ysy2LixIlMnTqVY8eOAZCcnGzvKzFy5EhW\nrFjBL7/8Qm5uLk888YTTf8w9evTg3//+N6dOneLAgQMsX7681PtmZ2cTFBSEr68v27dvd6qNAfdf\nKLZ9hw4dYtSoUbz55pt06NDB6ZxJkyYxc+ZMewJ27Ngxex+G4cOHs2bNGrZu3crZs2eZM2dOlawz\nNnHiRBYtWsT27dsB8wX/+eefk5OTQ05ODj4+PoSGhlJYWMiKFSv46aefvB6DTZs2bejbty8zZszg\nzJkz7N27l+XLl9vntxk5ciTz588nIyODpKQkXn75Zft7L7/8cgICAnj66ac5ffo0BQUF7Nu3j++/\n/77c+44ZM4YVK1awd+9ezpw5w8yZM+ndu3ela/927tzJqlWrKCgo4LnnnuOCCy6gd+/elXqeLVu2\nJCkpyd5HylV2djZ+fn4EBgaSlpZGTEyMx3GOGDGi1OdZXqzu4irv5+RcaZKjlKpXXH9bDA0NZfz4\n8Tz11FMA9pFJvXv3pnnz5gwaNIjffvsNgBtuuIEHHniAAQMG0KlTJ/r06QNA48aNAXjooYfw9fWl\nVatW3HXXXYwdO7bUe7/66qvMnj2bZs2a8cQTTzBq1Kgy43Tct3HjRo4ePcrw4cMJDAwkICCAiy++\nGIAHH3yQIUOGMGjQIJo1a0bfvn3tyUaXLl145ZVXGDNmDOHh4YSEhFS6ZqGs2oBevXqxdOlSpkyZ\nQnBwMJ06dbJ3QO3cuTMPP/wwvXv3plWrVuzbt49+/fpVKgZP43vvvfeIj48nPDycYcOGMW/ePAYM\nGADA3LlzadeuHdHR0dxwww3ceeed9vf5+PiwZs0adu/eTXR0NGFhYUycOJGsrKxy73/ttdcyb948\nbrvtNiIiIoiPj+f99993G5+7sqshQ4bwz3/+k6CgIN555x0+/vhjGjRoUKnnOXDgQLp27UqrVq0I\nCwsrcXzq1Knk5uYSGhpK3759uemmmzyOtaznWV6s7uJ65ZVXyvw5OVfntAp5TdFVyJWqOefTKuS/\n/PILF198MWfOnMHHR38nVFUjNjaWgwcP8uabOrduWSqzCrn+1CqllINVq1aRl5dHeno606dP55Zb\nbtEER6k6Sn9ylVLKweLFiwkLC+PCCy/E19eXV199taZDUkpVkjZXKaUq5HxqrlJK1R7aXKWUUkop\nVUSTHKWUUkrVS5rkKKWUUqpe0iRHKaWUUvVSw5oOQClVt0RGRnp1Wn6llPKE6zpZnqh1o6ssywoC\nXgeuA44BM0XkPZdzdHSVUkopperc6KpXgdNAC2As8JplWZ1rNiQFEBcXV9MhnJf0udcMfe41Q597\nzaivz71WJTmWZfkDtwGPicgpEfkG+AQYV7ORKai/PwS1nT73mqHPvWboc68Z9fW516okB+gEnBWR\ngw779gBdaygepZRSStVRtS3JaQq4Lv+aBQTUQCxKKaWUqsNqVcdjy7J6AFtEpKnDvoeBq0VkiMO+\n2hO0UkoppWpUaR2Pa9sQ8t+AhpZldXBosuoO7HM8qbQPo5RSSillU6tqcgAsy3oXEGAicCnwKdBX\n5P+3d/fBVlVlHMe/P1FUSEVFgTSYIEiwRI3IwhkmUdQsR2QmwL9yTM2XxvJtmnIwbXyfCRNJmxLL\n9zRxTCu1xPENM823VBIdEVRQBJQ3wRSe/ljrynZzL/deuefue8/5fWb23Hv22nuttZ9zzj3PXXvt\nfWJupR0zMzOzbqWrzckBOAXoBSwBbgB+4ATHzMzM2qvLjeSYmZmZdYSuOJLTIkk7S7pD0mpJ8yVN\nqbpP3YGknpJ+J+k1SSskPSXpsEL5OElzc1zvlzSwtP8lkpZKekfSxaWyQZJmS1oj6UVJ40rlx+R2\nV0maJalPbY+2a5I0VNJaSdcV1jnuNSRpco7NakkvSxqT1zvuNSJpD0l/lrRM0iJJ0yVtlcsc9w4i\n6RRJT0haJ2lmqaySOOfPmZn5M2aRpB/X4tjbLSK6zQLcnJftgTHAe8DwqvvV1RfS6b+pwOfy4yNI\nl+YPBHbNcTwa6AlcCjxW2PdEYC4wIC8vACcUyucAlwHb5jreBXbNZXvndsbkPtwI3Fx1PCp6Du4F\nHgSuy4/7Ou41jfchwHzgq/lxUxz9eq9t3G8HrgW2AXYHngNOddw7PM5HAUcCM4CZhfWVxRm4iPQ3\nbkdgL2AxML7yWFXdgXY8qb2AD4AhhXV/AC6sum/dcSHdZHECaYL3I6U4vw8My48fBb5fKD8WmJN/\nHwasBXoXyh9setMAFwA3FMoG5+ewdy2OqasuwGTgFlKi2ZTkOO61jfmjwLHNrHfcaxv3l4DDCo8v\nBa5y3GsW71/wySSnsjgDbwLjCuXnATdVHaPudLrKd0PuIJL6AUNJWfzepDgCEBHvA6+wMa6fKOeT\nMR8BvBoRa1ooL9f9KulNMayjjqWrk7Qj6c1+OlC89YHjXiP59MgoYPd8mmqhpCskbYfjXmv3AMdI\n2l7SHsDheZ3j3jkqiXM+bTWANHLX3L6V6U5Jju+G3AEkbU26au33ETGPFNcVpc2KcS2Xr8zrmitr\nbd9yeSM4H/htRCwqrXfca6cf6XTJRNLQ+r6k21Gcg+Neaz8HvkQ67oXAExFxJ457Z6kqzp8h3fql\nXHflz0F3SnJWk871Fe0ErKqgL92SJJESnA+AH+bVrcW1XL5TXvdp9i2X1zWlO3gfDFzeTLHjXjtr\n888rImJJRCwHfgl8ixQDx7127gVuJc2b7AvsIukS/HrvLFXFuamOct2VPwfdKcn5+G7IhXWb3A3Z\n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\n", "text/plain": [ "" ] }, "metadata": {}, "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", "save_fig('ridge_model_plot')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nGjMzy9X/B5W3kGbLMTpsAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "[[ 5.96242338]]\n" ] } ], "source": [ "backup = oecd_bli, gdp_per_capita\n", "\n", "def prepare_country_stats(oecd_bli, gdp_per_capita):\n", " return sample_data\n", "\n", "# Code example\n", "########################################################################\n", "from sklearn import neighbors\n", "import numpy as np\n", "import pandas as pd\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 k-neighboors regression model\n", "k_neigh_reg_model = neighbors.KNeighborsRegressor(n_neighbors=3)\n", "\n", "# Train the model\n", "k_neigh_reg_model.fit(X, y)\n", "\n", "# Make a prediction for Cyprus\n", "X_new = [[22587]] # Cyprus' GDP per capita\n", "print(lin_reg_model.predict(X_new)) # outputs [[ 5.96242338]]\n", "########################################################################\n", "\n", "oecd_bli, gdp_per_capita = backup" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.5.1" }, "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": 0 }