{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Statistical and Machine Learning Models Exercises\n", "----\n", "\n", "There are multiple ways to complete these exercises. A solution will be given, but other ways can work. If you find better solutions [let me know](mailto:christina.maimone@northwestern.edu).\n", "\n", "### Note\n", "\n", "There are a few exercises here to get you started, but the best way to learn how to use these packages in Python is to take some analysis you've done in another program and try to replicate it in Python instead. There is great variety in statistical and machine learning models. Without teaching the theory behind the models too (which is out of the scope of this particular workshop), it's difficult to have exercises that are both interesting and accessible to a wide audience. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Imports\n", "\n", "Don't worry about the pandas warning that is generated." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/christina/anaconda/envs/p3/lib/python3.6/site-packages/statsmodels/compat/pandas.py:56: FutureWarning: The pandas.core.datetools module is deprecated and will be removed in a future version. Please use the pandas.tseries module instead.\n", " from pandas.core import datetools\n" ] } ], "source": [ "import numpy as np\n", "import pandas as pd\n", "from scipy import stats\n", "import statsmodels.api as sm\n", "import statsmodels.formula.api as smf\n", "import sklearn\n", "\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "\n", "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercise: Working with Distributions\n", "\n", "Make a plot of the pdf of the Beta distribution with different parameter values like the one found on Wikipedia: https://en.wikipedia.org/wiki/Beta_distribution" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from scipy.stats import beta\n", "\n", "x = np.linspace(0, 1, 100) \n", "fig, ax = plt.subplots()\n", "for idx, params in enumerate([(.5,.5),(5,1),(1,3),(2,2),(2,5)]): #idx has iteration number, params has tuple from list\n", " ax.plot(x, beta.pdf(x, params[0], params[1]), c='C'+str(idx), lw=2, \n", " label=r'$\\alpha$='+str(params[0])+r'; $\\beta$='+str(params[1]));\n", "ax.set_ylabel(\"PDF\")\n", "ax.set_ylim(0,3)\n", "ax.legend();" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercise: Difference in Means\n", "\n", "Load in data on the average daily temperature in Chicago from http://academic.udayton.edu/kissock/http/Weather/gsod95-current/ILCHICAG.txt\n", "\n", "Was the average temperature in Chicago this June significantly different from last June?" ] }, { "cell_type": "code", "execution_count": 3, "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", "
monthdayyeartemp
011199523.7
112199513.8
213199514.1
31419953.8
41519955.0
\n", "
" ], "text/plain": [ " month day year temp\n", "0 1 1 1995 23.7\n", "1 1 2 1995 13.8\n", "2 1 3 1995 14.1\n", "3 1 4 1995 3.8\n", "4 1 5 1995 5.0" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "chitemp = pd.read_csv(\"http://academic.udayton.edu/kissock/http/Weather/gsod95-current/ILCHICAG.txt\",\n", " delim_whitespace=True, names=['month','day','year','temp'])\n", "chitemp.head()" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "Ttest_indResult(statistic=0.22763453820110252, pvalue=0.82073091268508991)" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stats.ttest_ind(chitemp.loc[(chitemp['month']==6) & (chitemp['year']==2017),'temp'],\n", " chitemp.loc[(chitemp['month']==6) & (chitemp['year']==2016),'temp'])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "There is a 0.22 degree difference in average temps, which is not statistically significant." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercise: Correlation\n", "\n", "Load weather data from Chicago and Detroit (you might have done Chicago above):\n", "\n", "Chicago: http://academic.udayton.edu/kissock/http/Weather/gsod95-current/ILCHICAG.txt\n", "\n", "Detroit: http://academic.udayton.edu/kissock/http/Weather/gsod95-current/MIDETROI.txt\n", "\n", "During June 2017, were the temperatures in the two cities correlated with each other? Plot them against each other as a visual check." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": true }, "outputs": [], "source": [ "chitemp = pd.read_csv(\"http://academic.udayton.edu/kissock/http/Weather/gsod95-current/ILCHICAG.txt\",\n", " delim_whitespace=True, names=['month','day','year','temp'])\n", "dettemp = pd.read_csv(\"http://academic.udayton.edu/kissock/http/Weather/gsod95-current/MIDETROI.txt\",\n", " delim_whitespace=True, names=['month','day','year','temp'])" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(0.82470288546097925, 2.0948215560589905e-08)" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stats.pearsonr(chitemp.loc[(chitemp['month']==6) & (chitemp['year']==2017),'temp'],\n", " dettemp.loc[(dettemp['month']==6) & (dettemp['year']==2017),'temp'])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Yes, the temperatures are correlated." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "p = sns.regplot(chitemp.loc[(chitemp['month']==6) & (chitemp['year']==2017),'temp'],\n", " dettemp.loc[(dettemp['month']==6) & (dettemp['year']==2017),'temp']);\n", "p.axes.set_xlabel(\"Chicago\");\n", "p.axes.set_ylabel(\"Detroit\");" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "## Exercise: Logistic Regression\n", "\n", "Implement [UCLA's IDRE](https://idre.ucla.edu/) logistic regression example written in R in Python instead: https://stats.idre.ucla.edu/r/dae/logit-regression/. \n", "\n", "The example is also available for several different statistical programs on [this page](https://stats.idre.ucla.edu/other/dae/) if they help you understand. The example in R most closely mirrors a workflow in Python. Note that in R, the logistic regression is run with the `glm` function if you're looking for where the model is actually run.\n", "\n", "Implement the entire example with `statsmodels` (and `pandas` as appropriate). Then use Scikit-learn to run the actual regression and get predicted values, but you don't need to do extra steps like getting the summary and confidence intervals, as there are not built-in methods for that. Note that the coefficient estimates you get from Scikit-learn will not match those from `statsmodels` or in the reference example. This has to do with a regularization step that Scikit-learn's function applies to the X variables.\n", "\n", "Plot with `matplotlib`.\n", "\n", "Note that neither package provides a way to get standard errors on predicted values, so you can ignore that particular step." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### statsmodel Implementation\n", "\n", "**Solution**: The steps for the example are included below. See http://blog.yhat.com/posts/logistic-regression-python-rodeo.html for the same exercise using statsmodels with more discussion of the steps (you can ignore the part about Rodeo there)." ] }, { "cell_type": "code", "execution_count": 8, "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", "
admitgregparank
003803.613
116603.673
218004.001
316403.194
405202.934
\n", "
" ], "text/plain": [ " admit gre gpa rank\n", "0 0 380 3.61 3\n", "1 1 660 3.67 3\n", "2 1 800 4.00 1\n", "3 1 640 3.19 4\n", "4 0 520 2.93 4" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mydata = pd.read_csv(\"https://stats.idre.ucla.edu/stat/data/binary.csv\")\n", "mydata.head()" ] }, { "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
admitgregparank
count400.000000400.000000400.000000400.00000
mean0.317500587.7000003.3899002.48500
std0.466087115.5165360.3805670.94446
min0.000000220.0000002.2600001.00000
25%0.000000520.0000003.1300002.00000
50%0.000000580.0000003.3950002.00000
75%1.000000660.0000003.6700003.00000
max1.000000800.0000004.0000004.00000
\n", "
" ], "text/plain": [ " admit gre gpa rank\n", "count 400.000000 400.000000 400.000000 400.00000\n", "mean 0.317500 587.700000 3.389900 2.48500\n", "std 0.466087 115.516536 0.380567 0.94446\n", "min 0.000000 220.000000 2.260000 1.00000\n", "25% 0.000000 520.000000 3.130000 2.00000\n", "50% 0.000000 580.000000 3.395000 2.00000\n", "75% 1.000000 660.000000 3.670000 3.00000\n", "max 1.000000 800.000000 4.000000 4.00000" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mydata.describe()" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "admit 0.466087\n", "gre 115.516536\n", "gpa 0.380567\n", "rank 0.944460\n", "dtype: float64" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mydata.std()" ] }, { "cell_type": "code", "execution_count": 11, "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", "
rank1234
admit
028979355
133542812
\n", "
" ], "text/plain": [ "rank 1 2 3 4\n", "admit \n", "0 28 97 93 55\n", "1 33 54 28 12" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pd.crosstab(mydata[\"admit\"], mydata[\"rank\"])" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [], "source": [ "mydata['rank'] = mydata['rank'].astype(\"object\")" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Optimization terminated successfully.\n", " Current function value: 0.573147\n", " Iterations 6\n", " Logit Regression Results \n", "==============================================================================\n", "Dep. Variable: admit No. Observations: 400\n", "Model: Logit Df Residuals: 394\n", "Method: MLE Df Model: 5\n", "Date: Thu, 10 Aug 2017 Pseudo R-squ.: 0.08292\n", "Time: 16:22:36 Log-Likelihood: -229.26\n", "converged: True LL-Null: -249.99\n", " LLR p-value: 7.578e-08\n", "==============================================================================\n", " coef std err z P>|z| [0.025 0.975]\n", "------------------------------------------------------------------------------\n", "Intercept -3.9900 1.140 -3.500 0.000 -6.224 -1.756\n", "rank[T.2] -0.6754 0.316 -2.134 0.033 -1.296 -0.055\n", "rank[T.3] -1.3402 0.345 -3.881 0.000 -2.017 -0.663\n", "rank[T.4] -1.5515 0.418 -3.713 0.000 -2.370 -0.733\n", "gre 0.0023 0.001 2.070 0.038 0.000 0.004\n", "gpa 0.8040 0.332 2.423 0.015 0.154 1.454\n", "==============================================================================\n" ] } ], "source": [ "lg1 = smf.Logit.from_formula(\"admit ~ gre + gpa + rank\", data = mydata).fit()\n", "print(lg1.summary())" ] }, { "cell_type": "code", "execution_count": 14, "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", "
01
Intercept-6.224242-1.755716
rank[T.2]-1.295751-0.055135
rank[T.3]-2.016992-0.663416
rank[T.4]-2.370399-0.732529
gre0.0001200.004409
gpa0.1536841.454391
\n", "
" ], "text/plain": [ " 0 1\n", "Intercept -6.224242 -1.755716\n", "rank[T.2] -1.295751 -0.055135\n", "rank[T.3] -2.016992 -0.663416\n", "rank[T.4] -2.370399 -0.732529\n", "gre 0.000120 0.004409\n", "gpa 0.153684 1.454391" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "lg1.conf_int()" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "\n", "" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "R = np.eye(len(lg1.params))[1:4] ## define the 3 rank coefficients\n", "lg1.wald_test(R)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "\n", "" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "lg1.wald_test(np.array([0,1,-1,0,0,0])) # rank 2 minus rank 3" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "Intercept 0.018500\n", "rank[T.2] 0.508931\n", "rank[T.3] 0.261792\n", "rank[T.4] 0.211938\n", "gre 1.002267\n", "gpa 2.234545\n", "dtype: float64" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.exp(lg1.params)" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " 2.5% 97.5% OR\n", "Intercept 0.001981 0.172783 0.018500\n", "rank[T.2] 0.273692 0.946358 0.508931\n", "rank[T.3] 0.133055 0.515089 0.261792\n", "rank[T.4] 0.093443 0.480692 0.211938\n", "gre 1.000120 1.004418 1.002267\n", "gpa 1.166122 4.281877 2.234545\n" ] } ], "source": [ "params = lg1.params\n", "conf = lg1.conf_int()\n", "conf['OR'] = params\n", "conf.columns = ['2.5%', '97.5%', 'OR']\n", "print(np.exp(conf))" ] }, { "cell_type": "code", "execution_count": 19, "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", "
gpagrerank
03.3899587.71
13.3899587.72
23.3899587.73
33.3899587.74
\n", "
" ], "text/plain": [ " gpa gre rank\n", "0 3.3899 587.7 1\n", "1 3.3899 587.7 2\n", "2 3.3899 587.7 3\n", "3 3.3899 587.7 4" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "newdata1 = pd.DataFrame({'gre': mydata['gre'].mean(), \n", " 'gpa': mydata['gpa'].mean(), \n", " 'rank': range(1,5)})\n", "newdata1['rank'] = newdata1['rank'].astype('object')\n", "newdata1" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0 0.516602\n", "1 0.352285\n", "2 0.218612\n", "3 0.184668\n", "dtype: float64" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "lg1.predict(newdata1)" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": false }, "outputs": [], "source": [ "## do a few less points than in the UCLA example\n", "gres = np.linspace(mydata['gre'].min(), mydata['gre'].max(), 20)\n", "newdata2 = pd.DataFrame({'gpa':mydata['gpa'].mean(), \n", " 'gre':np.repeat(gres, 4), \n", " 'rank':[1,2,3,4]*len(gres)})\n", "newdata2['rank'] = newdata2['rank'].astype('object')\n", "newdata2['prediction'] = lg1.predict(newdata2)" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nt7/2xvx/4RsPsMQmlwAQQohZ/7jdW/NtJsyxcpBUCCFuJEcahRAiAkjZCyFEBJCyF0KICCBlL4QQ\nEUDKXgghIoCUvRBCRICwPPUyGAy923VwcHCRRyKEEPox25mzHXqjsCx7t9sNwIsvvrjIIxFCCP1x\nu9033UPEoJRSt3j8opmcnKSrq4sVK1ZgMskbpIQQ4s8IBoO43W4cDgcWi2XOtrAseyGEEH8vOUAr\nhBARIGzm7P1+PwcOHKCvr4+pqSmcTif33XcfpaWlGAwG1qxZwzvvvIPRaKSuro4jR45gNptxOp08\n8cQTiz38PxQMBnn77bfp6enBYDDw7rvvEh0dretMANevX+e5557j008/xWw26z7P1q1btZvtJCQk\nUFhYqOtMNTU1/PDDD/j9fnJyckhLS9N1noaGBr7++msAfD4fly5d4ssvv6SiokKXmfx+P6WlpfT1\n9WE0GikvL1+Y3yMVJurr65XL5VJKKeXxeNRjjz2mCgoKVGtrq1JKqbKyMvX999+ra9euqczMTOXz\n+dTIyIj2eThqampSpaWlSimlWltbVWFhoe4zTU1NqVdffVU9/fTTqru7W/d5Jicn1ebNm+es03Om\n1tZWVVBQoILBoPJ6vaq6ulrXef7bwYMH1ZEjR3SdqampSe3Zs0cppVRzc7PavXv3guQJm2mcZ555\nhtdeew0I3VnKZDJx8eJF0tLSANiwYQNnz56ls7OT1NRUoqKiiImJITExkcuXLy/m0G/pySefpLy8\nHID+/n5sNpvuM1VWVrJ9+3ZWrlwJoPs8ly9fZmJigry8PHJzc+no6NB1pubmZpKTkykqKqKwsJDH\nH39c13ludOHCBbq7u9m2bZuuMyUlJREMBpmensbr9WI2mxckT9hM4yxduhQI3b92z549vP7661RW\nVmrXpF+6dCmjo6N4vV5iYmLmPM/r9S7KmP8Ms9nMvn37aGpqorq6mjNnzug2U0NDA7fffjuPPvoo\nH3/8MRD6w6zXPAAWi4VXXnmFrKwsrly5Qn5+vq4zeTwe+vv7OXToEL29vTidTl3nuVFNTQ1FRUWA\nvn/ulixZQl9fH88++ywej4dDhw7R3t4+73nCpuwBBgYGKCoqYseOHWzatImqqipt29jYGDab7ab7\n246Njc35hoSjyspKSkpKyM7Oxufzaev1lunYsWMYDAZaWlq4dOkS+/bt49dff9W26y0PhPay7rnn\nHgwGA0lJScTFxXHx4kVtu94yxcXFYbfbiYqKwm63Ex0dPefNiXrLM2tkZISenh7WrVsHhG6QNEtv\nmQ4fPswjjzzCm2++ycDAAC+//DJ+v1/bPl95wmYaZ3h4mLy8PPbu3csLL7wAwAMPPEBbWxsAp0+f\nZu3ataSkpHDu3Dl8Ph+jo6P89NNPC3qP27/im2++oaamBgCr1YrBYMDhcOg20xdffMHnn39ObW0t\n999/P5WVlWzYsEG3eQDq6+t5//33ARgaGsLr9fLwww/rNtNDDz3Ejz/+iFKKoaEhJiYmWL9+vW7z\nzGpvb2f9+vXasp67wWazaaUdGxtLIBBYkDxhc569y+Xi+PHj2O12bd1bb72Fy+XC7/djt9txuVyY\nTCbq6uo4evQoSikKCgrYuHHjIo781sbHx9m/fz/Dw8MEAgHy8/NZvXo1ZWVlus00a+fOnRw8eBCj\n0ajrPFNTU+zfv5/+/n4MBgMlJSUsX75c15k++OAD2traUErxxhtvkJCQoOs8AJ988glms5ldu3YB\n0NPTo9tMY2NjHDhwALfbjd/vJzc3F4fDMe95wqbshRBCzJ+wmcYRQggxf6TshRAiAkjZCyFEBJCy\nF0KICCBlL4QQESCs3lQlxGL75ZdfqKqqYnBwEIvFgsViYe/evZw4cYLGxkbtMhG//fYbGRkZOJ1O\nGhoaqK6u5u6779a+TnJyMmVlZYsVQ4ibyKmXQsyYmJggKyuL8vJyUlNTAejs7KSqqoq0tDTi4+PJ\nyckBQufnZ2RkcPToUU6dOsXPP/9MSUnJYg5fiP9JpnGEmHHy5EnWrVunFT1ASkoKn3322U2P9Xg8\nBAIBoqOjF3KIQvzfZBpHiBm9vb0kJiZqy06nE6/Xy7Vr11i7di2NjY189913DAwMcOedd+JyubTr\n4Dc2NnL+/Hntuc8//zxbtmxZ8AxC3IqUvRAzVq1aRVdXl7b80UcfAZCdnU0wGGTXrl3k5OTQ1dVF\ncXEx9957r/bYzMxMmcYRYU2mcYSYkZ6eTktLCx0dHdq6q1evMjg4qF1+FsDhcJCfn09xcTHT09OL\nMVQh/jI5QCvEDXp7e/nwww9xu90EAgFMJhMvvfQS3d3dcw7QAuTl5ZGeno7Var3pbJxly5Zp/xkI\nEQ6k7IUQIgLINI4QQkQAKXshhIgAUvZCCBEBpOyFECICSNkLIUQEkLIXQogIIGUvhBARQMpeCCEi\nwH8A38ixNeCAyUsAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sns.set_style(\"white\")\n", "fig, ax = plt.subplots()\n", "for key, grp in newdata2.groupby(['rank']):\n", " ax.plot(grp['gre'], grp['prediction'], c='C'+str(key))\n", "lines, _ = ax.get_legend_handles_labels()\n", "ax.set_xlabel(\"GRE\")\n", "ax.set_ylabel(\"Predicted Probability\")\n", "ax.legend(lines, [1,2,3,4], loc='best', title=\"rank\");" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[1, 2, 3, 1, 2, 3, 1, 2, 3]" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "[1,2,3] * 3" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "7.5781942318150443e-08" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "lg1.llr_pvalue" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "-229.25874623794948" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "lg1.llf" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Scikit-learn Implementation\n", "\n", "With Scikit-learn, we'll have to build the X matrix ourselves." ] }, { "cell_type": "code", "execution_count": 26, "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", "
admitgregparank_1rank_2rank_3rank_4
003803.610010
116603.670010
218004.001000
316403.190001
405202.930001
\n", "
" ], "text/plain": [ " admit gre gpa rank_1 rank_2 rank_3 rank_4\n", "0 0 380 3.61 0 0 1 0\n", "1 1 660 3.67 0 0 1 0\n", "2 1 800 4.00 1 0 0 0\n", "3 1 640 3.19 0 0 0 1\n", "4 0 520 2.93 0 0 0 1" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# we've already set rank column in mydata to be categorical above\n", "X = pd.get_dummies(mydata)\n", "X.head()" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": false }, "outputs": [], "source": [ "X = X[['gre','gpa','rank_2','rank_3','rank_4']] # drop admit, rank_1" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 0.00181821 0.24353847 -0.60583827 -1.17492436 -1.37839855]]\n", "[-1.87278801]\n" ] } ], "source": [ "from sklearn import linear_model\n", "logit = linear_model.LogisticRegression() # intercept is added by default\n", "logit.fit(X, mydata['admit'])\n", "print(logit.coef_)\n", "print(logit.intercept_)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Compare these results to the above (not in same order):" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Intercept -3.989979\n", "rank[T.2] -0.675443\n", "rank[T.3] -1.340204\n", "rank[T.4] -1.551464\n", "gre 0.002264\n", "gpa 0.804038\n", "dtype: float64\n" ] } ], "source": [ "print(lg1.params)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "These results are different. Why? Looking at the documentation for [`LogisticRegression`](http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html) the function does some regularization to the X matrix. This means that it rescales the inputs to be on similar scales. You can't turn this feature off. The regularization step is common in building predictive models, but not common with applied statistics. The coefficients are different because the scales of the X variables are different. So a 1 unit change in the original X variables is not the same as a 1 unit change in the regularized X variables. " ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " gpa gre rank_2 rank_3 rank_4\n", "0 3.3899 220.000000 0 0 0\n", "1 3.3899 220.000000 1 0 0\n", "2 3.3899 220.000000 0 1 0\n", "3 3.3899 220.000000 0 0 1\n", "4 3.3899 250.526316 0 0 0\n" ] } ], "source": [ "# predictions, again; make sure columns are in same order as X\n", "gres = np.linspace(mydata['gre'].min(), mydata['gre'].max(), 20)\n", "newdata2 = pd.DataFrame({'gre':np.repeat(gres, 4), \n", " 'gpa':mydata['gpa'].mean(), \n", " 'rank':[1,2,3,4]*len(gres)})\n", "newdata2['rank'] = newdata2['rank'].astype('object')\n", "newdata2 = pd.get_dummies(newdata2)\n", "del newdata2['rank_1']\n", "print(newdata2.head()) ## columns not in order: pandas bug" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "collapsed": false }, "outputs": [], "source": [ "newdata2 = newdata2[['gre','gpa','rank_2','rank_3','rank_4']]\n", "newdata2[\"prediction\"] = logit.predict_proba(newdata2)[:,1]\n", "newdata2['rank'] = [1,2,3,4]*len(gres) # to use for plotting" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sns.set_style(\"white\")\n", "fig, ax = plt.subplots()\n", "for key, grp in newdata2.groupby(['rank']):\n", " ax.plot(grp['gre'], grp['prediction'], c='C'+str(key))\n", "lines, _ = ax.get_legend_handles_labels()\n", "ax.set_xlabel(\"GRE\")\n", "ax.set_ylabel(\"Predicted Probability\")\n", "ax.legend(lines, [1,2,3,4], loc='best', title=\"rank\");" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercise: Classification Models\n", "\n", "Using the data provided in `mydata`, fit both SVM (`sklearn.svm.SVC`) and K nearest neighbors classifier models. \n", "\n", "For each method, make a plot showing which points were wrongly classified.\n", "\n", "Make a plot showing which points are classified differently by the two methods." ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "collapsed": false }, "outputs": [], "source": [ "np.random.seed(42)\n", "nsamp = 60\n", "A = np.random.multivariate_normal([1,1], np.array([[1,.1],[.1,1]]), nsamp)\n", "B = np.random.multivariate_normal([4,1], np.array([[1,.1],[.1,1]]), nsamp)\n", "C = np.random.multivariate_normal([2.5,4], np.array([[1,.1],[.1,1]]), nsamp)\n", "pts = np.vstack([A,B,C])\n", "mydata = pd.DataFrame({\"x\":pts[:,0], \"y\":pts[:,1], \n", " \"group\":['red']*nsamp+['blue']*nsamp+['green']*nsamp})" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWwAAAD0CAYAAAC/3RwjAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXd4FNXXx7+zvSWhJJAA0juEYqFI7x2lN6k27CKIgoig\nqIAoKErRH4jSOwgIUiRSpCM1dEIJISQhhCS7m633/eO8C9nsTLLZzGaTMJ/nyYPOzt57Znbm3HvP\nPYVjjDFISEhISBR4ZIEWQEJCQkLCOySFLSEhIVFIkBS2hISERCFBUtgSEhIShQRJYUtISEgUEhT+\naDQjIwPnzp1DWFgY5HK5P7qQkJCQKHI4HA4kJiaibt260Gg0Hp/7RWGfO3cOQ4YM8UfTEhISEkWe\n5cuX49lnn/U47heFHRYW9qjT8PBwf3QhISEhUeSIj4/HkCFDHunQrPhFYbvMIOHh4ShXrpw/upCQ\nkJAosgiZkqVNRwkJCYlCgqSwJSQkJAoJksKWkJCQKCT4xYYt8eQSlxaHHVd3QC1Xo3v17gjRhARa\nJAmJIoPPCnvhwoX4+++/YbPZMGjQIPTr109MuSQKIbMPz8bE3RMhl8kh42R4betrWNtvLbpW6xpo\n0SQkigQ+mUSOHDmC//77DytXrsTSpUsRHx8vtlwShYwz987gkz2fIMORAaPNiDRrGkw2E/qt7YeH\nGQ8DLZ6ERJHAJ4V94MABVK9eHW+99RZGjx6N1q1biyyWRGFj2ZllsDqsHsdlnAxbL28NgEQSEkUP\nn0wiDx48QFxcHBYsWIDY2Fi88cYb2LFjBziOE1s+iUJChj0DTub0OM4Yg8VhCYBEEhJFD59m2MWK\nFUPz5s2hUqlQuXJlqNVqJCcniy2bRCGiT60+0Cl1HscdTge6VO0SAIkkJIoePinsZ555Bvv37wdj\nDPfu3YPZbEaxYsXElk2iENGyQkv0r9MfeqUeHDjIOTm0Ci2+av8VIoIiAi2ehESRwCeTSJs2bXDs\n2DH07dsXjDFMnjxZysr3hMNxHBb1XITh9Ydj3YV10Cq0GFpvKCJLRwZaNAmJPJNuTUdcWhyeCn4K\nWqU2YHL47NY3fvx4MeWQKAJwHIdWFVuhVcVWgRZFQkIUHE4Hxvw1Br+c/AUKmQJO5sS4puMwpfWU\ngOzZSZGOEhISEgJM3jsZi/5bhAx7BtKt6TDZTJh1aBbmH58fEHkkhS0hISHBg5M5MffoXJhsJrfj\nJpsJ0w9MD4hMksKWkMiBDHuGx0srUfSxOWww2oy8nyWaEvNZGkJS2BISAtxJvYOOSzsi6OsghEwP\nQctfW+Jq8tVAiyWRT6gValQsVpH3s4bhDfNXmP9HUtgSEjzYHDY8v/h5/B3zN+xOO+xOOw7ePoim\ni5oi3ZoeaPEk8om5XeZCp3gcX8CBg06pw3edvguIPJLClpDgYduVbXhgfgAHczw65mROmG1mrD63\nOoCSSeQnXat1xc6hO9GhcgeUDymPHtV74MDIA2hSrklA5JHSq0pI8HAt+Roy7Bkex402o2QWecJo\nVr4Zdg7dGWgxAEgzbAkJXuqH14daofY4blAZ0CC8QQAkkpCQFLaEBC9tK7VF9ZLVoZY/VtpKmRLh\n+nD0qtUrgJJJPMlICltCggcZJ0PU8CiMfnY0QnWhKK4pjhENRuDwK4ehkqsCLZ7EE4pkw5aQECBI\nHYQ5nedgTuc5gRZFQgKANMOWkJCQKDRICltCQkKikCApbAkJCYlCgqSwJSQkJAoJ0qajhEQuOR1/\nGkfvHEX5kPJoX7k95DKpeIdE/iApbIkigZM5seXSFqw+vxoahQajGo5C8/LNRe3D5rChz5o+2BOz\nBwAg5+QooS2BfSP3oXxIeVH7kpDgI08Ku1evXjAYDACAcuXK4euvvxZFKAmJ3MAYQ7+1/fDX1b9g\ntBnBgcPq86vx4fMfYkrrKaL1M+fIHOy+vhtmu/nRMZPNhMHrB+PAqAOi9SMhIYTPCttisYAxhqVL\nl4opj4RErtl9ffcjZQ0ADAwmmwkzDs7AyAYjUaFYBVH6+fnEz27KGgAczIHjcceRZEpCqC5UlH4k\nJITwedPx4sWLMJvNGDVqFIYNG4ZTp06JKZdEEcbutOOLf75AqW9KQTNNg7a/tcWZe2d8bm/zpc28\nieZlnAy7ru/Ki6huWOwW3uMcxwl+JiEhJj4rbI1Gg5dffhmLFi3C1KlTMW7cONjtdjFlkyiivLbl\nNUw/OB2JpkRYHBbsvbEXzRY3w/UH131qL0QdAoXMc7Eo5+QwqAx5FfcR/ev05w1LLx9cHmWCyojW\nj4SEED4r7EqVKqFnz57gOA6VKlVCsWLFkJgYmLI5EoWH+PR4rDi7wqPkVoY9A7P+neVTm8PqD4NS\npvQ4zsDQvXp3n9rk45MWn6BCSAXolXoAgEaugUFlwO+9fg9IBW1fYIwh6kYU3t3+Lj7a9RHOJZwL\ntEgSucBnhb1u3TpMn06FKO/du4f09HSEhYWJJphE/hCbGotZ/87CZ3s/w5HYI2CM+bW/y/cvQ6PQ\neBy3O+04HnfcpzZrhNbAvK7zoFVoEawORrAqGCHqEGwdtFXUGXZxbXGceeMMvu34LSJLRUKtUKOY\nphi2X93Omzu7oMEYw4jNI9B9RXf8ePRHfHvoWzT6pRG+P/J9oEWT8BKfNx379u2LCRMmYNCgQeA4\nDl999RUUCslLsDCx9vxaDN80HE7mhM1hw6xDszCgzgAs6rnIbzPGKsWrwOLwtPfKOTkiS0X63O6I\nhiPQq1Yv7InZA7VcjXaV2/EODHlFIVPgp2M/4fL9y7A4LHhoeYiZB2diT8we7Buxr0DPtKNuRGF9\n9PpH9n4Hc8BsN+Pj3R9jQJ0BCDeEB1hCiZzwWcOqVCp8++23YsoikY+kWdIwYvMIDxe1NefXYECd\nAehUtZNf+i0bXBbdq3XHtivb3PpWK9T4sNmHeWo7RBOC3rV651XEbNlyaQtiUmLcBh2z3YxT8aew\n/9Z+tKzQ0q/9u7hy/wrSrGmILBUJpdzTHMTHuuh1vJuzck6OHVd3YESDESJLKSE2Umj6E8ru67t5\nN+qMNiOWnV3m176X9V6GV59+FVqFFhw41C9dH7uG7kLN0Jp+7VcMjtw5wluE12K34NidY4LfczIn\nlp9Zjha/tsCzPz+LOYfn+GRGuZlyE/UX1Ef9BfXReklrlJpVCuuj13v1XY1SAxnn+crLOJlfViMS\n4iPZMJ5QZJwMEDBXyzn/hlqrFWp83+V7zOk8Bw7m4B04CiqVilWCTqnz2DTVKDTZ+nu/8scrWHN+\nzaMZbnRiNFaeW4mDow56ff2MMbT7vR1iUmLgZM5Hx4dtGoYaoTVQt1TdbL8/rN4wzD8238OX3Mmc\n6Fatm1cySAQWaYb9hNK+cnu3iuAu9Eo9htUfli8ycBxXqJQ1AAysO9DDtU/GyaBX6dGjeg/e71xM\nuohV51a5mSPMdjOiE6Kx6eImr/s+FHsI94z33JQ1QLP7ecfm5fj9+uH18UWbL6BRaKBX6mFQGaBT\n6rC231oEqYO8lkMicEgK+wlFr9JjTb810Cl10Cl1UMlV0Cq0ePXpV9GmYptAiyeI2WbGrmu7sDdm\nL2wOm2jtMsZw9t5Z/Hv732xNFSGaEOwbsQ/1StWDWq6GSq7Cc2Wew4GRB3iL9mbYM/DD4R94B8d0\nW3quAnvupd/jNWk4mAO3H972qo2xz4/FtXev4YcuP2Bh94W4O/YuulTr4rUMEoGlcE1vJESla7Wu\nuPX+Lay/sB7p1nR0rtoZtcNqB1osQf649AeGbBjySGkpZApsGrAJLSq0yFO715KvoduKbohNjYVc\nJgdjDPO7z8eQyCG850eWjsTpN04jwZgAOSdHSV1J3vMO3T6ELsu7wOKwwOqwenyukqtQxuB9wE2T\nck14Iyp1Sl2ulG6ZoDIY1XCU1+dLFBwkhf2EU1JXEq8981qgxciR2w9vY+C6gR72124ruuHOB3d8\nXtI7mRPtfm+H26m33UwNr215DXXD6qJ+eH3B75bSlxL8zOqwotuKbnhoeSh4jkKmwMiGI72WNSIo\nAu80fgfzj81/ZF7RKDQoG1QWw+sP97odicKLZBKRKBQsP7uc16zAwLDx4kaf2/339r9INid72IVN\nNhPa/94eh2MP+9Ru1I0oXnkBUtShulCs67cOZ+6dwdt/vo2pUVNxI+VGju3ObD8Tv734G1pVaIX6\npetjYvOJOP7acehVep/klChcSDNsiYBy++Ft/Hj0R5xNOIsm5Zpg9LOjeWeuyeZkXrOC3WlHSkaK\nz/0nmZIEg12SzElo93s7HHv1WK5NRWabWTBq9NmIZ7F3+F50W9ENR+8cRbotHSq5CjMOzsDqvqvR\nowb/5iVAG7V9avdBn9p9ciWPRNFAmmFLBIwTcSdQe15tzDkyB9uvbsfn/3yOiG8jEDErAu9ufxf3\nTfcfndu5audHOTwyw4FDh8odfJahabmmsNo9BwIXFrsFMw7OyHW7rSu2htlm5v0sLj0OK86tIJ9u\nG/l0Wx1WmO1mvLTxJSnzn4QgksKWCBivbX0N6db0RzNnB3PAyZyIN8Zj4fGFePaXZ2G0kq22TcU2\naFe5nZvS1iv1GNFgBGqF1fJZhtKG0hj3/DjBwBEHc+B0/OlctxuiCUGZYP4NxQRjAn458Qtv1CFA\nwTkSEnxIJhGJgGCxW3AqXjiHutVpRaIxEcvOLMPrz74OjuOwof8GrIteh6VnlkIlV2FUw1GiBHx8\n0fYL1AqthZc2vgSWJZpIzsnRMLyhT+3yrQhcbQqFkzPGHvl5X75/GXOPzMWl+5fQqkIrjH52tKBH\nisSTgTTDlsgVB24dQJslbVB6Vmm0+LUFom5EweawYeOFjfhq/1fYfHEz7M6c86IrZArelKiZMdqM\n2Hdz36P/l8vkGFB3ALYO3ooNAzage/XuoiVbGlxvMEY2HAmdQud2XKPQ4KPmH/nU5sC6A3ln7iGa\nELzf5H1ehW5QGdCobCP8HfM3Gi5siAXHF2DX9V2Ytn8aas+rjbi0OJ9kkSgaSDNsCa/Zc30Peqzs\n8ci1LsGYgK7LuiJEEwKjzQijzQi9Uo/ShtL4d9S/CNMLp9t1Kd/V51bzZu8DALVcjaolqvrlWvhY\n2H0hygWVw9yjc5FqScUzZZ7B3C5zfc5x8kHTD7A2ei1iHsTAaDNCLVdDIVNgee/laFWhFYbVH4Yl\np5YAoAFMLpNjy6At4MBh1OZRbuHvGfYM2B12TN47Gf/r+T8xLleiEMIxPyRAjo2NRbt27bBnzx6U\nK1dO7OYlAkT9+fVxJiHnUl5KmRL9avfD8j7Lsz0vzZKGHit74Oido8iwZ3iYIwwqAy68dQHlgn17\nhtIsaTDbzQjThQUs7anVYcW66HX4O+ZvlA8pj1ENR7ldz6WkS4i6EYUS2hLoXr07tEot7qbdReUf\nKvNGXIbrw3F33N38vASfYIzh+yPfY/qB6UgyJaFuqbqY3Wk22lQquFG0BYGcdKc0w5bwmuikaK/O\nszlt2HBxQ47nBamDEDUiCucSzuFI7BH8fOJnnLp3CjJOhrJBZfF7r999UtbJ5mQM3zQcO6/tBAcO\n5YLLYfELi/Mt9WlmVHIVBkcOxuDIwbyf1witgRqhNdyO6ZQ6D79wF4Ul58dnUZ/h20PfPlolnL53\nGt1XdseeYXvQpFyTAEtXeJEUtoTXlNKX8tqGmpuFW91SdVG3VF28/PTLuG+6jwx7BsoElfF5Vtxp\nWSecjj8Nm5NyjVx7cA1dl3fFmTfOoHLxyj61mZ+EaELQoXIH7Ly289E1AKTI32v8XgAl844Me4ab\nsnZhspkwee9k7By6M0CSFX6kTUcJr5nQfAJ0SvdNORkngyzLY6SQKfBCzRd86qOkriTKBpf1WVn/\nd/c/XEi84KboADJN/Hj0R5/aDAS/9/odDSMaQqfUIVgdDLVcjUF1B+GN594ItGg5cjftLjjw/37n\nE87nszRFizzNsO/fv4/evXtj8eLFqFKlilgySQSQ+PR42J12XlPEW8+9hVRLKqYfmA6Hk8KuG4Q3\nwLG4Y+AYBwdzQK/UI0wfhh86/5DfogMAbqTcgFzmmc/b5rThUtKlAEjkGyW0JXDklSM4c+8Mbqbc\nRIPwBngq5Cm/9plqSQUABKuD89ROuCFccIWVF595iTzMsG02GyZPngyNRqpUURS4lnwNz/3yHCrO\nqYhqc6uh5o81cfLuSbdzOI7DxBYTkTQ+Cf+N/g/lQsrhZPxJ2Jw2OJgDSpkSHat0xKW3L6G0oXRA\nrqNhREPeEHatQhsQGzYfjDHsvLYTQ9YPwYC1A/DHpT8EFVy90vXQo0YPvyrrq8lX8fyi5xE6MxSh\nM0PRfHFzXEu+5nN7WqUW7zV5z2M1plVoMbX11LyK+0Tjs8KeMWMGBg4ciFKlhDOWSRQOrA4rmv/a\nHCfvnoTFYUGGPQOX7l9Cm9/auIWHu7j18BaWnFqC2NRYN08Gm9OG7Ve344H5QX6K70bFYhXRv05/\nN2Wh4BQIUgcVmKyE7+14D71X98aKcyuwJnoNBq8fTEE7fq5Yz4fJZkKzRc1w5M4R2Jw22Jw2HIo9\nhGaLm+WpEvy0ttPwWavPUFJbEhw41AqthU0DN6FZ+WYiSv/k4ZPC3rBhA0qUKIEWLfKWh1iiYLDt\n8jYYrUYPzwSbw4ZlZ5bByZw4eOsg5h+fj1o/1kL9BfUx8+BMj00lgLwiDsUeyi/ReVncczG+bPsl\nKhevjFL6UhhafyhOvnYSxbXFs/1eojER66PXY8/1PY9MPjlxMeki5h+bj9XnVvPej6xEJ0bjfyf/\n5xaWbrQZsfni5oDct/XR62Gym9x+eydzwmgzYsOFnD19hJBxMoxvNh5J45PgmOxA9FvR6Filoxgi\nP9H4ZMNev349OI7DoUOHcOHCBXz00UeYP38+wsKEAyUkCi63U2/zmhHMdjNO3zuNKj9UQaIxESab\nycNXOitO5sw2T3R+IJfJ8X6T9/F+k/e9/s70A9Mx9Z+pUMlUYGDQq/TYNXSXYJ1ExhhGbxuNpaeX\nAvj/wJetcuwatgvPlnlWsJ+d13byuuyZbCZsu7wNzz/1vNcyi0FMSsyjfC1u8lhNXqV79YZA+cAX\nRXxS2MuXPw6IGDp0KKZMmSIp60JMo7KNoJApPCIODSoD/rr2F+LT4wX9gjMj42QorS+NpuWa+ktU\nv/DPjX/wxb4vkGHPQAbIDJBmTUPnZZ1xa8wt3rJcGy9uxPIzyz0KKvRc2ROxH8TyfgcAglRBvPda\nKVciRBMi0hV5z9MRT0Ov0ntUgtepdD7nUJHwH5JbnwQal22MZk81g1ahfXRMLVcjwhCBFHNKjspa\nIVNAp9Shdlht7B62u9DNqOYfn89rzki1pOLQbX4zxc8nfubNtpduTcexO8cE++pdqzfvcTknx6C6\ng7yUWDy6VO2CysUrQy1/XI/SlRKgU9VO+S6PRPbkWWEvXbpUcukrwByOPYyhG4ei09JO+OnoT7yK\nieM4bBm8BVNaT0G1EtVQIaQCxjYdi3nd5kEhz34RplPoMLH5RJx47QTOvnEWFYtV9NOVCONkTqw9\nvxY9VvTAi6texOaLm3O1gSdUAIEDhzRrGu9nQvlPOI7jNS+5KK4tjk0DNyFYFYxgNf3plDos7bXU\n7257fMhlcuwfuR9vPvcmSutLI9wQjrcbvY19I/YJrhIkAoeUS6QIs/DEQnzw1wdU/QQMOqUOlYpV\nwpFXjnhVUirDnoFS35QSVFoahQZVilfB8deOC+aT9jeMMfRf2x/br25/NOPVK/UYUGcAFr2wyKs2\npkRNwdR/PN3NZJwMKR+l8IaDL/5vMd7d/q7HLDtEHYKEDxMepUgVIsOegb0xe+FgDrSp2EYq8SUB\nIGfdKQ2hRZR0azrG7BjjtlFospkQ8yAGi/7zTpFpFBrM7z4fOqUOco6CUVRyFTQKDeqE1cGkFpNw\n+JXDAVPWAHDw9kE3ZQ2Q18Wq86u8LjxwNfkq73EZZIhPj+f9bGi9oWhSrsmjFKkquQo6hQ7Ley/P\nUVkDdG+7VOuC7tW7S8pawmukXCJFlKN3jkIpV3psipnsJqy/sB7vNn7Xq3aGRA5B3bC6mHdsHuLS\n4tCtejcMqz/skZ+zw+nAX1f/QmxqLBqXayzoVeEvdl7byWvmsTvt2HV9V7ZVz13EpMTwHter9Lj1\n8Baqlazm8ZlSrsTOoTux4+oO/HX1L4TpwzCs/jCUDymf+4uQkPASSWEXUYppign6EofqQnPVVv3w\n+ljYY6HH8ZspN9FySUs8MD+AgznAGEPnqp2xpt8aKGT582gV1xSHWq5GhsM9yEPJZCgm927m2rJ8\nS5yIO+Fhl7Y4LKhXup7bMavDiiv3ryBMH4ZS+lLoWq0rulbrmreLkJDwEskkUkRpGN4QEYYIjyQ8\nOqUObz/3tih99F/XH7GpsUizpsFkM8FsN+Ova39h3rF5orTPB2MM+27uw4LjCxB1IwoD6gzg90rJ\nyEDf7uOBP/7Itr29MXux6/ouj41CrUKL/rX7uw1u/zv5P4R9E4ami5qi/Ozy6L6iOx5mPBTluiQk\nvEGaYRdROI7Djpd2oOOyjkgwJkDGyWB1WDG19VRRksjHp8fjdPxpD5c/k82EBccXeG1yyQ0PMx6i\n7W9tcTn5MhxOB+QyOSoXr4wlLy7Bq3+8AqSlAQyQMWDjaqBYUjowaBBw8SLwlKcHxs5rO/Hiqhc9\nzEYyyGB32rEueh323tiLNf3WwGQz4b0d77mZX3Zf342B6wZi+0vbPdq2OWy4nXobobrQPCdTkpBw\nISnsIkyVElVw9Z2rOHrnKJLNyWhSrkmO4dnekmHPEHT7yksOiuwYu3MsziWec5sNX0y6iK2XtyLh\nqR9wYPqbkBnNaH4LULrGEbsdWLoUmDjRs72/xnooawBwwgmn0wmb0wZTqgkdl3bEc2We87CVWxwW\nRN2MQlxaHMoEPa6Q/vOJnzF+13jYnXY4nA70q9MPP/f4OaCbsxJFA0lhF3E4jkPjco1Fb7dCSAWU\nNpT2CF9Wy9XoX6e/6P0BwMpzKz1MF1aHFWvOr8FvIc+h3TUGZB0rrFbgvmcCKwC4eP+iV/06mAPR\nifzVdlQyFe6l33uksLdd3oYxf41xU+5rz69FdGI0OlftjM5VO6PZU828Di6yOWxYcmoJfj/zOxQy\nBV59+lUMrDtQ8pF+QpEUtoRPcByH5b2Xo9OyTrA5bLA4LNAr9SgXXA4Tmk/wS59C1djtTjvQvj3A\npwQNBqBLl0f/u+f6Hny691Ncvn/Za6VnsplQK7QW7pvvexRGcDCHW4mvafuneczEMxwZOHH3BE7e\nPYk5h+ega7WuWNV3VY79O5kTXZd3xb+x/z5q89idY/jzyp9Y1nuZV7JLFC2kYVrCZ55/6nlcfvsy\nJrWchFENR2F+t/k4NfpUrnJiOJwObL+yHT8e/RH7b+4XjFBMNicjRO3ZroyToUPlDuBq1QKGDwf0\nmTxD9HqgZUugXTsAwNbLW9FzZU8cij2E++b72UYkZsagMuD9Ju8jWB3s5v2iV+oxre00t1Susamx\ngu0wMBhtRvx55U9svLAxx353X9+Nw3cOuw0ARpsRGy9u9NrHXKJoIc2wiyBOJ5CUBISEAGp1zufn\nhYigCExqOcmn78anx6P54uZIMCbA5rRBIVOgbqm62D10t0cwSY8VPXhDyIPVwZjX7f+9UubNA7p2\nBf73PzKFDB0KDBjwaOY95q8xMNlzToGaGQWnQI2SNdCqQiv89/p/+Gr/V9h1fRfKBJXB+Gbj0b16\nd7fzmz3VDGuj12abf8VoM2LpmaXoU7tPtn3vub7HIykTQINc1I0or3zMJYoWksIuYqxYAYwZAzx8\nCMhkwCuvAN9+CyiVgZaMuHz/MjZf3Ay5TI6tl7fi5sObbqaO/+7+h8+iPsOsjrMeHbuUdAmn7p3y\nMEdw4NCpSidUKl7p/w9wQI8e9JcFJ3MKRjRmh1qhxsWki6j+Y3XUK10P6/qtw/zu8wXP/7zN5/jz\nyp8w2jzzi2eGr4xZVsL0YdDINZ4+5nIlSupKen8REkUGySSSRxhjgrbV/GbnTuDVV4GEBMBiAcxm\nmmy+K76H3SMSjAn44p8v0HNlT0zeOxl30+4KnvvV/q/QYEEDfPL3J5iwewL23tjrce8sDgt+O/2b\n27E7aXeglHmOOAwMtx/e9kpOGSdDSW3ulZzRZoTRZkSGPQMn4k6gzW9tslXE1UtWx7FXj6Ff7X4o\nG1T2UUh/ZvRKPUY2GJlj3y/VewkymecrKufk6FWzV+4uRKJIIClsH7E5bPh498cInh4M1Rcq1JlX\nB1E3ogIq0+efA6YsK36zGViyBEj3XFnnmcv3L6PmjzXx1f6vsOXyFsw8OBM1f6qJcwnnPM49n3Ae\n0/ZNg9luhs1pg9UpbD/OqsTrl67Pmx1PLVejXeV2Xsv7cfOPPeoM6pQ63sGADwdzIMGYgAO3DmR7\nXo3QGljVdxViP4jFrqG7oFfqoVfqKd+IUoch9YagW7VuOfYXbgjH5oGbUVJbEkGqIBhUBpQxlKE2\npfwjTySSScRHRm8bjVVnVz2yiUYnRqPbim44OOogGoQ3CIhMN27wH5fLgcREcpjIK9cfXEeiMRH1\nStfDe9vfQ0pGyqPkUhaHBRaHBW9sewP7R+53+9666HVebfIpZUqP2WNJXUm83/h9zD0691GSJ4VM\ngRBNSK4CdMY2HQujzYhZ/86Cw+mAQqbAJy0/QUJ6AuYfn+/mky3jZIIz6bi0OK/7bFOpDWI/iMX6\n6PV4aHmIjlU65irfSvvK7RE/Lh4n4k5AIVOgYURDyaXvCUZS2D5w33QfK86u8AgQMdvM+Gr/V1jT\nb01A5HrmGSAuDsjqaCGTAWXL5q3te+n38OLqF3E6/jSUciUcTgcy7Bm8JcP+vf0vnMzppliyKy2m\nkqtgdVhhUBlQUlsS09tP9zjnq3ZfIbJ0JL499C2STcnoUq0LPm35qVvo+H//Ab/+SgGPffrQ/mNm\niwLHcfis1WeY0HwC7pvuI1QXCqVcCavDiiRTEtZEr4FarobFYUHjso1xLO6Yh4uezWlD47K582sv\npimGl5/Gq4ExAAAgAElEQVR+OVffyYxCpvCLL71E4cNnhe1wODBp0iTExMSA4zhMnToV1atXF1O2\nAsvNhzehkqs8FDYD4zUH+JP7pvtIMiWhcvHK+OILJfbsAYyZUjTrdMDUqYAq54yf2fLCqhdw8u5J\n2Jw23ujAzKjkKo8cJv1q98PMgzM9vquWq/Fpy08Rb4zHc2WeQ/86/XkjAjmOw+DIwRgcOZi3z++/\nByZMINu90wmsXUvefBs3uittl3wRQRFu//9br9/wTcdvEPMgBtVKVoNGoUG9+fUQmxr7yByjV+ox\nsO7Ax5ucEhL5jM8Ke+/evQCAVatW4ciRI5g9ezbmzxfePS9KVC5emXd5L+NkeDri6XyRIc2ShmEb\nh2H71e1QypVQcAp81+k7HDgwEh9/DBw9CpQpA0yaBAwcmLe+riZfxZl7Zzy8NABP04FarsbQekM9\nIvnqlKqDT1p8gi/3fwm70w6O4yDjZJjdcTZGPzc6T/IlJgIffUTK2oXRCOzZA2zbxus0wkspfSm3\nAsLHXzuOGQdmYP2F9TCoDHi70dsY0WBEnmSVkMgLPivs9u3bo3Xr1gCAuLg4BAc/OQluimmK4bVn\nXsP/Tv7PbcmsVWgxsYVnzgp/MHjDYOy6tuuR3RgA3t7+NrYMqoAdO9qK2leCMYE3tzYAGJQG2Jw2\nKOVK2J12NCrTCN91+o63nU9afoK+tfti08VNUMgU6FO7jyglxXbvphWEJcu+pNEIrFvnvcLOSjFN\nMXzd/mt83f7rPMsoISEGebJhKxQKfPTRR9i1axd++OEHsWQqFMzuNBtlg8riu0Pf4UHGAzxX5jnM\n7jQbtcNq+73v+PR47L6228NzwmQzYfqB6WhbSVyFXb90fV7XRbVcjXcbv4tBkYMQnRiNGiVrILJ0\nZLZt1QitgY+afySqfDodf1S6TAYEeVb3kpAotOR503HGjBkYN24c+vfvj23btkGn0+X8pSKAjJNh\nfLPxGN9sfL73fS/9HpRypUdABQDcenhL9P70Kj2+bvc1JuyZ8GhFoZarEaoLxftN3kdJXcl8GaiE\n6NiR/7hGA4zM2d1ZQqLQ4LN/0KZNm7BwIVUh0Wq1ZJPkcfKXEJ/qJavzupwpZAq0qZj3XNd8vNv4\nXWweuBmdq3RGg9INMO75cTg9+nSBiLjTaoGtW4HgYPoLCiJl/cUX5DkjIVFU8HmG3bFjR0yYMAFD\nhgyB3W7HxIkTodFI+X7zA61Siy/afoFJf096NOOVc3IEqYL8akNvX7k92ldu77f280KLFkB8PPDX\nX2S77tABKFUq5+8VZhISyPe+alWgRIlASyORH/issHU6Hb7//nsxZSlc3LlD2kGjAbp3p6ldPjKm\nyRhUKV4F0w9Mx930u2hbqS0mt5yMp0I8K6s8KWi1wIsvBloK/2O1AqNG0YaqWk3//8or5NooLXKL\nNlLgjC988w0weTKFEMpk5Pi7fj3QqVO+itGzRk/0rNEzX/sUk0RjIn499SsuJl1E03JNMThysBRy\n7QUffQRs2EBeMS7PmMWLgQoVgHHjAiubhH8peOPxzZuUsWjNGs/EGAWBkyeBKVOAjAxae6el0b99\n+vgnYUcR5XT8aVSdWxWfRX2GX0/9ijF/jUHtebWRYEwItGgFGqcT+PlnyhGTGZMJmD07MDIVVnbu\nBJo0AUJDgdatgYMHAy1RzhQshT1pElCzJvDee7TGi4gADmSfaCff+f13UtZZkcmAP//Mf3kKKcM3\nDUeqJfVRtKjRZsSd1DuInB+J8Fnh6Lq8K07ePRlgKQseNhv/4wcADx7kryyFmfXrgV69gCNHqILc\nP/+Qt9E//wRasuwpOAo7KoqmCBkZNF1ISwNSUynqwepdZZB8wWymaU5WGPOM3JDgJSUjhbdGoisb\n3j3jPWy/uh0tfm2BY3eOBUDCgotaDQhlgGjSJH9lKawwBowd67mAN5mADz8MjEzeUnAU9qJF/CYQ\np5OUeUGhXz/3MlQu7PZ8t2EXVrxNZ2qymfDRbnGDbIoC8+ZRsJBrg1Eup0yM3/EHmEpkwWIBbguk\nUT97Nn9lyS0FR2FnNcplRmgNGAjatSNXBL2ewuvkcnJPmDWr6PuRiYRepUfbSm3d6iMKceLuiXyQ\nqHDRpg3w7780d4iMBIYNA06cABoEJqtvoUOtFo6AjYjgP15QKDheIgMHAjt2uKeaA8ho18Y/wSA+\nwXHA0qU069+wgRT30KFAnTqBlqxQseTFJWi1pBXupt2Fkzkf5bnOSpmgMr51YLcDu3YBt24BjRsX\nOW1Wvz6walWgpSiccBx503z9tfuiXqejbbSCTMFR2L160Ybe33+T0lYqAYUCWLiw4CWE4DgaRArS\nQFLICDeE48JbFxB1IwoxD2Lwz81/sP7CerdkWjqlDpNbTs594zdvUiRNSgrgcNCxtm1pgC0oxS0l\nAsrEiWQamT2brK4qFXnqFvRUBgVHYcvlwKZNNCvavBkoVgwYMUJ4h0Wi0CPjZJSoqhIwvMFwlNSW\nxMITC8FxHJQyJaa2mYpBkYNy3/DAgVTJwaWsAcq1OmdOwd9VKuTcvk2vsMEAdOvGv90jNowBly7R\noqp2be+Ch2QySl3w6afkJRIWRvPDgg7HWNb6JHknNjYW7dq1w549e1CuXDmxm5cowphtZiSZkhBu\nCIdS7sNsOCEBKF+e32OnWjXg8uW8CynBy9SpwPTpj+PJAMrx0rKl//o8cwbo3ZvSEnAcLcZXr6YF\nVmEkJ91ZCMYUiScJrVKbt/B6q5U/1yoguV36QEwMOXDFxZETVO/e/FalgweBmTM9/QN69gTu3aON\nPrExm8kqmZz8+Fh6OpWGu3ataPoAFBwvEQkJMShbFniKR+Gr1cCAAfkvTyHmzz9pL/2bb6hW5iuv\nAE2b8jt0LV7Mf5wxskb5gz/+IJ+ErNhswLJl/ukz0EgKW6JowXH0trpyrAJkUK1YkXaaJLzCbifn\nJ7P5cdxaejoQHU1+AFkxmTyLP7vwl1dufDx/TJ3FQl62iYn+6TeQSApbIm8wxh/5yYfJRDtS+/e7\nbwiKTaNGwNWrZFR97TVg/nzg9GnayJbwilOn+GevZjOwYoXn8QED+DcYrVZy0PEHzZuTvZyPhARy\nPCtqSAo7K2fPUlaYpKRAS1KwMZmA0aPpLVUq6e3JLkxszRoyKvbtS+4DERHAMT+GnZcqBYwfT9PB\nl17yjxE1QDid5P26aBEpVn+g0QiPw3xFpXr2BNq3f7yocWGxAHPnii8fQMUpOnfm9wpxOCiY6OZN\n//QdMJgfuH37NqtevTq7ffu2P5r3D/HxjDVsyJhez1hICGMaDWMTJzLmdPq/b7udsXXrGOvTh7Eh\nQxj7+2//95lX2rVjTK1mjObY9BcUxFhsrOe5V64wptW6nwswVqwYY2azYBfR0Yzt389Yerofr6OQ\ncfcuY9WrM2Yw0KOq0zHWuTNjFkv233M6GfvlF8YqVKCf7dlnGfvnn+zPr1qVMY5z/8n0esZWreL/\njtnMmFzu+TMDjO3d6+sVZ4/dzliZMvx9BgUxduKEf/r1FznpTklhu2jenDGFwvPpXLPGv/06HIz1\n6EF9Ze53wgT/9psXzp/nV8BqNQ1yWZk4kTGlkv+NWr/e4/TbtxmrV4+UUXAwY1q9nY3//ig7fuc4\nczgd+XCBBZcOHTwfU62Wsc8/z/5733xD9zPr9/799/E5TidjKSmM2Wz0/9HRjJUqRT+TXk9zmNdf\nF57DzJ7NrzgBxpo2Fef6+Rg/njGViv/xymY+UCDJSXf6ZBKx2Wz48MMPMXjwYPTt2xd7/LUNnF/c\nuQMcP047LZkxGv2fUWfXLmDvXveQfKORQrBu3PBv375gMlFCZr71ssXCv0ZPSuI3iDocHjlBGSO3\nrPPnqavU4v/A/GYEZsa3Q4vFrVHuu3I4eueooHjnE87jg78+wLCNw7Aueh1vtXexuXkT+PJLCnfe\ns0d48y2vpKVR+s+sj6nZDPzyi/D3bDbg8889c6uZzY9DsdetI+easDAgJITii6pVA2JjgZUryaxx\n9iywYIGw1+SVK8Iy3LmT8/X5yrhxlNM6s9VLp6NXqMhVLfRlFFi3bh2bNm0aY4yxBw8esFatWuVq\nlChwnDtHa0y+qUH16v7t+623+PvV6Rj7+ee8tx8TQ3aFBw/y3taZM4yVKOE5Vcs8w5482fN7f/zB\nf381GsauX3c79ezZTIsNXQLDBD3DFLj9BX8dzFIzUj26WfLfEqadpmXyqXKGKWD6L/Ws1a+tmNVu\nzfu1C7B+Pc1UXTM8vZ6xnj1pqS429+/zzyQBxsLCHp+XksJYRsbj/4+N5V8Qub63Z4/nT6rT0aOZ\nG3bsEJ5hv/SSOPdAiMRExj79lEw9L77I2L59/u3PX/hlht25c2e89957LoUPudBWbWGhRg3+aACV\ninZT/EmxYvwxsXJ53upEpqZSRvZatajmZEQE8Mknvk//GKOqOsnJ/GlwOY6mM2+84flZ166UgCmz\nG4FeD7z1FlCpktupSUmZbkfkSkDmOZN3Op3YcGGD27F0azre/PNNmO1mOBh5oBhtRhyPO46V51YK\nX9PPPwPlytH9rlkT2LJF8BZkxWSiTHmZXd+MRpplr1/vdTNeU6IEPapZUSopoOXAAbqEsDB6dIYM\noccgNFQ4XLtqVXKm4csNvWhR7ooodexIQaZZUSiAb7/1vh1fCA2lVcSxY8DGjYU30jEnfFLYer0e\nBoMB6enpePfdd/H++++LLVf+olDQi5s5ybBGQ0/+R37Oxzx8uHBCou7dfW93xAhg3z5ygn34kP79\n/ntg+XLf2rt+XXhdy3H0th4+DISHe34ul1MmxvnzKVyuVy9ag3/zjcepzzyTybdWnwAoPKMxLA4L\nrj+4juNxx5FmSQMAHLh1gDddq9FmxKpzAmnt5s4Fxoyh63I6KSHFgAEkqxfs38/vVmY0+i9w47ff\n3F3M9XqgTBlKWtS5M12CzUb3cP164IUXyFTw3nue3h06HSm5a9f4+1IoyD3OWziO/LR79aLvchxl\nFTx/vmhGHQYCn9367t69i2HDhuGFF15Ajx49xJQpMPTtS1OUl16iAm+TJ5PRLjTUv/1Wq/Z4sAgO\npr9ixSjMzNfMOQ8f0vezhmIbjbxK0iuy85uuXZuUXM2awucoFBSJsWMHZc3r3JnXGBoURPZgnQ5A\nTFvAavA4x8mcmH5gOtr93g6lZpXC5L2ToVVowQRWD0FqnmyPTifV5uQz7HoZYJNd4j9/eRE2bEi2\n4s8+ozF59mxSiMuWef7cFgtw9Chw8SIlOpowgezTMhnFES1bRq54Tz8tbJcuWzZ38un19PPabHSL\nT52S8reJiU+5RJKSkjBq1ChMnjwZTZs2FVsmcbh/n6Yjly8DzZpRtvecdiAaNqTv5DcvvURToago\netNbtyZzjK+kpAhHFPjqX16tGk2Tsm6EarW0ShCRMWNoZjZ7ThvsT20GU9gB2ECbsgpOASecsDqt\nsFpoKv7twW9QcfM/0BosSMuiRPVKPV5/5nXPTtLShNf72e2eZaJFC/7brNcDo0Z51YRPlC4NfPyx\n+7HoaM/NSIDGyZgYGksnTSKrmMVCj5lLSX/xBZlx+HJDizHw3L5NSaDkcnrMS5fOe5tPKj7NsBcs\nWIDU1FTMmzcPQ4cOxdChQ5FRkKrCnDoFVK5MT9zChcCbbwJ167pnifE3//5L69Q+fSg0jO9tykxQ\nENWv7NjRd2V95gywbRsZ8fgSHcnlQIcOvrXNcRT8Ehz8eG1tMNAg9847vrWZDW3bAlv+4JD4/RbM\n6zEHzZ5qhmZPNQNAM+zMmBwZmGXfh+2LrShhBoKtHAxKAzQKDcY9P45SuGYlKIjk56NqVa9kTEqi\nBYvBQH9aLf29/DItIPILm0147LFY6NF34dpqyDyjrl+fvE/atKHbUq0alSEbPz7vss2ZQzPssWNp\nIK5Uqejm+cgXArHT6Xfq1vXcplapGHv77fzpf+ZM2mZ3RR3o9Yy1afPYwVVsEhIYe+YZ6jNrMIvr\nT6EgD48bN/LWV3IyY/PmMfbJJ4xt305+5H4kI4O8I5xOxu6m3WWaaRoPrxFMAQv9kK7TIgfbUkfJ\nln3el8U+5Aniycx33/G7R/z5Z7ZfS0sj13m1+v/9xLWMDRzI2I8/MnbpkogX7yUjR5LDDZ/TzrBh\n/u8/OZmxWbMogGf0aHK6Yoyxixf5vVM0GopTk/DkyQucSUwU9n0KD/d///fu8b89/gzCadeOPzAl\n81+VKozdueOf/v2A2czYa6/RrVSpKEJvy1YHi5gV4aGsZZPBevfPcr0NG+bcidNJg094OA2uVaow\ntnFjjl/r08dzXNTreWOA/M61a56BNK6/WrX8417IGN26uXMZCw2lvlxzE7mcxrwtWxibOpVfNp2O\nsQUL/CNXYccvbn0FmuzKRuTFLuwtUVH8u1FGo398vRITabOULzAlMxYLuRMUEoYPp9KZGRnk8XDz\nJjCgvwxjqs+DTqkDB1rTKxyAwQp8lTV2SyjR0927wOuv072oWZM2U+/coX+vXqUCy9nw4AHZY/n2\nc6dP9/FifSQmhrxqhKxtNpvwVkZe+f57cqBybYm49nsdDrKFjxpF94gvvoqxnB9XCX4Kr8JOTfUs\n2AvQi9q0qeeTqtVSQl+xYYzcwyIiaLD46CN+jwqZjBxpxSY11bu3skoV8fv2E/fuUa7jrPmVzWbg\n0K8vYs+wPehRvQdqh9XGyJvFcepnDjXuZzpRrwfefdez4ZQUcolYvJgU9+XL9Hu9/LKwm0QW7t8X\nnhPEx3t3fWIxZgw5BPEhkwHPPeeffp1O2qjkc8d3YTIBzz7Lv2nJmP/DG4osgZjW54noaMaee45M\nAEolmQOy9nP7NmMVK1IyAa2W1qvt27uHf4nFF18IR/5lXQf6IxONw0FL+pz63rNH/L79xLFjZBvm\nu5Q6dbKcHBNDpoygIPqSRsPYxx/zJ7yYMUPYqOqlbd9mY6x4cc8m5HLGRozI86XnCqHoRZeJJjra\nP/2mpQmbYTLf0jt3GPvwQ3r8ZDL6jlZL9m4JfoqWDTslhd6WzCnE5HIycGbd0LPbaVNs3jzGjh4V\nVw4XFotwSLtC4a5EfvrJPzIwxti2bfRWuFKlyeV0j5RKxsqWZWzt2pzbMBoZ++03StS0alXO6d/8\nSEoK/zaAXM7Yyy/zfMHppCxGGzdmv5vVtSv/bxUczNiGDV7L9/vv7mO0QkGJB2Nicn2peYJv4HDZ\nk48f91+/Tudj27XQo9+8+ePzT56kPerPPvPfIFJUKFoK+6ef+GezQUG0y5Hf3L4tPLsOC2Ns1y7G\nNm2ibXR/c+4cY6++SiuOL78kz5GUFO/Sw964wVjp0o8HH4OBscqVqY0A8dFH7reW4+hnvno1D42+\n9x7/5qxen+vVz9695BVRqxZ5Rty8mQe5fGTcOM+BTaVibOhQ//c9fz7/o6/RMBYZSWlgJXJP0VLY\n773HrxzVasZ++EHcvlzYbLQdHhlJb+eXX9JslDEysWROi5r5r0UL/8iTmkruCOvWUZ7pzz5jrHt3\nSrrk61vSoQOtWTPLr1SK9+ZfvsxYly70O5UoQfkwczBPOZ2kFKpUofTk3btTVtc8ceWKp5ZRKsmj\nJD/ynouM2cxYx450Sa4UqE2aMPbwof/6dDoZW7SIFrUKBd0+mYxyZ3/6Kc3sc3MrXb9z+fJkLmna\n1D3la0EjI4MWYwsXktui2BQthb18Ob8JwmDwX3quHj3cX3KtllKCuUwwkyfzJxqOihJflo0bHyeJ\ndg0ULmOiSkXHc7vmtNmEs84bDHmXOT6e7AWZzVhaLd3XQLB3L+1vuPwFu3QhV9BsePhQvO2P69fJ\n4rRvn3hjxJkzjK1Y4V8ziIs5c/gfd18LFEyd6tmeXE7zo/HjczcHSU6mBJczZvhnu+j0acZKlqTB\nUaej637lFXHH+qKlsDMyaCjPvKzVaBh7/nn/zJCOHuVf9xkMjG3eTOc4nZQdPjSUlFKNGjkGXvhE\nfHz2u0yuvypVcteuzSa8gxQc7Lu8Vis5CY8fz2+Q1moDE2XCGP1md+7kmHL20CHa5FQoSLf3709W\nJl9wOBgbNYpuhV5PSkkmY6xSJcZ+/bVwTPDtdmG7uS8FCsxm4QWqa+FcsqR3+8F791Jbej2pB52O\nFohi3Venk1YVfNa01avF6YOxoqaw09MZa9368aYaQArS17coJ+bMEY4cHDvW83x/vnVz53qnsAHG\ntm7NXdvdu3sqbZWKIld8YeFCsmPo9Z6mlsyDwerVNBW6ds23fvxITIznYk6lormBL/zyi/B2h05H\nzkZi4nQytnIlY82a0Wz188/zbipJTBR+HYoVy317V64I79lnnm3nZJmzWsnSxqdM163z7Vqz8t9/\nwrK2bStOH4wVtcCZ99+nFJ4OB90rALh1i2ra+4MyZfiDbbRayqGcFS99eX3CZMo5H4mL3N4PV07o\noCByMjYYKAHEjBn0OWNUFWf+fEo64br3APnCT5hAad3KlKHcKS4HYaNRuJKr2Uz+z61bU7KLRo2A\nuLjcye1H5s71DI6xWilNTXa1hoX46Sdhv2WTCfj66+z9mnPL++9T2MHBgyTvV1/RLc5LH8WKCcee\nVa6c+/YiIrJPAgnQ5zt3Zn/Ov//yvxpGI7nci4HFIvx6i/m75Yh4Y4P3o4RPOBzCw3toqHj9ZMZs\nJm+PrJVIg4JytHuKzpkz3s+wa9XKfftWK9nIZ850zxGSnEwFFg0G6t9goE26lBQ657nn3E0eWe8V\n359rp4rPcFlAbAOdOwsvDDZtyn17Vapkf0uCgsRzebt1i/9V0elo8ZMXpk3zNGN4kX5FkPfeyzmM\nIafHee9eYb/9zp19kysrViu/OUinoxwyYlF0Zth2u3A8K1/EoxhoNDSjrFmTZtU6HZXU2LnT/3my\nsxIZSVMmvT77mbxKBXTpkvv2lUoKy/7wQ0o15yrk8O67lFA5PZ1mxenplIB57Fhg927gwgWKH3eR\nefadGVd7ajVQoYLn5w4HFUk4fTr3svuBZs34s/FarfRT5JY+fbJPVWq10oxTDA4f5p8Jm0xe12YQ\nZOJEysVdogQ9hhUqUEZiXx45gCrRjBlDizq+x1qno8+z4/nn+b+r11POcDFQKqn2h073+N4aDECD\nBv4JoBZEvLHB+1HCZ55+2nOI4zgKiPA316/TJlkgZ4BOJ00nRo2iFG1ZHXFVKvKnFisVmtMpvKrR\n6Rj7+uucQ95cfyEh5A7pdFLmQqHp644d2YrkcDrY7mu72S8nfmEn4vzgCvD/JCbSwi3zQkCnY2zA\nAN/aS04m13a+/VeNhgJNvvuOFlLZYTLRPm5YGN3SIUMYi4tzP+eff2jGnrUfhYJmtGLgdNKsUywc\nDnps27alhVxICN2XMWO8e+X++ot+H42GVIJez1jv3mTD/vxz2i4RIxbs5k3Gpkxh7I03yL1P7ASc\nRWvT8dgxWpK7vETUavplA+VtUBD45x+q+vr00xRtcu+eeG07ncIufyoV7WoJ7cRkNo3odORs62Lm\nTOEQ8aQkQXHupt1l1X6oxgxfGZjuSx3TfaljHX7vwDJsfkg5wGjjsX9/esTKliUX/Ly8oOnpFHjb\npMljbwaViv7V6+lx1mopmlNISbVu7a70FQrGypShcHEXDgd5Lma1Oul0jF244Lv8+cWVK5RJIbdx\nW/fuMfb99xSasHUrOZQFBdGjaDCQr3dBT1hZtBQ2Y/QWjRlDEX0TJnhOLyR8JyODfKjM5sfHOnf2\nfPNlMhokzGaa0Wf+nONIw/Xty1i5cqSdskahpqSQRsk8e9fraeqSDR1/78gUUxVuqVU10zTss72f\n+Xa9DgdphwC8xU4nKRgh7wa+VK0rV/KPn3q9+3jIGL0m9erRABAURP24PFGfBF56yTOoVS6nx9Zf\npKeTi+bnn/ueKr7oKWwJ8XE6KYLBYKBpmE5Hg6HDQaagsLDHO016PSlpVyz2hQvk05VZmev1Oedv\nSU6m0LjISJo25rCTl2ZJY8rPlbzFC8p+Wzb317x7N01NXUUfGjf2TCLmZ/btE94s69bN/dyzZ4Wt\nUwBZyPi4coVc0vxVO6OgIrSRqVD4p+ZGdDT5jOv1j2f0jRo9Dor2Fr9uOp4+fRpDhw4Vy5z+ZGI0\nUhmzQYOopNmtW/kvw08/kQtfejrtTJlMlPB4xgyq6XTtGtXCGj2adomuXqXNV4Dc/R6VOQe58RmN\ntMsmtAEJAMWLU8nuM2eojRdeyFZEu1PYpdHqsAp+xktMDOX3jIuja7VYgOPHqUZWdjKLxKZNVA9y\nyBD3/drMZHVTmzyZv+obQPvhtWvzf1a1Km2MZZcmXiLvDBpEFQiNRnqE0tPp0XZ5xoqFzwr7l19+\nwaRJk2AReookciY5mVwOxo4FVq0ipVi7NrBvX/7KwecEbDI9rrAeFAS88Qb5Yb/+unstxMWL+R1R\nk5OpMqxIFNMUQ62wWh7HlTIletXqle13Y2KAtWuBQ4f+Xx8vWODpceRwUCLu/ftFk5mPadOo5vKB\nA1Sc1soz1uj1wLBh7scOHxZuU6Gg8qESj+nd27OOiEIBdO362GFJLOLjyZEq61ifkQH8/ru4ffks\nevny5TF37lwxZckbjJFLWFSU/9z8xGbaNKp24pLXaqX/HjYsX2Z6AIAjR4QDVh48yDmyITs5Rb6G\n3178DcHqYGgVWgBUEb1MUBlMazON93ynkyqf1K5NMTodO1KMTvyFZGEX0Tt3RJU5MykpwJdf8j+e\nrhoUej0VIB4wwP1z14ImKxxHFc9LlhRX1sLO7NnkchgURPcoKIjcJufPD7RkecPnhVKnTp0QGxsr\npiy+ExNDQ+ft2zSM2my0dB89OtCSZc/69fxTrIQEMo3w+Sv7SlQUPcV371J19rffpgGuWzfh71Sr\nlnM1m1GjyBc76yy7RAmgTp08i52ZBuENcPWdq1hyagku3b+EpuWaYlDkIOiUOt7zf/4ZWL2aZjou\n03+xbkgAABs2SURBVMPly8BA2xRE6Vd6ak6bDWjcWFSZM3P6NPli85lBypYFBg+mQaV+fc/yXp9+\nCvTv736bNRoa2/1VWaYwExpKC7wtWyhsoEYNCjPwR5XA8HCgVi36fTPPUTQaKnUnKnkxtN++fZv1\n69cv14ZzUXE6GatWjd+HqSDnaWSMQrj4dkbUanHd87LmEddoyMeJr7q860+rpcIIOWG1Uo5P126L\nXk87aUeOiCe/j9SpI3B7VU6WUPE59108nU54504kLl7k3wzjOHIf3Lv3cW4ztZqxwYMpm66LRYvI\n20Orpb/RowNaZ0IiExcu0KajwUCqyGCgfWyxNx0Lv8I+fpzfF5jjGBs0yP/954W5c/lzS2Yu15GV\nc+coWqJuXfJdyilJdHq6cKb57MLIc5Mv0+mkdLKff075Lf2VjCuXlC8vPBbFnEohv/UqVRirX5/k\nzsF9ICMj7x4GjRt7upvpdOSyl/VnUqvJezUzdjs5s+RWEUj4n/R0Kto0bRpjO3f6x62v8ISmC3H/\nPv8uAmO0iVSQeeMN8o7Qamkjz2Agr4xVq/jPP3SIMvisXAmcO0f/NmpEdmghTpzgt9dmZAibO4oX\np6RM3sJxQKtWtG5/9VUgJISOM0bVdHv0ADp0AJYsyddy2UJL4JIlgQqy2+QZcucOmYnu3RNMVLV3\nLy15dTqyhY4Zw2/J8oYtWyiUWqOhtooVIyehvXs9vUAsFkpsdOXK42NyOeXp0vFbgSQCiGuz+JNP\n6HEXe3MTQN5MIr6OEqIiVABQrWZs9mz/9y8GFy8ytmwZzVKzG5b5QvMBcvgUYtgw4Vl07dqe0zqd\njrGvvhLnut5+2z1TkF5PU0a7XZz2cyAxkWbZrkt05Unes/yuZ+y2gEnk1Cn+hP1DhuRNtthYCkN3\nhXe3aMH/E4WEUNh1UeTAAYqvatKEFmf5UUmvoPNkBM7MmuX5VnEcYxERFM5eFHA6hU0Ycjn/d2w2\n4QgCjqPgkcmTH2d+1+nITCBGZMHly/wDqcGQ+3zdeSA1larHvfgipTC/epXRQMJX21Gt9oicHTCA\nP6W32NsMH3/MHxjjqj5e1Fi0iB431yOt0TD21FPZZiYoMMTGipeuJytPhsJmjLE1a/jjdkNCyLiU\nn9jt/tkNCgnhV74lSvCfn5oqnJxJpXp8ntlMRQRMJvFkXbhQeLB4803x+vGFxo2Fp7NZbPeRkcKn\nirmvGhdH6TuzJpvirRKfCYuFSmJVq0bR/h9/7L5RKSZpaWTqf/ttUri+vlZmM/+2k1pN1dULKidO\nMFazJg0uajVlFha79kbRt2G7uHGDP5zL4QA2b85b26mpZC9esoS85IV4+BAYOpQMjFot0KSJb9nu\nAZJ7715gwwZy8wOAd97xNF7qdJQClQ+DgfzF+Gje/PF/azSUgV6r9U1WPooX57eRq1RAWJh4/fhC\nZCS/bBYLUKWK26FnnhE+tWpVMoG/9BJdbkRE9hGJ2RERQSb1Pn2orQoVgC++INdEIRij7YEpU8jO\nfeMGeW4+/7z4WwU3b9KtGTMG+PFHeuSqVQMye/Y+fEh/OXH2LL9912IBtm4VT2YxSU6mQNiLF2n7\nx2Kh7aHmzfN1W6YI2LBdfPgh/1RIraYUXr7y55/uZak1GiodlhWnk2ZuWde1wcG5r2YeHU15LoKC\n6PtqNdWQstloyqXRPM4/+dpr7oki4uIYW7yYbOIpKYz98Yd7ZjxXrg9/VCnNjMnknmMkswH4+nX/\n9p0TFy96ZuHXaCgfZxYuXfKcDep0jL3zDt3e8HD3RYxWmz/Zfhlj7PBh/pqIBgMtOMWkSxf+mhO9\ne1O+kqZNycqkVNJ/X7ki3Na1a8K1ODp0EFdusZgzh1/moCCq+yEWT45JZPt2/nWWTkc7R76QksK/\nrNdqKRtPZo4f5397NBpKrOQtDgftlGW1V+t0ZHNmjHbTjhzxNPjNmfO4yqsrkdO2bbS707kzJWTu\n359cA/ODo0cpUZRr4BH76c4LBw9SOjuZjH7Pt95yz1KYif/+oxTeWi2No998Qz/T9997/3j4gx9+\nEE4IJVbea8ZyzrJbqpS7MpfJ6Fh2FrZGjTytdXmpXONv3n1XeD74ww/i9fPkKGyHgzwQMr9Bej35\nKvvKsmX8g4BcTlnkM7NiBX/WeICxPn287/PIEeEc0zwzwEcIlRDT6QLrF223k3L8+29BhRhQLBaf\nN1kHDOD/mQwGxpYuFVlOHjZu5H/ktFr+RaCvOJ2kmIUUNt/jajDQ6yPE3bvk9KTT0Viu1VKa9ILK\nmjX816nX00pHLJ4cG7ZMBmzfDsyZQ4al1q3JAPjbb763abHQ75IVp5PKZWUmMpK/EqhWm7tw59RU\nYQfOBw+Ev7dsGb9zsExGzr+BQi4no2qbNvw1twKNSuWzw2ydOsKX5EtR2tzStSttU2QVX6kku7pY\ncBzZ1rMmU1KpKDcLX24Uo5Fs6kKEh5MN+Phx2mKKj6fqdAWVF1+kfYXMZd60Wiol16hR/slR8BR2\nairwyy8UhLFtW87JhzKjVFLgxv79tGE3eHDevNc7d+bvX6ejJzgzdetSzszMb7BMRt70L7/sfZ9N\nmvArfp2OkkkIkZHBH/jBmG+7YBI58uqrnkpMqaTNuaZN/d+/SkVZ/55+mhSJRkPF7v/+W/xkUD/+\nSJuMBgP1YzBQqdPx4+kRz4peDzRsmHO7tWrR3Co4WFx5xUappCCmMWNIcVetSrUtt2zJvsSq6Ig3\nmfd+Wi/ImTO0UeWyBRsMjD3zTP675WXm229pvSaXP86VMXw4fw0ns5k2P0uWpLVer16+bbC5nFRd\nhkG9nu5DdiaFqCh+G7pa/diR9+JFcrdbu9Z/5gmnk7FDhyhoadUq//UTF0cFELp2ZWzSpIBVHjp5\nkrEGDcgeq1TSTx4IX+L4eApZ92fJ0ZQUKvbUoQNty1itZPGqX9/dlq5W0z3Jp/ioIkXhsmHXrs2/\naTd5sj/E9J5Tp6jg7Ztvki02PwrxnjxJHiAvvsjYkiWUyCI7nE4qzutKwiSXk9L/9lv67PXXaeBx\nebwUL059iInVSgpUryfjZlAQVbKNjhb3np0/T14yLi3hqu2ZU14VP5KaWjBN9GIRHU3u/pnnUnXq\nMPbwIV372LHkMRMRQa+Kv3zBizqFR2HHxvJHxgGMVarkDzGLHq4kTG+/TTP906fp+Lp1/LPvsmXF\nrZck5Dah19MAotHQoPLwYd76adPG04uG4+i4hF945hnPW65WM/bBB761l5JCAT9t2zI2YoT4c4fC\nSuFR2HFxwj5KVar4Q8wnhw4dhN0ZxAzdzy5da+a3vFGjvM24hXzMhEL0JfJEcrKwl0hERO7bS0oi\nz1WXUxPHkfUvMpKx1avzZwFbUCk8XiIREbSLkdWCr9VK9Y/yitCmo0wm7oYk32Ypnyznz2efYTAn\nhCIyC6IXShGA4/idpQDf9vS/+YaSI7ocrRij/fKzZ+lVl153YQqOwgYorWjJkrQFrVDQv88+SzUP\nJXxn8GD+fJwcJ265kqFDvQ9vv3DB935GjvRUzhqN9Kb7iWLF6DHJqpxdFW9yy+bNwvMEkwlYs8b3\njA5FnYKlsGvWpNJYCxdS8bstW4B//pFmTnll5Ega+FzFc1UqUuDLl4tbM2nMGHJvdPWTXaluoTLf\n3jBjBtCyJQ0OwcH0b4sWwMyZvrcpkS3LlgGlS1MOb9dcqn59YNKk3LdVokT2nzud5Joo4YnPNR39\nhlZLM0IJ8VCp6A3Ytg346y+gVClgxAhxa0YC9NsdOkT9HDhAq6WZM6n6rMtHXK2mIKO8RBtotXQd\nFy7QX61a9CfhNypVotKpf/xBiaCefppioXzxQR4zhuofCtXKViqpJqOEJxxjQtYpYZxOJ6ZMmYJL\nly5BpVJh2rRpqJDp5Y+NjUW7du2wZ88elCtXTlSBJQoZ169Twd9du0hZDxlCs+FvvqFUd888A0yf\n7l2UhUS+YLeTMg0O9k9QCGMUd7ZxI//nISH0aPAF5BR1ctKdPplEdu/eDavVitWrV2Ps2LGYPn16\nngWVKKJUrgz8+SfloExPp3X0668DZ85QebedOymVwKlTPjUfHU2BsX/84XvZLgnCbqfw8JAQyoD7\n1FPA+vXi93PyJC2QsiKTUcj6zp1PprL2Bp9MIidOnECLFi0AAA0aNMC5c+dEFUqiiGKzARMn0s5S\nZsxmSkWQi5wnTicwfDgpFI6jlCVaLW151KwpstxPCO+/D/z66+Of584d2lQsUYLMH2Lx3XeUSSEr\nSiWwZ0/etjeKOj7NsNPT02FwbSwBkMvlsHvj0iXxZHP3Ln+2d8aAY8dy1dTvv9OS2mwmBZOWBiQm\nUpKe3Bv5JNLTgUWLPMdSkwmYOlXcvm7c4E97o9FkXx9EwkeFbTAYYMy0Y+B0OqHIziNAQgKgnaQs\n2jQVQXgdCxCceA06HTBgABAXl3NTCxZ4bloxBty+7V5lXCJn4uNpj5ivsg4AXLsmbn/t2/M7flks\nQIMG4vZV1PBJYT/99NPYt28fAODUqVOoXr26qEIVKNLSgKtXpYx3YqDTAaNGPfIJZwBaIwpLMBxp\nTj3MZjJxNGrkOdPLCt+SGiA7qNBnEu48eAB06gRUrAj07cvvtcFx5BEiJu+8Q3byzJkO9Xpg3Lic\nXf6edHxS2B06dIBKpcLAgQPx9ddfY8KECWLLlT1WKz1t/lz7Wq20OVaqFA37YWFUME8ib8yeTelm\ntVpEKTviCqrDisfTLYeDvABXr86+mcGD+WN09HpyBZfImV69gKgomosIudhptcDnn4vbb2go7TGP\nHk2paBs1InOM2P0USQIRD+8zGRmUdU6joeQG5csztnWruH24eOstzwouOh2lDJXIOxkZbO6XD5lG\n4+TNUfHOO9l/3WikiiWuKiBqtXsVNYnsuX5duK6iXk+JFtu0ETfVjETO5KQ7C5fheeRIYNOmx2ve\nW7coqf/ff+euqktOZGQAixd7VpUxmaiU9YAB4vX1pKJWo/qzaiiVniYMvZ6quWSHTgccPkwbj3v2\nAOXK0eMhuf17x927FE+V9REHgBo1qBqMRMGj8CjsxERgwwZPW7LZDHz9NSlysUhNFTa33L0rXj9P\nOO3bA2XL0qaWy3lEJiNl7E2wqzL9Afo3M6F/vzL5XPaj8BMZye+3rlLR7yJRMClYuUSyIzbWvaCa\nC8aAy5fF7Ss0lL9mEcfxz+TNZuDhQ3Fl8CeXL1PNp99+C6jcsrt3sP+7Y3ixqxUKBXkptGtHM+eg\noGy+mJhIu2UREVSrqXJlcsB+Arl0CejZkzbxKlYEfviB32UuK0FB5PqeOSeYUkntfPCB+7mM0SL2\n++8pBio3VfskRCYQdhifSE3lL3Agl1MGdLFZtsw9Gb+rPNipU4/PSUpirGdPsqcrFIzVq1ewjX5O\nJ2Wc12joz/B/7d19TNR1HAfw9wHycBx50qzVSkKWk2rkaMNyI2iGEotSxwmI15w9YbQgFQnaGDM8\nZY7VpERii5yaOcKa08WiR7TcrQcobRCTppuz3EmZQcBxx7c/vhFPp9wdv7vf/eD92m5yB8fvAx6f\n+/2+D5+PQf5Mn3/u3zj6+oR48kkZw9y5QoSHC+fmrcIxNDz+a+rrhTCbhXj1VSFqaoTYs0e2kbv/\nfvn7nji/0N3t359DZRcuyI7jYxsL6PWyf4W7jh4VYtkyWXK+oGC0m9yIv/4anSsIC5Nj23FxsiUZ\nKU87DQzcUVY2OYkaDEJ0dSl7nBGffCJEcrIQd9whxJo1Qpw5M/q54WHZuG7OnPGJIypq8qs+ULS0\nuO48M3fu1C3IlLRhw+Q3X71eiNpa+fmeHtllaGKsoaEya0xM1oD8f/C2/YlGvfji5JffSFc9m02Z\nY7zwwuS+IiEhQmRmKvP9aTztNDBwR2WlXBYWFyev3R57TFaHu/tu3xwvLQ1obZW7MZqaxq8Xs1rl\n+uyJO/fsdlkeNhA1NLhevyWE7DLvDwMDwOHDk2ca//kHqK6WH2/fLvdFT4zVbpdzGK521Q4Nzbod\nM6dPu944GhYGdHYqc4z33ps8beRwAB9/7F6/ClKWdiYdATmG/Nxz8qa2X391PdE1ODi94vy+dKPq\nSK7+8n2hr+/6E7o9PfLfpibPKzlFRAApKdOLTWPi44G2tslj1oODylXOvd549UiXGHedPw8cPy7f\nTFavZvlUb2nrDDuQLFni+hRDrweWLfN/PO7Iy3NdBs3hULa6z41ER8vJwol0OiA1VX7sTsOKse1P\n5swB5s0DnnlGkRC1orjYdeOdFStkpT0lrFo1uQ9FUJDsH+Fu7wuLRb65FBfLWtgLFsgFX+Q5Jmxv\n3XOPHDIZu90uJESuLgnUVlVPPAFkZIwm7dBQGX9Dw2iXGF/T6WQhEL1+9Aplzhy5bGHnTnn/+edv\n3GpMrwdycuSC4dtvlzsnf/hBDpPNIgkJsqxsXJz8FYaHA7m5csRJKbt3y6WXIy+PyEjZl6K+3r3n\nt7XJkcyBAXnr65OLqtavl5uVyTPaGhIJNI2Nsvh+XZ18FT7+uLwfqIkjKEju+W5tlden8+bJBc93\n3eXfONLTgZMnZauvri7goYeAkpLR6/iiIuCbb4DmZnndPXYQ1WCQX//uu+OLUcxSy5fLoftr1+R7\nnJId3wDZFqyzU77U29rkmXJOzhTLLsdwNQYOyCWcx4/LNqDkPibs6QgNBcrL5U0rdDo51qv2eG9i\n4vULhoSEyGvmn3+WZVf1etmf6soVuasjLc27dt0zlE7n23OE8HCZWL1JrkNDrqcshOCkpTeYsClw\n3Xvv1HvUKaCZTHL4ZGL1RadTjs6RZ3iaQkQ+s2zZaEXdoCA5ihURIVfn3nqr2tFpD8+wichndDqg\npkYOp3z4oUzWubm+2zox0zFhE5HPJSXJG00Ph0SIiDSCCZtoFvjuOyAzE4iNlcvxWe9am6aVsFta\nWrBlyxalYiEiH/jqK7mK88SJ0S3iDz88ayvSaprXCbuyshLV1dUY9qSgABH5XWGhXFY3sh5aCHm/\nsFDduMhzXifsxMREVFRUKBgKEfnCmTOePU6Ba8pVIo2Njdi/f/+4xywWCzIyMmC1Wn0WGBEpY968\n0UKIY0VH+z8Wmp4pE7bJZILJZPJHLETkA5s3Azt2jN9tqNcDnH7SHq7DJprhXnlFnmHX1soyLQ4H\nsGkTsG2b2pGRp5iwiWa4oCDZzKeiQvayvvNO/1XTJWVNK2EvXboUS111ESeigBMVJcujknZx4wwR\nkUYwYRMRaQQTNhGRRjBhExFpBBM2EZFGMGETEWkEEzYRkUYwYRMRaQQTNhGRRjBhExFpBBM2EZFG\nMGETEWkEEzYRkUYwYRMRaQQTNhGRRrCBAVGAEwL48kugs1PWs05JAXQ6taMiNTBhEwWwq1eB1FSg\nuxtwOoHgYCAuTiZwo1Ht6MjfvBoS+fvvv5Gfn4/169cjOzsbbW1tSsdFRACKioCODqC3F+jvl/92\ndAAvv6x2ZKQGrxJ2Q0MDHnzwQRw8eBA7d+7E9u3blY6LiAAcOQLY7eMfs9vl4zT7eDUksmHDBoSG\nhgIAnE4nwsLCFA2KiCSHw/XjQ0P+jYMCw5QJu7GxEfv37x/3mMViQUJCAmw2G4qLi1FWVuazAIlm\ns5UrgeZmOX49IjgYSE9XLyZSz5QJ22QywWQyTXr8l19+webNm7Ft2zYkJSX5JDii2e6tt4CkJKCv\nT94iI+XtzTfVjozU4NWQyLlz51BYWIg33ngDixcvVjomIvpPTAxw7hxw6BDw009AQgKQlwdERakd\nGanBq4RdXV0Nu92OHTt2AAAMBgNqa2sVDYyIpKgoID9f7SgoEHiVsJmciYj8j1vTiYg0ggmbiEgj\nmLCJiDTCJ7VEnP8tGv3999998e2JiGakkZzpHLvwfgyfJGybzQYAyMvL88W3JyKa0Ww2G2JiYiY9\nrhNCCKUPNjAwgLNnz2L+/PkIDg5W+tsTEc1ITqcTNpsN9913H8LDwyd93icJm4iIlMdJRyIijfBL\nwm5pacGWLVv8cahpGx4eRnl5ObKzs2E2m3HhwgW1Q/LIjz/+CLPZrHYYHhkaGkJxcTHWrVuHrKws\nfPbZZ2qH5Dan04nS0lLk5OQgNzcXXV1daofkkZ6eHqSkpKC7u1vtUDyyevVqmM1mmM1mlJaWqh2O\nR+rq6pCdnY01a9agsbHRo+f6vONMZWUlTp06hfj4eF8fShGffvop7HY7jhw5gvb2duzatUszOzvr\n6+tx7NgxREREqB2KR44dOwaj0Yjdu3fj6tWrWLVqFZYvX652WG754osvAADvv/8+rFYrXn/9dc28\nXoaGhlBeXu5yrDSQDQ4OQgiBAwcOqB2Kx6xWK9ra2nD48GH09/fjnXfe8ej5Pj/DTkxMREVFha8P\no5jvv/8eycnJAIAlS5bg7NmzKkfkvgULFqCmpkbtMDyWnp6OwsJCAIAQQlMT1Y8++ihee+01AMCl\nS5dw0003qRyR+6qqqpCTk4NbbrlF7VA80tnZif7+fmzcuBFPPfUU2tvb1Q7JbadOncKiRYtQUFCA\n/Px8pKamevR8xc6wr1c3OyMjA1arVanD+Fxvby8MBsP/94ODg+FwOBASEvjtL1euXImLFy+qHYbH\nIiMjAcjf/UsvvYSioiKVI/JMSEgISkpK0NLSgj179qgdjluOHj2K6OhoJCcn4+2331Y7HI+Eh4fj\n6aefhslkwvnz5/Hss8+iublZE3+jf/75Jy5duoR9+/bh4sWL2LRpE5qbm6Fzs6uyYj/h9epma43B\nYEBfX9//94eHhzXxQtC63377DQUFBVi3bh0yMzPVDsdjVVVV2Lp1K9auXYsTJ05Ar9erHdINNTU1\nQafT4fTp0+jo6EBJSQlqa2sxf/58tUObUmxsLGJiYqDT6RAbGwuj0QibzYbbbrtN7dCmZDQasXDh\nQoSGhmLhwoUICwvDH3/8gZtvvtmt53OVyASJiYlobW0FALS3t2PRokUqRzTzXblyBRs3bkRxcTGy\nsrLUDscjH330Eerq6gAAERER0Ol0CAoK/D+rQ4cO4eDBgzhw4ADi4+NRVVWliWQNAB988AF27doF\nALh8+TJ6e3s1E/sDDzyAkydPQgiBy5cvo7+/H0aj0e3n89RxgrS0NHz99dfIycmBEAIWi0XtkGa8\nffv24dq1a9i7dy/27t0LQE6gamEybMWKFSgtLUVeXh4cDgfKyso0EbeWZWVlobS0FLm5udDpdLBY\nLJq5Cn7kkUfw7bffIisrC0IIlJeXezRnw40zREQaEfjXbkREBIAJm4hIM5iwiYg0ggmbiEgjmLCJ\niDSCCZuISCOYsImINIIJm4hII/4F3FhzEuOhM3MAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.scatter(mydata['x'], mydata['y'], c=mydata['group']);" ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "collapsed": false }, "outputs": [], "source": [ "from sklearn.svm import SVC\n", "from sklearn.neighbors import KNeighborsClassifier\n", "\n", "svm = SVC()\n", "svm.fit(mydata[['x','y']], mydata['group'])\n", "svm_predict = svm.predict(mydata[['x','y']])\n", "\n", "knc = KNeighborsClassifier()\n", "knc.fit(mydata[['x','y']], mydata['group'])\n", "knc_predict = knc.predict(mydata[['x','y']])" ] }, { "cell_type": "code", "execution_count": 36, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "9" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mydata['svm'] = svm_predict\n", "mydata['knc'] = knc_predict\n", "mydata['difference'] = svm_predict!=knc_predict\n", "sum(mydata.difference)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Errors for SVM; points in circles are errors, with the circle color showing the prediction" ] }, { "cell_type": "code", "execution_count": 37, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots()\n", "ax.scatter(mydata['x'], mydata['y'], c=mydata['group'], s=25)\n", "ax.scatter(mydata.loc[mydata.svm!=mydata.group,'x'], \n", " mydata.loc[mydata.svm!=mydata.group,'y'], \n", " facecolors='none', \n", " edgecolors=mydata.loc[mydata.svm!=mydata.group,'svm'],\n", " s=110);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Errors for K Nearest Neighbors; points in circles are errors, with the circle color showing the prediction" ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots()\n", "ax.scatter(mydata['x'], mydata['y'], c=mydata['group'], s=25)\n", "ax.scatter(mydata.loc[mydata.knc!=mydata.group,'x'], \n", " mydata.loc[mydata.knc!=mydata.group,'y'], \n", " facecolors='none', \n", " edgecolors=mydata.loc[mydata.knc!=mydata.group,'knc'],\n", " s=110);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Differences in classification between methods:" ] }, { "cell_type": "code", "execution_count": 39, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nMXDoEFPcMhlz0o0cCXz8saslSxt3d66ss0CD4g1wZtAZRI6PxKmBp1BQXTCpIYFapkaNwjXQpEQT\n+05+8CDrj5YvH9C+PfD4sQMl5+R2ZDJmc82bx1TMTz8B587l/Mc551jYAHvlXbnCYpbc3AB5zqhT\nwXE++dzy4dpn17Dk4hJcfX4VLUq3QFDVIPvKmV65wmqrmmvb7N/PCoM/esSeVA4HzCYcMoR9cgs5\nx8JOiacnV9bvIF5uXhjfcDzWdluLge8NtL+w1KJFwlqrcXHA4cOOEZRjlcREYNQoVs7W358l9GRH\nmNzJk0DXrkCrVsDGjTk/NC8r5CwLm8NxBBoNYLKSOclDL+0iMZFF2hYsmH4zjI8/BnbuTL7MkyYx\nT+ewYc6Tbc8e4KOPkidTp04BN24A06Y5b0xXkjMtbA4nK/zvf5a1Vs04qrnlOwIRMHUqiwUoUQIo\nUwa4eNH6vrGxLGIl5TtRowGCg50r48SJycoaYDELP/2Ud9/NXGFz8h7Nm7PKSB4ezGddqhTw998s\n6ohjM1u3MuWXkMCibh8+ZO+81PHLgLD5sxlr+zqS58+tj3nihHPHdRVcYXNyJJcvX8ZPP/2EGTNm\nYP369UjIbDz+8OGswMbLlyxrtm5d5wiah1m+nFmsKTEamc84Nd7eQO3aLDXBjFLp/CCv1q2F68gm\nE9CpE4v6yGtwhc2xn8hItrI0bRrrepseRiMwfz4L26xfn7U0t8K1a9dQv359dOrUCWFhYYiJiUFw\ncDAKFCiADz/8EIcPHwbZuqoklbK6NLxxrl14eAgvncmU9kRl61b205rz30wm9s50ppU9bx6Ln05N\nQgJLLspzkBMICwujgIAACgsLc8bpncepU0StWxNVqkQ0ZQqRRpN9Y5tMRA8eED1/nn1jZoVbt4jy\n5SNycyOSSIiUSqIlS9Le//PPiVQqIuYaZf+/fr3FLlevXiVfX1/6448/SK/X0+bNm6lUqVJUq1Yt\n+uSTT6hQoUKUP39+CgwMpH379gmGuHnzJo0YMYKqVKlCgYGB1K5dO9qxYwfp9XpHf3uXcuYMUb16\nRD4+RB9+SHTvnm3HGQxEe/cSzZ1LdPo0u+XS4/Rpy59MKiUKDEz/uCVLkvc3f957z/bvZg9nz1rK\naf5Ur+7ccZ1BRrqTK2wz585Z/upubkQtWmTP2PfvsydBqSRSKIjatyeKj8+ese2lfXsikcjyCXF3\n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\npk3Skg4MlFNwq1W+hz2d2mUyASNGMFn3xqxZ7s+bw+HbVjVdHWO1sA8ccN81xmyWrUOvtnZjV9On\ny8z+jlPQHA5g8mRtjzPI3XuvfDcWF0u/aWqqlGLqUXU1sG0bcP68jC1MnerrUPutM2fk5G/4cCA+\n3vO90laulJ6+qqr2fuuiIm7J0q/psQl3r61c2XkT/raN6y9e1PY4Skmllrg4qWgSEiLltgoK3G93\n6pRSublKrVun1I8/ah+H1i5eVGrJEqkGHx0tJUL0UFOjVHq6lFzLz1eqocH9Ni6XVPrpWnHo4EF5\nTQIDpfxJcHD3r80gsHu3vDVDQqSgwE03eVdUwOVSav9+pWw2pWpru7/N0aNKTZ8uZcAmTlSqvFyb\n2MmdsSrO9KS2VqkbbpB3psUiybqoSNtjdORyybvzrbeU+u03979XVEhCN5ulyorVKp+g/mzqVIm3\nY0WYPXv6NobaWqUiItq/fC0WpWJjpQRJm+++U2rMGLmN1Sp1PocOlTJn06a5VyayWrtP+gNYQ4N7\nFRizWamMDO2O0dgoL5XJ1Pktc+yYdsegdgOr4sywYbIc6vXXgRdflNGqZct8dzyTSYbK09JkJKar\nVatkMNLhkK4au13OM7vb7Lc/OHVKNl3quNtOU5M8l31p61bZza9t1Utzs7yuX38tl+vrZdSrulpu\nY7fLrJ3z52Vp47597o/p5yd9A4PI4cPus0wdDm2X6H/6qTxmx0owDgewfbt2xyDPGasPG5BtQefP\n1zsKceSI+3VtVVXCw/s+np40N3c/2bXrUnFfO3HCfUBXqfb9RD7//L9HHdsmCPv7d/5iDAyUzSgG\nkTFj3J9GPz+ZjaqVtvH9jlyuvn/LkDBWC7u/mTDBPbGEh/duV/e+MG4cMHJk56QdHAwsXdq3ccya\nJatcOnI6gWnT5PcuS9fdBAXJIPO110qRBKtV5uZ3t0HFADZsGPD44+1PpdksT4eWs1wfflgSdEcW\ni3c76rW0yC58w4dLvYm8PPfHJA/p0Q8zYBw+rFRYmIz4WK3yU1Kid1RXdvKk9BcHBkrf8apVnfuO\n+4LTqdTChXL8IUOUCgpSauPG9r83Nys1fLhSfn7ufdUmk1KjRinV1CTV2N98879HywYBl0upTz5R\natEipZ5+WilffOTKypS6/nrpHw8NVeqNN7y7//LlnYvcBwcrlZOjfZwDQU+506SU9nWKa2pqEB8f\n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\nP5lGAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots()\n", "ax.scatter(mydata['x'], mydata['y'], c=mydata['group'], s=25)\n", "ax.scatter(mydata.loc[mydata.difference,'x'], \n", " mydata.loc[mydata.difference,'y'], \n", " facecolors='none', edgecolors='black',\n", " s=110);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercise: Exploring Classification Model Parameters\n", "\n", "Using the supplied data, explore how well a `KNeighborsClassifier` model fits as a function of the number of neighbors used for the classification, from 1 to 10. Use 10 fold cross-validation to assess the accuracy at each number of neighbors. Plot the results, showing mean accuracy with confidence intervals.\n", "\n", "Does the number of neighbors matter? How sure are you?\n", "\n", "Hint: You can write a loop to do this, or you can use `GridSearchCV`." ] }, { "cell_type": "code", "execution_count": 40, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "np.random.seed(50)\n", "nsamp = 100\n", "A = np.random.multivariate_normal([1,1], np.array([[1,.1],[.1,1]]), nsamp)\n", "B = np.random.multivariate_normal([3,1], np.array([[1,.1],[.1,1]]), nsamp)\n", "C = np.random.multivariate_normal([2,3], np.array([[1,.1],[.1,1]]), nsamp)\n", "pts = np.vstack([A,B,C])\n", "mydata = pd.DataFrame({\"x\":pts[:,0], \"y\":pts[:,1], \n", " \"group\":['red']*nsamp+['blue']*nsamp+['green']*nsamp})\n", "plt.scatter(mydata['x'], mydata['y'], c=mydata['group']);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Loop Implementation" ] }, { "cell_type": "code", "execution_count": 41, "metadata": { "collapsed": false }, "outputs": [], "source": [ "from sklearn.neighbors import KNeighborsClassifier\n", "from sklearn.model_selection import cross_val_score\n", "\n", "results = pd.DataFrame({'neighbors':[x for x in range(1,11)],\n", " 'mean':0,\n", " 'sd':0})\n", "\n", "for i in range(1,11):\n", " knc = KNeighborsClassifier(n_neighbors=i)\n", " scores = cross_val_score(knc, \n", " mydata[['x','y']],\n", " mydata['group'], \n", " cv=10) \n", " results.loc[i-1,\"mean\"] = scores.mean()\n", " results.loc[i-1, \"sd\"] = scores.std()" ] }, { "cell_type": "code", "execution_count": 42, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots()\n", "ax.errorbar([x for x in range(1,11)], results[\"mean\"],\n", " 2*results[\"sd\"]);\n", "ax.set_ylabel(\"Prediction Accuracy\")\n", "ax.set_xlabel(\"Number of Neighbors\");" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Grid Search Implementation" ] }, { "cell_type": "code", "execution_count": 43, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "GridSearchCV(cv=10, error_score='raise',\n", " estimator=KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski',\n", " metric_params=None, n_jobs=1, n_neighbors=5, p=2,\n", " weights='uniform'),\n", " fit_params={}, iid=True, n_jobs=1,\n", " param_grid={'n_neighbors': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]},\n", " pre_dispatch='2*n_jobs', refit=True, return_train_score=True,\n", " scoring=None, verbose=0)" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sklearn.neighbors import KNeighborsClassifier\n", "from sklearn.model_selection import GridSearchCV\n", "\n", "neighbors=[x for x in range(1,11)] # list 1...10\n", "grid = GridSearchCV(estimator=KNeighborsClassifier(), \n", " param_grid=dict(n_neighbors=neighbors), # param to search over\n", " cv=10) # cross-validation\n", "grid.fit(mydata[['x','y']], mydata['group'])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Print some information about the search:" ] }, { "cell_type": "code", "execution_count": 44, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.8\n", "7\n" ] } ], "source": [ "print(grid.best_score_) # best mean\n", "print(grid.best_estimator_.n_neighbors)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Get values for plotting" ] }, { "cell_type": "code", "execution_count": 45, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.733 (+/-0.099) for {'n_neighbors': 1}\n", "0.713 (+/-0.108) for {'n_neighbors': 2}\n", "0.780 (+/-0.131) for {'n_neighbors': 3}\n", "0.777 (+/-0.146) for {'n_neighbors': 4}\n", "0.793 (+/-0.148) for {'n_neighbors': 5}\n", "0.780 (+/-0.158) for {'n_neighbors': 6}\n", "0.800 (+/-0.149) for {'n_neighbors': 7}\n", "0.780 (+/-0.124) for {'n_neighbors': 8}\n", "0.783 (+/-0.161) for {'n_neighbors': 9}\n", "0.780 (+/-0.161) for {'n_neighbors': 10}\n" ] } ], "source": [ "means = grid.cv_results_['mean_test_score']\n", "stds = grid.cv_results_['std_test_score']\n", "\n", "# print to take a look\n", "for mean, std, params in zip(means, stds, grid.cv_results_['params']):\n", " print(\"%0.3f (+/-%0.03f) for %r\"\n", " % (mean, std * 2, params))" ] }, { "cell_type": "code", "execution_count": 46, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots()\n", "ax.errorbar([x for x in range(1,11)], means,\n", " 2*stds);\n", "ax.set_ylabel(\"Prediction Accuracy\")\n", "ax.set_xlabel(\"Number of Neighbors\");" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercise: Predicting Material Properties\n", "\n", "In this exercise, you will build and evaluate a linear model to predict a material property, namely band gap. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Electronic band gap is a materials property which can be described as the energy difference between top of the electronic valence and bottom of the conduction bands. Consequently, band gap primarily affects electrical conductivity and optical properties of materials. A general rule: As the band gap increases, electronic conductivity decreases. \n", "\n", "In this exercise you will train a linear model to predict electronic band gap of materials. The training set for this task contains the band gaps of 4096 binary compounds (AxBy), e.g. $H_2 O$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This example is adapted from [Citrine.io](https://citrine.io/2015/03/17/machine-learning-for-the-materials-scientist-feature-engineering-model-building/)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Some set-up code is provided. `bandgapDFT.csv` is in the repository (download it first if you haven't already)." ] }, { "cell_type": "code", "execution_count": 47, "metadata": { "collapsed": false }, "outputs": [], "source": [ "from numpy import mean\n", "from sklearn import linear_model, metrics, ensemble\n", "from sklearn.model_selection import cross_val_score, ShuffleSplit\n", "import json\n", "\n", "trainFile = open(\"bandgapDFT.csv\",\"r\").readlines()\n", "\n", "# Initialize dictionary and list variables for the rest of the example\n", "atomicnumbers = dict()\n", "bandgaps = []\n", "features = []\n", "\n", "for line in trainFile:\n", " split = str.split(line, ',')\n", " bandgaps.append(float(split[1])) #store numerical values of band gaps" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The `feature_vectors.txt` (in the repository) contains the vectorized composition of the all the compounds whose band gaps are given in `bandgapDFT.csv`. For instace, let's define $BeH_2$ as a linear combination of compositions of the first 100 elements in the periodic table:\n", "\n", "\n", "$BeH_2$ = (0.66666 H + 0.0 He + 0.0 Li + 0.33333 Be + 0.0 B + 0.0 C + 0.0 N + 0.0 O + 0.0 F + ... )\n", "\n", "The corresponding list for the given linear combination is shown below:\n", "\n", "[0.6666666666666666, 0.0, 0.0, 0.3333333333333333, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]\n", "\n", "where each number corresponds to the abundance of each element respectively in the list below \n", "\n", "['H', 'He', 'Li', 'Be', 'B', 'C', 'N', 'O', 'F', 'Ne', 'Na', 'Mg', 'Al', 'Si', 'P', 'S', 'Cl', 'Ar', 'K', 'Ca', 'Sc', 'Ti', 'V', 'Cr', 'Mn', 'Fe', 'Co', 'Ni', 'Cu', 'Zn', 'Ga', 'Ge', 'As', 'Se', 'Br', 'Kr', 'Rb', 'Sr', 'Y', 'Zr', 'Nb', 'Mo', 'Tc', 'Ru', 'Rh', 'Pd', 'Ag', 'Cd', 'In', 'Sn', 'Sb', 'Te', 'I', 'Xe', 'Cs', 'Ba', 'La', 'Ce', 'Pr', 'Nd', 'Pm', 'Sm', 'Eu', 'Gd', 'Tb', 'Dy', 'Ho', 'Er', 'Tm', 'Yb', 'Lu', 'Hf', 'Ta', 'W', 'Re', 'Os', 'Ir', 'Pt', 'Au', 'Hg', 'Tl', 'Pb', 'Bi', 'Po', 'At', 'Rn', 'Fr', 'Ra', 'Ac', 'Th', 'Pa', 'U', 'Np', 'Pu', 'Am', 'Cm', 'Bk', 'Cf', 'Es', 'Fm']" ] }, { "cell_type": "code", "execution_count": 48, "metadata": { "collapsed": false }, "outputs": [], "source": [ "with open(\"feature_vectors.txt\",\"r\") as fp: \n", " features=json.load(fp)\n", "\n", "# atomic_numbers.txt\"contains the names and atomic \n", "# numbers of the first 100 elements in the periodic table\n", "with open(\"atomic_numbers.txt\",\"r\") as fp:\n", " atomicnumbers=json.load(fp)\n", " \n", "co2 = [0.0, 0.0, 0.0, 0.0, 0.0, 0.33333333, 0.0, 0.66666666, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]\n", "alna = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5, 0.0, 0.5, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We now have a (naive) way of converting each material in our training set into a vector for our machine learning model to crunch, and equivalently we can express any new chemical formula with this representation for the purposes of making predictions. Time for the fun part!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "From this point forward, we have everything we need to train and evaluate a regression model for material band gaps.\n", "\n", "1) First determine a baseline accuracy by calculating the mean absolute error of band gaps. This is the error corresponding to always guessing the average of the band gaps for a material. A good model should have a lower error than this.\n", "\n", "2) Use a linear ridge regression model to model band gaps using our feature set (i.e. the composition vector):\n", "\n", "* Set the alpha parameter of the ridge regression model (a paramater to control size of the fitted coefficients) equal to 0.5\n", "\n", "* Define `ShuffleSplit` cross validation scheme for the band gaps. Use 10-fold cross validation with 0.1 test fraction.\n", "\n", "* Evaluate the cross validation score for your modes with the \"mean absolute error\" scoring scheme.\n", "\n", "* Look at the model coefficients to see if they make sense with what we know about the elements (use the `atomicnumbers` dict to help with labels and matching values).\n", "\n", "3) Finally use a Random Forest Regression model and calculate the mean absolute error score for this model. Use 10 trees in the forest.\n", "\n", "* Using the Random Forest model, predict the band gap for $CO_2$ (expect a high value, non-conductive gas) and AlNa (expect a low value, conductive metal). There are variables defined for these above." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Solution**" ] }, { "cell_type": "code", "execution_count": 49, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The mean absolute error (MAE) of always guessing the average band gap is: 0.728 eV\n" ] } ], "source": [ "baselineError = mean(abs(mean(bandgaps) - bandgaps))\n", "print(\"The mean absolute error (MAE) of always guessing the average band gap is: \" + \n", " str(round(baselineError, 3)) + \" eV\")" ] }, { "cell_type": "code", "execution_count": 50, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The MAE of the linear ridge regression band gap model using the naive feature set is: 0.47 eV\n" ] } ], "source": [ "linear = linear_model.Ridge(alpha = 0.5)\n", "cv = ShuffleSplit(n_splits=10, test_size=0.1, random_state=0) ## setting random state just to keep consistent\n", "scores = cross_val_score(linear, features, bandgaps, cv=cv, scoring='neg_mean_absolute_error')\n", "print(\"The MAE of the linear ridge regression band gap model using the naive feature set is: \" +\n", " str(round(abs(mean(scores)), 3)) + \" eV\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Doing better than the baseline, so that's a step in the right direction.\n", "\n", "See if model coefficients make sense, since we (or at least the chemists among us) know something about different elements." ] }, { "cell_type": "code", "execution_count": 51, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "element: coefficient\n", "H: 1.87000918111\n", "He: 0.0\n", "Li: 0.471679018799\n", "Be: 0.243871876828\n", "B: 0.22915696116\n", "C: 0.35449422283\n", "N: 1.69078868432\n", "O: 2.28865291048\n", "F: 3.95035733949\n", "Ne: 0.0\n", "Na: 0.794273044946\n", "Mg: 0.0239525184542\n", "Al: -0.00267048056217\n", "Si: 0.282300385515\n", "P: 0.618296089354\n", "S: 1.24048466049\n", "Cl: 2.81918301294\n", "Ar: 0.0\n", "K: 1.09749347606\n", "Ca: 0.12033468392\n", "Sc: -0.409236168468\n", "Ti: -0.675957059589\n", "V: -0.704965141051\n", "Cr: -0.771816472891\n", "Mn: -0.514374807699\n", "Fe: -0.431688681554\n", "Co: -0.374220544877\n", "Ni: -0.289724992866\n", "Cu: -0.386990847414\n", "Zn: -0.134767025101\n", "Ga: -0.0725382805727\n", "Ge: -0.00513072046577\n", "As: 0.349421293638\n", "Se: 0.643767050081\n", "Br: 2.38142382545\n", "Kr: -0.0871269683031\n", "Rb: 0.787731518215\n", "Sr: 0.155215849743\n", "Y: -0.265178169559\n", "Zr: -0.53793665989\n", "Nb: -0.933515300424\n", "Mo: -0.650034466386\n", "Tc: -0.482894971266\n", "Ru: -0.310915841206\n", "Rh: -0.318854065436\n", "Pd: -0.310607753782\n", "Ag: -0.514168117419\n", "Cd: -0.213668180038\n", "In: -0.190448308408\n", "Sn: -0.176635763929\n", "Sb: -0.0899143360915\n", "Te: 0.238347839337\n", "I: 2.00809063521\n", "Xe: -0.671963409249\n", "Cs: 1.00736318797\n", "Ba: 0.143666703275\n", "La: -0.340574509366\n", "Ce: -0.844700152971\n", "Pr: -0.344223084535\n", "Nd: -0.281635230134\n", "Pm: 0.0702321308612\n", "Sm: -0.287261521524\n", "Eu: -0.833880431748\n", "Gd: -0.602233290377\n", "Tb: -0.280812407194\n", "Dy: -0.326800353497\n", "Ho: -0.240896189605\n", "Er: -0.212874486417\n", "Tm: -0.13554243352\n", "Yb: 0.200013260172\n", "Lu: -0.176244656746\n", "Hf: -0.430315134845\n", "Ta: -0.705349830295\n", "W: -0.651878342926\n", "Re: -0.342127919289\n", "Os: -0.349523954803\n", "Ir: -0.196730776259\n", "Pt: -0.279382478721\n", "Au: -0.318049310557\n", "Hg: -0.333369589935\n", "Tl: -0.247587358459\n", "Pb: -0.259123854759\n", "Bi: -0.310843338783\n", "Po: 0.0\n", "At: 0.0\n", "Rn: 0.0\n", "Fr: 0.0\n", "Ra: 0.0\n", "Ac: 0.157557825911\n", "Th: -0.349686721319\n", "Pa: -1.04513381478\n", "U: -1.70796093009\n", "Np: -2.02837868606\n", "Pu: -1.24709486258\n", "Am: 0.0\n", "Cm: 0.0\n", "Bk: 0.0\n", "Cf: 0.0\n", "Es: 0.0\n", "Fm: 0.0\n" ] } ], "source": [ "linear.fit(features, bandgaps) # fit to the whole data set; we're not doing CV here\n", "print(\"element: coefficient\")\n", "for i in atomicnumbers.keys(): # coefficient labels\n", " print(i + ': ' + str(linear.coef_[atomicnumbers[i]-1]))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Examining these coefficients reveals a more or less expected result: electronegative elements such as O, Cl, and F tend to strongly increase a compound's band gap, whereas metallic elements such as V and Cr are generally associated with smaller band gaps." ] }, { "cell_type": "code", "execution_count": 52, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The MAE of the random forest regressor band gap model using the feature set is: 0.37 eV\n" ] } ], "source": [ "rfr = ensemble.RandomForestRegressor(n_estimators=10) #try 10 trees in the forest\n", "scores_rfr = cross_val_score(rfr, features, bandgaps, cv=cv, scoring='neg_mean_absolute_error')\n", "print(\"The MAE of the random forest regressor band gap model using the feature set is: \"+ \n", " str(round(abs(mean(scores_rfr)), 3)) + \" eV\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This is lower error than we had above." ] }, { "cell_type": "code", "execution_count": 53, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([ 2.90398069])" ] }, "execution_count": 53, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rfr.fit(features, bandgaps)\n", "rfr.predict(np.array(co2).reshape(1,-1))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Is this value high or low? Let's look at the distribution of predicted values for the data we trained the model with." ] }, { "cell_type": "code", "execution_count": 54, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "DescribeResult(nobs=4096, minmax=(0.0, 7.5265999999999993), mean=0.41742322333328696, variance=0.85469959940956408, skewness=2.961640901890959, kurtosis=9.82546627582959)" ] }, "execution_count": 54, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from scipy.stats import describe\n", "describe(rfr.predict(features))" ] }, { "cell_type": "code", "execution_count": 55, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([ 1.84615385e-05])" ] }, "execution_count": 55, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rfr.predict(np.array(alna).reshape(1,-1))" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (conda p3)", "language": "python", "name": "p3" }, "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.6.1" } }, "nbformat": 4, "nbformat_minor": 2 }