{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"preamble": true
},
"source": [
"(Defining latex commands: not to be shown...)\n",
"$$\n",
"\\newcommand{\\norm}[1]{\\left \\| #1 \\right \\|}\n",
"\\DeclareMathOperator{\\minimize}{minimize}\n",
"\\DeclareMathOperator{\\maximize}{maximize}\n",
"\\newcommand{\\real}{\\mathbb{R}}\n",
"\\newcommand{\\blasso}{\\beta^{\\mathrm{LASSO}}}\n",
"\\newcommand{\\bzero}{\\beta^0}\n",
"\\newcommand{\\bLS}{\\hat{\\beta}^{\\mathrm{LS}}}\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# LASSO and $\\ell_0$ estimator for orthonormal data (30 points)\n",
"\n",
"Let $X \\in \\real^{n \\times p}$ be your training input set, and $Y \\in \\real^n$ your training output.\n",
"In a linear model we predict $\\hat{y}(x) = x^T \\hat{\\beta}$ for some input $x \\in \\real^p$ and some constant $\\hat{\\beta} \\in \\real^p$.\n",
"The so-called $\\ell_0$-penalized estimator $\\bzero(\\lambda)$ tries to find a good $\\beta$ with relatively few non-zero entries. It is defined as:\n",
"\\begin{equation}\n",
" \\bzero(\\lambda) := \\mathrm{arg \\, min}_{\\beta} \\frac{1}{n} \\norm{Y - X \\beta}_2^2 + \\lambda \\norm{\\beta}_0 ,\n",
"\\end{equation}\n",
"where $\\norm{\\beta}_0 := \\sharp \\{j:\\beta_j \\neq 0\\}$ and $\\lambda > 0$.\n",
"Alternatively, the LASSO estimator $\\blasso(\\lambda)$ is defined as:\n",
"\\begin{equation}\n",
" \\blasso(\\lambda) := \\mathrm{arg \\, min}_{\\beta} \\frac{1}{n} \\norm{Y - X \\beta}_2^2 + \\lambda \\norm{\\beta}_1 ,\n",
"\\end{equation}\n",
"where $\\norm{\\beta}^2_2 := \\sum_{i=1}^p \\beta_i^2$, $\\norm{\\beta}_1 := \\sum_{i=1}^p |\\beta_i|$ and $\\lambda > 0$. \n",
"\n",
"There are in general no analytic formulae for $\\bzero(\\lambda)$ and $\\blasso(\\lambda)$. In practice, they are computed by numerical optimization.\n",
"However, we can compute an analytic expression in the special case of _orthogonal design_, where\n",
"\\begin{equation}\n",
" p=n \\quad \\mathrm{and} \\quad \\frac{1}{n} X^T X = I_{p \\times p} .\n",
"\\end{equation}\n",
"The goal of this exercise is to compute these formulae."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## $\\ell_0$-regularized estimator in the orthonormal design\n",
"\n",
"Let $g_{\\mathrm{hard}, \\lambda}$ be the function:\n",
"\\begin{equation}\n",
" g_{\\mathrm{hard}, \\lambda} : \\real \\rightarrow \\real , \\quad z \\rightarrow z \\, 1_{ \\{|z| > \\lambda\\} } ,\n",
"\\end{equation}\n",
"where $1_{ \\{|z| > \\lambda\\} } = 1$ if $|z| > \\lambda$ and $0$ otherwise.\n",
"Suppose we are in the orthonormal design.\n",
"\n",
"1. Plot $g_{\\mathrm{hard}, \\lambda}$ for $\\lambda = 1$.\n",
"2. Write down the analytical formulae for the least square estimator $\\bLS$. (Not needed for the subsequent calculations)\n",
"3. Prove that $\\bzero_j(\\lambda) = g_{\\mathrm{hard}, \\sqrt{\\lambda}}(z_j)$ where, again, $z_j := \\frac{1}{n}(X^T Y)_j$."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## LASSO estimator in the orthonormal design\n",
"\n",
"Let $g_{\\mathrm{soft}, \\lambda}$ be the function:\n",
"\\begin{equation}\n",
" g_{\\mathrm{soft}, \\lambda} : \\real \\rightarrow \\real , \\quad z \\rightarrow \\mathrm{sign}(z) \\, (|z| - \\lambda)_+ .\n",
"\\end{equation}\n",
"Suppose we are in the orthonormal design.\n",
"\n",
"1. Plot $g_{\\mathrm{soft}, \\lambda}$ for $\\lambda = 1$.\n",
"2. Prove that $\\blasso_j(\\lambda) = g_{\\mathrm{soft}, \\frac{\\lambda}{2}}(z_j)$, where $z_j := \\frac{1}{n}(X^T Y)_j$."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Application of LASSO on a gene data set (70 points)\n",
"\n",
"(This exercise is independent of the first one.)\n",
"\n",
"The goal of this exercise is to apply both ridge regression and LASSO on real data.\n",
"The data can be found on the homepage of the course, files _xtrain_xxxx.csv_ and _xtest_xxxx.csv_ , and comes from the paper <cite data-cite=\"Kemmeren2014\"> Kemmeren et al.</cite>.\n",
"It consists of the logarithm of the gene expression levels of yeast cells.\n",
"\n",
"More specifically, we consider two datasets corresponding to two different targets: say gene 4710 for the first and gene 3290 for the second.\n",
"In both cases, we would like to predict the gene expression levels of the target gene, given the gene expression levels of the other 6170 genes.\n",
"For each dataset, we are given a training set $X_\\mathrm{train} \\in \\real^{140 \\, \\times \\, 6170}$, $y_\\mathrm{train} \\in \\real^{140}$ consisting of 140 yeast cells, and a test set $X_\\mathrm{test} \\in \\real^{20 \\, \\times \\, 6170}$ with 20 cells. To evaluate the performance of our model, we also provide the target values $y_\\mathrm{test} \\in \\real^{20}$ of the test set.\n",
"\n",
"You are asked, to hand in:\n",
"\n",
"1. A printout of the code of the function _printOutput_, that you will have appropriately modified (see section [_The printOutput function_](#The-printOutput-function)).\n",
"2. Answer questions a. and b. of the section [_Linear regression with no regularizer_](#Linear-regression-with-no-regularizer).\n",
"3. A printout of all the lines marked _### CHANGE THIS LINE ###_. On the printout, all regressions should be done using a regularizing parameter $\\lambda$ that you will have optimized using 10-fold cross-validation on the training set. However, you do not need to hand in the printout of the lines corresponding to these cross-validations.\n",
"4. A printout of the output of all lines marked _### PROVIDE THE OUTPUT ###_.\n",
"5. The same printouts as for questions 3. and 4., but with target gene 3290 instead of 4710 (i.e. with the second dataset).\n",
"\n",
"_Hint_: For all the regression tasks, we recommend to use python functions of the type _linear_model.xxx(xxx)_, of the pacakge _sklearn_. The code asked to hand in should look pretty similar to the code of the section [_Linear regression with no regularizer_](#Linear-regression-with-no-regularizer). Cross-validation can be easily done using ipython functions of the type _linear_model.xxxCV(xxx)_. Do not hesitate to consult the documentation of these functions. Finally, note that, what we call $\\lambda$ corresponds to the parameter _alpha_ of the python functions."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##Loading the required packages."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"%matplotlib inline\n",
"from numpy import *\n",
"from scipy import *\n",
"from matplotlib import pyplot as plt\n",
"from sklearn import linear_model, cross_validation\n",
"from pandas import * # for easy import of data"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Target: gene 4710"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Loading the data"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"### CHANGE THE PATHS ###\n",
"Xtrain = read_csv(\"./GeneDataSet/Xtrain_4710.csv\", header = False)\n",
"Xtest = read_csv(\"./GeneDataSet/Xtest_4710.csv\", header = False)\n",
"ytrain = read_csv(\"./GeneDataSet/ytrain_4710.csv\", header = False, names = [\"gene\",\"y\"])\n",
"ytest = read_csv(\"./GeneDataSet/ytest_4710.csv\", header = False, names = [\"gene\",\"y\"])\n",
"\n",
"#Xtrain = read_csv(\"./GeneDataSet/Xtrain_3290.csv\", header = False)\n",
"#Xtest = read_csv(\"./GeneDataSet/Xtest_3290.csv\", header = False)\n",
"#ytrain = read_csv(\"./GeneDataSet/ytrain_3290.csv\", header = False, names = [\"gene\",\"y\"])\n",
"#ytest = read_csv(\"./GeneDataSet/ytest_3290.csv\", header = False, names = [\"gene\",\"y\"])\n",
"\n",
"Xtrain = Xtrain.drop(Xtrain.columns[[0]],axis = 1)\n",
"ytrain = squeeze(ytrain.drop(ytrain.columns[[0]],axis = 1))\n",
"Xtest = Xtest.drop(Xtest.columns[[0]],axis = 1)\n",
"ytest = squeeze(ytest.drop(ytest.columns[[0]],axis = 1))\n",
"\n",
"\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### The printOutput function\n",
"\n",
"The purpose of this function is to plot the regression weights, the predicted values yhat of y against ytest, the (number of the) gene with the strongest coefficient and the so-called _coefficient of determination_ $R^2$, defined as:\n",
"\\begin{equation}\n",
" R^2 := 1 - \\frac{\\sum_{(x_i,y_i) \\, \\in \\mathrm{\\, test \\ set}} (\\hat{y}(x_i) - y_i)^2}{\\sum_i (y_i - \\overline{y})^2},\n",
"\\end{equation}\n",
"where $\\overline{y}$ is the emperical mean of the $y_i$'s in the test set."
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"def printOutput(lm_, Xtest_, ytest_): # lm_ = instance of linear_model.xxx(xxx)\n",
" yhat = lm_.predict(Xtest_) ### CHANGE THIS LINE ###\n",
" plt.figure(1)\n",
" plt.title(\"Regression Weights\")\n",
" plt.plot(lm_.coef_.T)\n",
" plt.figure(2)\n",
" plt.title('yhat vs ytest')\n",
" plt.plot(ytest_, yhat, 'ro')\n",
" plt.show()\n",
" print 'R2 :', lm_.score(Xtest_,ytest_) ### CHANGE THIS LINE ### \n",
" print 'Gene with Strongest Coefficient :' , lm_.coef_.argmax() ,'Coefficient:', max(lm_.coef_) ### CHANGE THIS LINE ###\n",
" if hasattr(lm_, 'alpha'): print 'Used Lambda :', lm.alpha # if using linear_model.xxx\n",
" if hasattr(lm_, 'alpha_'): print 'Lambda_ResultOfCV :', lm.alpha_ # if using linear_model.xxxCV\n",
" print 'Regression Coefs :', lm_.coef_ # Can be printed out, if wanted\n",
" print 'Regression Intercept :', lm_.intercept_ # Can be printed out, if wanted"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Linear regression with no regularizer\n",
"\n",
"a. What should happen if you tried to apply linear regression without any regularizer on this data set? \n",
"It should find the best possible regression line with the smallest RSS\n",
"b. Does this happen with the function _linear_model.LinearReagression()_ ? yes"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": [
"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\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0x10ce7f7d0>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": [
"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\n",
"AElFTkSuQmCC\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0x10ce7f250>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"R2 : 0.893217083266\n",
"Gene with Strongest Coefficient : 250 Coefficient: 0.0194353693058\n",
"Regression Coefs : [-0.00358385 0.0181497 -0.00268833 ..., -0.00124143 -0.00193194\n",
" 0.0149315 ]\n",
"Regression Intercept : 0.000362981468644\n"
]
}
],
"source": [
"lm = linear_model.LinearRegression()\n",
"lm.fit(Xtrain,ytrain)\n",
"\n",
"printOutput(lm,Xtest,ytest) ### PROVIDE THE OUTPUT ###"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Ridge regression"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": [
"iVBORw0KGgoAAAANSUhEUgAAAZAAAAEKCAYAAAA8QgPpAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\n",
"AAALEgAACxIB0t1+/AAAIABJREFUeJztnXncHWV1x78/AggiiqASltSgBA20sqiAG8YFDaigtQhU\n",
"FMUWXHBpbQVFa6pWQdtiEaVYQXGp4FYakFU0AlpANCBCYogQJShBZVERISGnf8wzb+add2bubHeZ\n",
"e8/387mfO/OsZ+6dec6znOeMzAzHcRzHqcpGwxbAcRzH6SauQBzHcZxauAJxHMdxauEKxHEcx6mF\n",
"KxDHcRynFq5AHMdxnFq4AnGckkh6jqTlw5ajCEmnSXpvybSfk/TBfsvkjC+uQJyBImmVpD9K+r2k\n",
"OyR9QdIjhy1XGczsCjN7ctvlSrpY0rsS5ztIWp8T9rgeMr7JzD5UsmoLnzy51kt6QsmynAnEFYgz\n",
"aAx4qZltCewO/AVQqsdcBUkbt11mH/kusF/ifD9geUbYCjO7c5CCARpwfU6HcAXiDA0zWwNcAuwW\n",
"h0naV9L3Jd0t6TpJz03E7STpckm/k3SppE9K+kKImxt6zEdJ+jnwrRB+lKSbJN0l6SJJf5Yo72RJ\n",
"ayTdK+nHknYL4QdKujHUs1rSO0P4Akm3JfLPl7QkyPoTSS9LxH0uyHd+KOeqgt78FcCzEufPBj4O\n",
"PC0R9hzg8lD2k8P1/1bSckmHpOr9YOL8XZJ+Ga7jbzJGFVtnySjp8hB/fRgtHiLpMSHt3aHuyyW5\n",
"gplkzMw//hnYB7gVeEE43hH4MfBP4XwH4DfAwnD+wnC+TTj/P+CjwMZEDe69wOdD3FxgPfA5YHNg\n",
"M+Bg4GbgSUSdpROA74X0LwauBR4Zzp8EzA7HvwKeFY4fBewZjhcAt4XjTYCVwPFBnucBvwN2CfGf\n",
"C7I/DZgFfBH4cs5v8jDgj8Du4fwGYCfgSmCPEPYT4AhgC+A24MhwTXsAvwbmh3SfBT4QjheGa5kf\n",
"fpMvht/oCWVkTKYN5x8BTgtpZ8W/kX8m9+MjEGfQCDhX0u+AXwA/A+I5+yOAC8zsIgAz+xZRI/+S\n",
"MHJ4GpGyWWdm3wMWM3OKZZGZ3W9mfwLeCHzEzH5qZuuJGsA9QlkPAlsC8yVtFNLcEcp4ENhN0iPN\n",
"7F4zW5pxHfsCW5jZiUGe7wDnA4cn0nzDzK41s4eALxE19jMwsweAq4HnStoaeJSZ3Uo0MtkvhM0n\n",
"mup6KXCrmZ1lZuvN7DrgG8AhGUW/CjjTzJaZ2f3A+9NVl5Ux8btsB8w1s4fCf+BMMK5AnEFjwMFm\n",
"9kiiHv3z2TBV83jgkDBFcreku4lGGrOB7YG7gmKIuY2ZJMMeD/xHoqzfhvDtQ4N/KvBJYI2k0yVt\n",
"GeJfCRwIrApTVPtm1LN9Rv0/D+Hxda5JxN0PPCKjnJjLidY5ng3EDfOVibDbzOy2cE37pH6jvwa2\n",
"zShzu5SMqzPSVJHxY0Sjrksk/UzScQVpnQnAFYgzNMzscuATwEkh6BfAF8zs0YnPlmb2UaKpmK0l\n",
"bZ4o4s+YSdKq6BfA0anytjCzq0L9nzCzpwG7ArsA/xjCrzWzlwOPBc4FvpJRzy+BOak1gMcDt1f7\n",
"Faa4nGidY79wDPB9IgW6H9HoI76m72b8Rm/JKPNXwJzE+ZyMNKUxsz+Y2T+Y2ROBg4C/l/T8JmU6\n",
"3cYViDNsPg7sLWkfojn4l0l6kaRZkjYLC9c7mNnPiaazFknaRNIziKZzit5H8J/AeyTtCiDpUfGC\n",
"s6SnSdpH0iZE6w9/Ah4KZb9a0qPCtM7vgYcyyr465HtXyLMgyHN2iK+6uPx/wKOJpvGuADCzu4nW\n",
"KI5gg1I5H9hF0hGh3k0kPV1SbF6sRN1fAV4fFt0fDrwvVWcvGdcAT5xKLL1E0s5Baf6O6HfJ+m2c\n",
"CcEViDNUzOw3wFnAcWa2mmjh+z3AnUS97Xey4T59NfAMoqmoDwLnEM3LTxWXKvtcotHN2ZLuJVqc\n",
"fnGIfiTwaeAuYBVRQ/2xEHcEcGvIc3Sod1odZvYg8DLgAKJF7FOB15jZikS6tHLLVXZm9kciBbmJ\n",
"mf0kEXU50Ujo8pDuD8CLgMOIRju/Ilrb2TRdb1hLOgX4DrCCSEkBPFBSxkXAWWGq7BBgHnApkVL9\n",
"PvBJM/suzsQis2YvlJK0kKgXOQv4jJmdlJHmFKIH7Y/A68xsqaQ5wOeBxxHdtJ82s1NC+q2JGofH\n",
"Ez3crzKzexoJ6owdks4BbjKzfx62LF1A0nwiJbppMCpwnEY0GoFImkXU81pINI98eLhJk2kOBHY2\n",
"s3lEvbnTQtRa4O/MbDcii5a3JIbhxwOXmtkuwGXh3JlwwrTTEyVtJOkAonn4c4ct1ygj6RWSHibp\n",
"0USjscWuPJy2aDqFtTew0sxWmdlaovnfg1NpDiKaosDMrga2krStmd0RTBDjYfkyon0A0/KE75c3\n",
"lNMZD2YTTcf8HjgZeKOZXT9ckUaeo4nWMlYSddreNFxxnHGiqbuHHZhpJrhPiTQ7kjAflDQX2JNo\n",
"YRJgW4t2KRPSZZkoOhOGmZ1PtIjslMTMDhi2DM740nQEUnYBJW3tMZVP0iOArwFvDyOR6QmjRZpm\n",
"CzWO4zhO6zQdgdzOTDvz9GaldJodQxjBhPLrwBeDxUzMGkmzzewOSdsRWeRMQ5IrFcdxnBqYWTs+\n",
"zJr4QSFSQD8j8kO0KXAdwSdPIs2BRO4pIFosvyoci8gK6+SMcj9KZNYJ0QL6iRlprInsw/4QudwY\n",
"uhwufzc/Lr/L3kB+a6usRlNYZrYOOBa4GLgJOMfMlkk6RtIxIc0FwC2SVgKnA28O2Z9FZG//PElL\n",
"w2dhiDsR2F/SCiJXFyc2kVNCEs9oUobjOI4zncbvTDCzC4ELU2Gnp86Pzch3JTlrMGZ2F5En1raY\n",
"R7TxyV1PO47jtMSk7ESfNWwBMlgybAEasmTYAjRkybAFaMiSYQvQkCXDFqABS4YtwKjQeCf6sJBk\n",
"VnIhSGI+cJOZj0Acx5lsqrSdvZiUEYjjOI7TMq5AHMdxnFq4AnEcx3Fq4QrEcRzHqYUrEMdxHKcW\n",
"rkAcx3GcWrgCcRzHcWrhCsRxnLFD4iDJ9331G1cgjuOMI/8LbDlsIcYdVyCO44wr3XSz0SFcgTiO\n",
"4zi1cAXiOI7j1GLsFYjEZsAzhy2H4zjOuDH2CgR4I/CZYQvhOI4zbkyCAtlk2AI4juOMI5OgQBzH\n",
"cZw+4ArEcRzHqYUrEGckkTCJjYcth9NpBr4PROJtEm8edL3DwhWIM8qM4rvsHaeI/wificAViOM4\n",
"jlOLTisQqbvyhyma1w5bDscZY9yZYp9p3ABLWihpuaSbJR2Xk+aUEH+9pD0T4WdKWiPphlT6RZJW\n",
"S1oaPgtzqu/6FMdfDFsAx3GcujRSIJJmAacCC4FdgcMlzU+lORDY2czmAUcDpyWiPxvypjHg381s\n",
"z/C5qImcjuM4A2RiRj5NRyB7AyvNbJWZrQXOBg5OpTkIOAvAzK4GtpI0O5xfAdydU/bE/AmO4zhd\n",
"pKkC2QG4LXG+OoRVTZPFW8OU1xmStmom5sjiStJxnM7S1M6+rJ11uqHsle804APh+IPAvwFvmJls\n",
"k/dJ69aHkyVmtqSkPI7jOP1ilsQmZqwdtiAAkhYAC/pRdlMFcjswJ3E+h2iEUZRmxxCWi5ndGR9L\n",
"+gxwXnbKtR8clT/J6Qs+QnOaMMwXSo3My6xCx3pJfC7p/W2V3XQK61pgnqS5kjYFDgUWp9Ishshc\n",
"VdK+wD1mtqaoUEnbJU5fAdyQl9ZxHMcZDo1GIGa2TtKxwMVEJrVnmNkySceE+NPN7AJJB0paCdwH\n",
"vD7OL+nLwHOBbSTdBvyTmX0WOEnSHkRa/FbgmCZyOp1lZHpxjuPMpLGvITO7ELgwFXZ66vzYnLyH\n",
"54SX3WDnUxyO4zhDorM7uZ3xReKT8eFQBXEcp5CuKxCf4hhPJsabqeN0ma4rEMdxnDx8BNtnXIEM\n",
"F7/Bi/ERpuOMMJ1XIF32yOs4Tl9p3AGReInkHb08xqHxfUjiwIJ478V2l1oPrsTJUpbnAsepzPlE\n",
"m5+rMhHtzjgoEIAnFsR572HyeAfw98MWwnHGnXFRIF1lInopw0RiH4nrhy2H44wjXVcgXR9ddF3+\n",
"LvB84CnDFsJxxpGuKxBnvHEF6zgjjCuQDiLxOMmnv5zxROJDEhcMWw6nN419YY0Ik9ZT3XbYAjhO\n",
"HzkU2HnYQiSYtPalNF0fgXS9F+43Zv/p+j3iOCNL1xVITFEj4Q3IZONKenJp69n3NiSHcVEgRYxj\n",
"AzIpN/Q4/nfO4Bjm/TMRz+gkKJBRZiJuMsdxxhNXIM6440q6e/jIsyN0XYEo9d01uiq340wS/pzm\n",
"0HUF4ow3bTy4/vB3Dx81doRxUSCTdsNN2vU6jjOCjIsCKcIb28nG/3/H6ROToEBGGZ9ecZz+4ftA\n",
"+sy4KJCihtgb6e7i/91k4v97R2isQCQtlLRc0s2SjstJc0qIv17SnonwMyWtkXRDKv3Wki6VtELS\n",
"JZK2airniOI9G8cZTybi2W6kQCTNAk4FFgK7AodLmp9KcyCws5nNA44GTktEfzbkTXM8cKmZ7QJc\n",
"Fs6dDUzEzelMLKN2f/uIKIemI5C9gZVmtsrM1gJnAwen0hwEnAVgZlcDW0maHc6vAO7OKHcqT/h+\n",
"eUM5HcdxnJZpqkB2AG5LnK8OYVXTpNnWzNaE4zXkuy+Pewaj1mMpS92eTVev13EGiY8c+kzT94GU\n",
"bcjSf2TpBtDMTFJO+oe9F94N/PAA6fwbzGxJAxm7xKQ8GJNynY7TNyQtABb0o+ymCuR2YE7ifA7R\n",
"CKMozY4hrIg1kmab2R2StgPuzE72wIeA9wIXmbGkvNjOBDGOHQhnsHT6Hgod6yXxuaT3t1V20yms\n",
"a4F5kuZK2pToTWKLU2kWA68FkLQvcE9ieiqPxcCR4fhI4NyGco4bnb6hB4yPYrqH/2cdoZECMbN1\n",
"wLHAxcBNwDlmtkzSMZKOCWkuAG6RtBI4HXhznF/Sl4HvA7tIuk3S60PUicD+klYAzw/nWWxRQky/\n",
"GR1nMmmro+VtSA6N34luZhcCF6bCTk+dH5uT9/Cc8LuAF5aovkyacWRSRiD+4E4mk3J/d55x2Yk+\n",
"aTecN6y9sdS34wwMs8m477quQLwhdRzHGRJdVyAxRYpklHsCvg+k/3gnwymNxNsljhq2HF2h6wqk\n",
"cuMg8TCJP++HMI7jtMIwlf7HgZOHWH+n6LoCqcPfATf0TDXaNB6BSHxV4n/bEKaPDHX0IHGgxDuG\n",
"KYMzFHzUWpLGVlgd5BHDFmBE+EsmowPRRNmeBPw5Ua/UGRyNOkiSK4BBMQkNiN9M2fjv0hv/jbqN\n",
"/399ZlwUiC8qjzESv5N4xbDlcBxnOl1XIEp9V8kz6XThd4hl3BLYd4j1O5OF/+8l6boCGRgSV0ts\n",
"Mmw5Aj7iGiISTxm2DGPOsBvwSvUHy86sF+ONPV1XIGUa0rYa272BR7ZU1ijQNSU07EYFAIlZwPXD\n",
"lsMZKQ4l5c5pUui6AplqVCS2kNi0Sp4RYJiyjNLvMKr4b+SUYWLvk7FRIETvDPniAOsbOhKbSWQ6\n",
"qhwTkr9310ZMjZH4mMSHhy3HEOjafz1S7cIg6boCSfJwYP6whRgwzwQ+MWwhxphhNwz/APzjkGWY\n",
"RIb9v3eGriuQMn90Os043RzjdC29mKRrdQISr5E4qWq2PsjxcIknDqq+rtB1BTJ0JB4pcdqAq+3a\n",
"EN8ZMySeKLFtv4pPHH8eeFef6qnCicDKYQsxanRdgYxCQ7on8MYh1f2EIdU7KUxsz7IEK4ELhi3E\n",
"AHlUQdzE3iddVyBl/ri0khmnP/vTwxagz7TxX41CJ2MGEo8ZtgwtMK5+5bKmvUfyPho2XVcgfUPC\n",
"JJ6TE7ePNPXbjdyNJXG5xDnDlmMM6EtnQ2IO8OthyjDijNwz5WTjCqSYPVLn8cN8FbD/gGWpwnOA\n",
"Fw1biEEi8ecSh2dFDVyY3jx82AJMCG39967Qcui6Aqlzg7R1U7XhCt/fSNge/wb8d5MCJHaTOLhX\n",
"spC2yX1UJa//14On6n87ip2UgdB1BdIJJOZJA28IxuGmHvQayH8C56brl5jXghx1GYf/cRoSe0t8\n",
"qGKeWRI790umErgiz2ASFEj6AXzZjATRjt8iK4vsgqNe6DYlkv5ZlTIH6bQxrPU8rUH+jSQe3aZM\n",
"Ncl7wKvuIUgS3zv+Qqls6jaqbwVOKIjPUppHADeXLL+x0pV4r8TyQdXXVRorEEkLJS2XdLOk43LS\n",
"nBLir5e0Z6+8khZJWi1pafjkebos03inydqt/g9Eu7qrchjwjRr5ingD8GAL5VR5uJvs4H8rcFeV\n",
"DBJP97fGlWaUe76D/A8H7ch0f+BJA66zczRSIJJmAacCC4FdgcMlzU+lORDY2czmAUdDtOmuR14D\n",
"/t3M9gyfi3JEmNEzlHidxNMTQf18AGdXSSyxeyooS7a2btpBPdw71shzDcN5v0dd3OnlZDHO3ita\n",
"pekIZG9gpZmtMrO1wNkwYxHyIOAsADO7GthK0uwSeeu+JOqzRAuq/UA5x2W5rqC8KrStFIfRy23D\n",
"CKGIfl1T1XdF7DwiU3z9oF+/8SiOukZRpqHTVIHsANyWOF8dwsqk2b5H3reGKa8zJG1VUa5NpeH3\n",
"cCWeXGU9Q+LFDHldKrio2G6YMiQYtrVSUf1lZbsZ+EIDGUa54WrUM5d4n0TVZ3sY9PoPJnaE0rSx\n",
"KntzV/2BTwN2ItqH8StyRxSLwudlC2FJMmJH4P9mCJHw3SPxuIoyATysYvplVPOmehGRa5Re9LNR\n",
"WQlc1sfyY7rwjvO2GoanSby7rgwSh0t8VeIdVY09Qr731Ky733wAuLtk2r/opyDjjKQFYV15kaRF\n",
"bZbdVIHcDsxJnM8hGkkUpdkxpMnNa2Z3WgD4DNF0VwaLwue8C2FBMmKzHHnvSByvyUlTxC/yIiQW\n",
"5UT9C6kGX+K+gjqSL8l6jDRjRDctTRmCpdVuFbLMr7DIXVeZ/V06QOKItLmzxP+2LUfYdJjrR6wP\n",
"C/zbwrT3elQt/7XAXwEnAweWySCxMowk/wo4smJ9ZWmlIyNxgjSt45T1+/xtG3WVJKv+omsd6RGI\n",
"mS0xs0Xxp82ymyqQa4F5kuZK2pTo1Y6LU2kWEz0ASNoXuMfM1hTllZScQnkFcENFuerMrzd9GN5f\n",
"EJe+weKdyG/tUea3mamQC5HYLyeqquPFp/dO0jpZdR5Us6ydJL6WE3cDcEVB3sfWrLMfGPUaqCcC\n",
"T06UMUqk5fkQ8I4mBYZO0l4SZ1PixXLBPXueBeVIK4RRotFCppmtk3QscDEwCzjDzJZJOibEn25m\n",
"F0g6UNJK4D7g9UV5Q9EnSdqD6Ea7FTimqmiJ49ybQWILs8LRwLDJm2bLbBAknkvkdrp0ngJqdS4k\n",
"9ge+bcZDdfKni6tR/zvD4RbAKxPhDzfjj4mkswqKWZOqu6nxRJoq/0VmfWFkdrcZr2u5vtaQOBk4\n",
"06xUB7ANGXcg6oiWYS7F06iZbYjEFsA2ZtNmIyZW4TS2hDGzC0m9UN7MTk+dZ752NStvCH9tRTHq\n",
"/oH/CrypUkX1pjeqPBzJtMk1GwEPM+NPOXJtTmohqGqd0jT/WXV/00uA5zWQJY94V/iuwF+a5e5k\n",
"znt3xJOApWXqyDjP2m/UN1cmYa0uPZJPcxBRh+x1BWlaUxwSmwGPMqs09fsOYB3l1gHXJ47j+/Fn\n",
"FeqaypegiRFEXvwfSuafCMZ1J3rZd2nP2JwksXvBm8cgf1TQFnk35hHA/eE465r26lFu0e+wSOLV\n",
"wAGFgonHhQY8Pv880cbHeB47/t22CHE9kXiK1FP2JG8BPpgR3qixlNgD2DQdHL5z9+aEqZCi0UyZ\n",
"uncIDXTMU8hd9+t7ByaPTzB9DbFtsmSsOu3az82GozYNOBJMggLZp2Le64DLpxXW3I4/0y18RZIP\n",
"U51X+SLx6DBX/JRU1M7A+3rlJ9qrc2Pi/DXA1uH4Q8BR4fjJIS5dd5ai+AHww8wrmM6OUimXMHkP\n",
"uklsH0ZqMPP6lpJYgwnu+ufmpE1yH9MXyOuwmulTj2U3sklix+B24xBppuVhIO7Rv1Tio9ML4KVh\n",
"6jNV8IzZiSxjjlwkHp+sux+Ee/moRNCXKtTZa3SSLOOLJcucOMZFgaT/3OT5X9Uob+pFOWEfRyVX\n",
"HRlUsXXPu1H/pqEMsGH0tGWFepNs3iM+Lj9usHZJxP0b2YqirHXLYcAtwJtnJBJbk31NSY4msvz7\n",
"fo90MclNrb3K3qVHfBnenjgurUCAVxONyA5i5u5+S32/k5nTSedBprHB2rCeVZcqo0oIU1jBcWWV\n",
"dumMivXEVBnJPbvFssaKcVEg/SQ9PZF0q1K2VzKVTqmXVEn8rcRfJoKel1NG0mVI2tRVGXJmKdU4\n",
"bD0zaePNjbGSi8vaKRH3MIhMaHvUW0TeVNFqeo/y4rWu9Dte8sh7Z0fhdJXEfhm99ziuH15900oi\n",
"K65sGUhskljnm9tArkwZJDbNkSsOW0HzVzXHZWU6XwwL4fFxKbPojDJ+njgN7pkmrz0d1wsuu9lK\n",
"Uk9robT33mQDVGevxOWpuE8DXy9ZTh6nA99NhRXJlvUAz1AqLUzdbRTK+Trw1yFsyiInlJ9sbKv2\n",
"WmN6jYyy6GVAktf4Hha+Xylxfkb8d8k3PY7zNumxpq2DyiiJXmmS7cCDwCEZaZKWSLESnVGuxL9K\n",
"/GsiKG3U8AAtm4hL/E9O1Iz1SokXEC2Ex9fzTYm3KvtlZEVkTae2YXnYKcZFgdR9IDdhw2+Q3Oka\n",
"L8adAnylrlAJ/r6FMoqo6rYla648OUKJuUviXxI9q6l6JPI8JMOGNYE431/mpLuL6Q15r6mCMpTt\n",
"dW/dIz7vnop7r4cDL0nWKU1ZROWNUnpZX720RLq8uNdkhG2flC9Rz4tSGza3CeFxg5v13o1kvevC\n",
"d9ZI4Z3hU0SWE9I6TjljXp4XoZmuhOK6k9dzCr1d9ueZzr80K3xSGBcFkkl6V3MGyfWRj+amymdU\n",
"Ftby9grsK02zwS+SN28K6z0w3SotrDnMML9OEFsUZfXQW0Piw2rgSylMN82VWFUj+7RGK9xr8SsJ\n",
"YpPj7dOZAskpo+Tvfp7Ea5n52xatgRT9p7EZeHo6bo9Q99RvJ/FkqntnSFutZaLgBSFhBJElc6EF\n",
"YEaZZd9hk147jEcJRetMIluJZnFeyXRjyVgrkD4zlBtH4jvMvPnz5tafB1NrDlkjjCSzgBfnVjvd\n",
"2qX0lJvUyIdR0SbQbYB3M9OXUhUX+98Fdocpi6EkudZcGWGx54RYYWwf5tnTTimV/JZmWL5B8Fxd\n",
"khm+2ZLz+2zoVT9R4rds8PcTvzYh+dttmzhOv3agkGANlTY0SO7y/knodOSt79XhBwVxyXbtU6m4\n",
"PAWS9D4wi2qGLxPLuCiQ+KFOL9BWQuLqFmRBYjOJp7ZRVgYLMsKynDyWnR+P2TV8kvmTx0lrlywZ\n",
"8vhxmUTS1PpAWQb21sYUWUotPYV4MtHaVi8+UEuA6ZtZ0//xv+Qo7eSUXZa7m+Ro4lUZZb841J00\n",
"jMgrP4ueC+NlF6FLzCwUkadASJmZb5GKHpXZhpFiXBTIrr2TlCJv81YeJ6cDwm7utxH5+uoXZdyt\n",
"b8n0m/6d9LAgGjJfHrYALZBslP66IL6q5VnS0eBZqbLTZT2K6P6ryox7OYdbkifSVGfi1T3yHQY8\n",
"KxznGT3cU1KGSkjTvDdkWSDGlNmP5CQYFwVS1VdWP7kYcue+2+LKkumSG8ReQO+HPI+y74YeJAO1\n",
"vQ9Th1Ct8U8/X0p9lyXpSmVjpjsLTPfsy3QSsurP9NYsMT81LZYmfrf5v/SocyM2eNTNUyC99tvU\n",
"JTlCj0cgVS0Mj25JlrFiXBTISCBlWngMk/TCZKW57RFgmL9jWlEsCN9VnplrUuf9eC/HW1Lns6j4\n",
"quUe3AS5fscAXhgf9HAB1C+X8lWJFci3mhYkjZTX5qHgCqRdFoXvUVEgaeq6Rh9F2vqNzy1dYfQO\n",
"kVMKkvTqQW8s8Ud6rxc0YQto3bR0295JgGzz8Jh+XnMpJD7ScpF3tlxe53AF0i61F9rSO9RTcWVd\n",
"VI8bWVZKMQsGJUSCNkYQm9Pf3ngZ09q8hfA8ym6yG/Ue+fE0e72wk8IVSLvECqSOhdCzCuLS0xST\n",
"wgy/Vwm+VBDXBv+dEfaGlspuY8PkIKi7ZtY3eqzHlGHoI6FxwhVIu8QK5I018k4bXkvTvAi34c23\n",
"Km3OozvTeXLvJCPBgmELkMGCOpkydqQ7LaDotePdQ5KNoGn2LTR3BDcqjNO1OM4ZtDeC7InZyK6D\n",
"IsnMrBX5fATSLuPU4I7TtThOV0Z9ncJHII7jOC3jIxDHcRzHKcAViOM4jlMLVyCO4zhOLVyBOI7j\n",
"OLVorEAkLZS0XNLNko7LSXNKiL9e0p698kraWtKlklZIukSS++Z3HMcZMRopEEmzgFOBhUQu1Q+X\n",
"ND+V5kBgZzObR+TR8rQSeY8HLjWzXYDLwrnjOI4zQjQdgewNrDSzVWa2FjgbODiV5iDCW9bM7Gpg\n",
"K0mze+SdyhO+c9957DiO4wyHpgpkB+C2xPnqEFYmzfYFebc1s/j9zGso7w3UcRzHGRAbN8xfdidf\n",
"mU0rma9gNTOLNg1msShxvIDRdN3jOI4zPCQtoE+NY1MFcjswJ3E+h2gkUZRmx5Bmk4zw28PxGkmz\n",
"zewOSduR63d/UV25HcdxJgIzWwIsic8lvb+tsptOYV0LzJM0V9KmwKHA4lSaxcBrASTtC9wTpqeK\n",
"8i5mwzsTjqTCS38cx3GcwdBoBGJm6yQdS/Qe8FnAGWa2TNIxIf50M7tA0oGSVgL3Aa8vyhuKPhH4\n",
"iqQ3AKuAVzWR03Ecx2kfd6boOI7TMu5M0XEcx3EKcAXiOI7j1MIViOM4jlMLVyCO4zhOLSZdgRw4\n",
"bAFa4ophCzAElg9bAMeZdCZdgTjt8JWS6f7UYp1tluU4Tg1cgYwHXbFn/mOLZf1nzXzfC9/va0sQ\n",
"Zxq/b6mcx7RUjtNHXIE04901832qVSnaZU3vJJyQOh+GAnuwR/wPcsJ/FL7XtihLUz45bAHGhBsa\n",
"5H1Sa1KPNRoLAAAXjElEQVRMEJOuQLI207ygQv5TWqx3VNi5RJpfps7fRqQUt+yRr21FU+Tm/9ge\n",
"ede3KUgF8tbdfj1QKWayrHeSvvP9xHGdZ+TSnPBf9Mpoxooa9U08k65AmrAHvXvBeaQdTjblvqzA\n",
"Hrthf5QT3mua6ftMf7i3MeNOM95ixh965C3bKJTtkefJelIJGfKU2YdL1l2F3eMDMy7MiDfgE32o\n",
"tyzHAM9rqay83/WmEnm/AdzcI02ekgB4D5HrozQPlag7j3UN8o49rkBmUqqXbMb1ZdNmcG1B3B01\n",
"ymttCsQst2cee0qepgTMuKutuhN8rmS6ot8/L27goz8zftwjSdWOyN01xCjqGJxv1nPq8nc16kxy\n",
"SYk057FhZJj3P+UaT5jxAPDVRNBl4bvJaPP2HvGZnbdJwRXIdI4BHqiQvs0pmXjKpehm/zDw83D8\n",
"MuAAornbCzLSPqtHfVUb0vha74HMXnSb5P2uB6TO09dweYmyi657To/4fnFdxfSxjC/OiNsnfD8G\n",
"eEsi3IDrswozmzElmcXsHvH7he9VOfHXsGF0cVqOHCsoWMcII+oq/89vwneTEUgvMn/TSWGcFchu\n",
"VO81fQb4v4zwXXPSN1YgiWmmleG7SIH8N8HlvRnnm3GRGSvMZshxkNm0+eQsyjyIyTdBxnW83qzW\n",
"KAmihuPsEunyLHnihe+TcspR6huinu+SVJqjga+nM5uxmuzfpde0SiPM+EKLxd0VyvwtM6dKe3Uq\n",
"iiiaytkrrhf4SPi+DKatK0z9rma8melvI31hRpm/zanrrIywrGcWNnQG+2W08mSGt5Y2EoytAjHj\n",
"JuB1GVHbAd9JpU3e3MaG4fb6ENbGAmPPzX5Bjri39NKcZO8iuoY0/5Yo57yKsuX1Lu9NipcRVgkz\n",
"3gu8oUTSnxfE/ZkZx5txf0Ga+NUBmPFionfNxMiM/2LmovUtBeUVdRS+mhF2cuL4bYnjZxSU86vU\n",
"+a8h9xqzFGUWVyVPzLgP+GAqTRmrO8xKW63Fz8wLmX7Pp984ujsF5E2lmvG1jOC8WYO4jM8X1VWD\n",
"E4IsP02FlxnJjRXjokDOzAmfMQIJved43jL5AD4946ZdRkHvM6PnX8S32fBek6IH30LZ38yIW2XG\n",
"n7JGAGb8QwVZYhli65RBrheULfO5ieP4fzGzaT3XrLI3Az4TOhA75tWfseC/TzI+K08OWXP78bz5\n",
"A2bTFseLGuEzgccmzl8PXFmQPuYKplsvTTWmZtxJ9HvAhv/4+SXKrEPWPZT7fJjVWsdJ8xLgZ8D/\n",
"1JUji9CRW1mQ5OSc8LWQ+dyOLeOiQBpjlrmwvS/R8LwKeaalZW/iooeuzQW7ZKPYS4F8hJlD9W8V\n",
"lJ01pZDurRVhZtPWM8pOQWxkxgOxYjebasiT15dc9E+uEcS0oTRjJbVZKjx39GbGerOpOfteskxZ\n",
"kpmxH4nRalCw85JFp/Ime+uHAQflydQyrXdGzLjAjJ3Jn+6qOsX8rsTxOUVVF8QdygRtghx3BdLo\n",
"pjXjDyVMU8tyY+K4aE69X5vyViWO96F4D8UR4XstkdXL+9lg9hvLl2k5FHpvWYv6r02dl1YoZrw1\n",
"J2oZ063Wyvzf/5w4vqesCInj04Dv5sTF/AB4ZSpsC7PCXm0d4uudNtJO1ZOW73uJdOeYcU0qfjEz\n",
"rfr6bTShnOMypr9FVH2WpkZyYbo1r4wHgNeE408B/zWVzbgvrD9NBOOqQJrus0jPR6cpM7VwVOL4\n",
"gdTcbdYidN2F6V7Eo4G4wf+lGdeYcSvww6KMZqwzY/Mw//3mVHSmJU2gqCGP475XkCZJriGEGavN\n",
"pq0H9VQgwdQzMypVRnK08NnE8Z/I7/HGrDfjG6l623TjkjalrmJl1OuZ/6TZjE2YHy9Rbi9TZAFv\n",
"JTJgyIrLIv5PlpQoO4upqc8e+aNExvcy9k7F57sDmwOzzTAzvhjyfNls6pq64lKoNcZFgZwC/FPi\n",
"/J/yEgbixiHvxnsT2QvVeSTri2+i5OJkr0XPTcK+kmT+JE+rIMs0zHhmQXSVd82nG6kq5s5ZlHnY\n",
"Pg08pUKZbU6TxJZgHwpyxKOOrPWnUfYskP6dN66Y/yazqXWeO3MriUY9vRbGLwkGDGWJf9erS6ab\n",
"UWWJOpaWlOXesP5YyuhgUhgHBbI+NL4fSoRl9VqTf/ybKHDZYcb9FUxV15NhEko07C9l3282zUSy\n",
"aS9mz5zwGQ9Zqt6yxPJVtTipcl3xGsYxZoUWWWl6NeRlGs+s3+kuMxYA2wP/npPv/MRxWw4F2zBu\n",
"SCv+WAmUXcTOWyv7A9H64CEQbZTssWEyS+bNS9Zd1/Nyr3uuyJKvbBlJJs6kdxwUyK0wzSLqmWyw\n",
"yohvwHtIWFWY8XszflaxnsxGwYxZZNjIB3niOfbKjWcDVuWEX5UTXlaGaWFm3Fix5503NZBeaG5C\n",
"oTwFUz1vZGaDmqVIfpVSuh9hg+I4isi9zXZmlTcG5tF4ZJNhKXgKUefpCXlZUucb5cQ9ZMZSM75W\n",
"8LsW3stmPRXD1UT7RU4i+m2rEtef1849Nie8Lv3csDiSVB3Ojhr/y8y9HsvS5rhmPFri4oz8TRrA\n",
"aVVUKKcXWWW1MUVSprdVVF+VaywtrxkPqL0JoFq76804PSOuqHN1FvCgGe+ZKsj4Ne06RCyatomv\n",
"c1XVQoMCrNp5aoM6//IbiPbtPMT0Hd9XAs/OKdsyjh+WVbgZ90mtTj9OnN+sro9A7jGbYUmTtuLo\n",
"6YmzBcrehL0c+fWKGwXqypfO14/rbLMxiJ+N/05HmLHYjMMblP19ihfi/5gy6X10VqLURrbPNZCn\n",
"iDLm3r24keIRcLLc5Kbe9TmjmxszwmI+AlMbaeOO5G+Y6Tm7SoeqLBM3AqmtQCRtLelSSSskXSJp\n",
"q5x0CyUtl3SzpON65Zc0V9L9kpaGT203BGbcbsbj6+avW23iuJcd/9/1yF+HvGmBMkqryLqsrlzp\n",
"RcoyjXzdutrYnBYT7+Vo3c25Gc8CFlXJEr5fafn+oHo5bKxLso34AdGO/fuosAZmxp9n7NqOeS7V\n",
"R0R506GYca/Z1N6WeIS5zoy35+RZRv4GzzVs8M1VxuTbFUgFjgcuNbNdiPzeHJ9OIGkWcCqwkMif\n",
"1OGS5pfIv9LM9gyftPnosCg7hVVl+ibLPLL2FJYZKjGvXMbENrP4MjJkkN5H068R1pOIFnSrUCRL\n",
"vy2rqpQfy/k/hany+SnVHTZm8UpgPtH6ybN7pIXIgWKvdZC0A8xPUs5sOEnePV9mUft15IzwgJ2A\n",
"vwrPVRkXPj6FVYGD2ODY7CyyN6btTaQMVpnZWiIHeAdXyN+LKo1R1g2Qa5bYg6ZWNkVyX0mxX6Ym\n",
"7Ml0FyF59G2KLWzMLDItrsstGdOZdYgb9lGa3o170um9KkkuId87wB5kOywsQ7J3v86MBy16/0tP\n",
"N/5mfMas2u9oxrfNMkfmRXwNeGpWcSXqezDPw0Owxizrat9ovvGxczR5SLY1s9g0dg3TPbfG7MB0\n",
"r5urQ1iv/DuF6aslksr0dMrwt0x38YAZVwOPqFHWEanz5I16IxuGxOkHvdf+E4hcypd5K2BlzLjO\n",
"LHcX/PFsmFbp6yK6WaarkzI95EwZQg+xrd5fLPu5lHuHRV2+Se/9DTFlGsIbzdg/J+5PBRsoe1G1\n",
"jRj4Gp4ZD5nlviAtj7ZHmI8kamMmikIrLEmXku2pddo7sc3MJJVxYpb2yJmV/5fAHDO7W9JewLmS\n",
"djOzjF7/UXtIn10UTpYU3bthCDpjFJLX+8gg2RPL7X0F8+BNc6IvhuI1mQyzy2l1N6BwVGFW+Ba/\n",
"ZP62FtHTlPkfBjbHbMbf9Ln8WySOoJ6r+FHeuDgIynYWBqbMrD2XR60jaQGwoB9lFyoQM8vs0QBI\n",
"WiNptpndIWk7sqeDbid6SU/MjmzwVJqZ38weJLhFMLMfSfoZ0cgho4dx5lKzMxdtkKnoaoZPUA6/\n",
"kHpuoEoz4lc2g4uJXnZU5L68iKwH/znQ8x0nbdTTBf6DeiPnOgzi3vsl8JUK6U+Anu9Q+TDFZtVd\n",
"e6ZqY2ZLSLiDkfT+tspuMoW1GDgyHB9JNORPcy0wL1hWbUrkqXJxUX5JjwmL70h6ApHy6NeaQL+J\n",
"3wUx6g1VGRPb0tdgxlU9XKhUxowr0/t7JhWL3oeS9lfVNvGItO9rQRZ5UD60d8qp9PeYFW+MNeME\n",
"iv1ztblnZ2JpspHwROArkt5AtKHpVQCStgf+y8xeYmbrJB1L1COdBZxhZsuK8hO9GvMDktYSWVEc\n",
"Y2ZtLI42pXKPxYzrWxoVVXHnkUeeU8Knl1kQpd4U1pVElkPPqZCnH0xMb7MtzDg+jJS72nnrRdai\n",
"u1OR2grEzO4iw7LDzH5J9KKX+PxCMtxBF+T/Bkz3ZFokRll5W2BQO9HTXB/8cjVpBHchx0OxZb8H\n",
"pRXMIsUh5fqPmpa8X3I4pTmQxNs6M/ZOdI1cwwF3itgOXXdl0hWaNP6NG9YCy6s8mlphZYrRMH8/\n",
"6u6XwUITfsfMXer30/93cmDW/zoGzOfZsBEw5g8Mbv1o7BklW/dRp8gNddX3j1RpTEflPctNrbDa\n",
"fJtiPxmkAsn6LXdhw+t1o0SRmeqBgxGpMZcBHxu2EABmrLWZL8y6aMTd73cKVyAlMeNt5KxFBBv7\n",
"M4qyp9L/CXhBiWq3hfKLiy3S9mhhthnLe9ThU1hEUyvBMWMnCa7v39U7pTMOdH0KK6vR6aelTp1G\n",
"7mMw8210Zny7Z2VWe6d8P6jdwOfMN6d7gT9kw2J728rkN9DffR018Z7w4PHfvEW6rkDS7FHSZ83A\n",
"GKPeWNqdRtt8roYLi1IEmbNGiD7qcZwGjNUUltm0dwY4Th36ZpXmjATeaWiRsVIgA2CSb762r30k\n",
"10DM+NIAF1lH4podpy6uQJxJxhvwycPXQFqk6wrEG4Du4g+y43ScriuQUWLcldm4X58zGfh93CKu\n",
"QNpjnHrUg3jIRnINxHGc8nTdjNcbnf4wTsqwy3yYhBtuxxk1uq5ARolxV2b93KB5ErCij+XnMdL/\n",
"mRnfIeHc0GnMYqLXajst4QqkPca6127GOolt+lT28f0o13GSmHHwsGUYN7q+BjLoHuRI91j7Tcn3\n",
"hjjlmej7yek+XR+B/HTA9R0GPDYnbpwag3G6Fsdx+kTXFcjJg6zMjB8URI/1FJbTF/yecTpNp6ew\n",
"+ujYb9KZlIbN7x/HaUDXRyCjhDdG1fgYsHTYQgwZv2ecTuMKxMmi7w2bGSsYjumu4zgt0ekpLMdp\n",
"yP3DFsBxuowrEGeSuRjYfdhCOE5X8SksJ4v7hi3AIDBjPfDjYYowxLodpzG1RyCStpZ0qaQVki6R\n",
"tFVOuoWSlku6WdJxifBDJN0o6SFJe6XyvDukXy7pRXVldGpzHrDrsIWYACbF2s0ZU5pMYR0PXGpm\n",
"uwCXhfNpSJoFnAosJGqQDpc0P0TfALwCuDyVZ1fg0JB+IfApST7VNkDMMDOWDVsOx3FGmyYN80HA\n",
"WeH4LODlGWn2Blaa2SozW0vkyOxgADNbbmZZVjgHA182s7VmtgpYGcoZdT4J/POwhXAcxxkUTdZA\n",
"tjWzNeF4DbBtRpodgNsS56uBfXqUuz1wVSrPDnWFHBRmXAdcN2w5HMdxBkWhApF0KTA7I+qE5ImZ\n",
"maSsBcG2Fgkzy5G0KHG6xMyWtFSf4wwCX0R3+o6kBcCCfpRdqEDMbP+8OElrJM02szskbQfcmZHs\n",
"dmBO4nwO0YiiiHSeHUNYlnyLepTlOI4z0YSO9ZL4XNL72yq7yRrIYuDIcHwkcG5GmmuBeZLmStqU\n",
"aHF8cUa6pDXKYuAwSZtK2gmYB1zTQE7HcRynDzRRICcC+0taATw/nCNpe0nfBDCzdcCxRBu2bgLO\n",
"MbNlId0rJN0G7At8U9KFIc9NwFdC+guBN5uZD/WdceTX+G54p8Ooq22zJDMzt6N3HMepQJttp++v\n",
"cBzHcWrhCsRxHMephSsQx3EcpxauQBzHcZxauAJxHMdxauEKxHEcx6mFKxDHcRynFq5AHMdxnFq4\n",
"AnEcx3Fq4QrEcRzHqYUrEMdxHKcWrkAcx3GcWrgCcRzHcWrhCsRxHMephSsQx3EcpxauQBzHcZxa\n",
"uAJxHMdxauEKxHEcx6mFKxDHcRynFq5AHMdxnFq4AnEcx3Fq4QrEcRzHqUVtBSJpa0mXSloh6RJJ\n",
"W+WkWyhpuaSbJR2XCD9E0o2SHpK0VyJ8rqT7JS0Nn0/VldFxHMfpH01GIMcDl5rZLsBl4XwakmYB\n",
"pwILgV2BwyXND9E3AK8ALs8oe6WZ7Rk+b24g48giacGwZWiCyz9cXP7h0WXZ26aJAjkIOCscnwW8\n",
"PCPN3kTKYJWZrQXOBg4GMLPlZraiQf1dZ8GwBWjIgmEL0JAFwxagIQuGLUBDFgxbgAYsGLYAo0IT\n",
"BbKtma0Jx2uAbTPS7ADcljhfHcJ6sVOYvloi6dkNZHQcx3H6xMZFkZIuBWZnRJ2QPDEzk2QZ6bLC\n",
"evFLYI6Z3R3WRs6VtJuZ/b5GWY7jOE6/MLNaH2A5MDscbwcsz0izL3BR4vzdwHGpNN8B9iqoJzOe\n",
"SDn5xz/+8Y9/Kn7qtvvpT+EIpAeLgSOBk8L3uRlprgXmSZpLNLI4FDg8I52mDqTHAHeb2UOSngDM\n",
"A25JZzAzpcMcx3GcwdFkDeREYH9JK4Dnh3MkbS/pmwBmtg44FrgYuAk4x8yWhXSvkHQb0Sjlm5Iu\n",
"DOU+F7he0lLgq8AxZnZPAzkdx3GcPqAwHeQ4juM4lejkTvS8zYnDRNKZktZIuiERlrvZUtK7g/zL\n",
"Jb0oEf5USTeEuP8YoPxzJH0nbO78iaS3dekaJG0m6WpJ10m6SdJHuiR/ou5ZwQLxvK7JL2mVpB8H\n",
"+a/pkvyStpL0NUnLwv2zT4dkf5I2bLxeKuleSW8biPxtLaYM6gPMAlYCc4FNgOuA+SMg13OAPYEb\n",
"EmEfBd4Vjo8DTgzHuwa5NwnXsZINo8FrgL3D8QXAwgHJPxvYIxw/AvgpML9j1/Dw8L0xcBXw7C7J\n",
"H+r7e+BLwOIO3kO3AlunwjohP9FetqMS98+juiJ76jo2An4FzBmE/AO7sBZ/oGcw3bLreOD4YcsV\n",
"ZJnLdAWynGi/DEQN9PJwPM0aDbiIaC1oO2BZIvww4D+HdC3nAi/s4jUADwd+AOzWJfmBHYFvAc8D\n",
"zuvaPUSkQLZJhY28/ETK4paM8JGXPUPmFwFXDEr+Lk5h1d2cOAzyNltuTyR3THwN6fDbGcK1KbKa\n",
"2xO4mg5dg6SNJF0X5PyOmd1Ih+QHTgb+EVifCOuS/AZ8S9K1kv42hHVB/p2AX0v6rKQfSfovSVvQ\n",
"DdnTHAZ8ORz3Xf4uKpBOrvpbpNJHXnZJjwC+DrzdUps3R/0azGy9me1B1JPfT9LzUvEjK7+klwJ3\n",
"mtlSEmbtSUZZ/sCzzGxP4ADgLZKek4wcYfk3BvYCPmVmewH3kfLtN8KyTyFpU+BlRNar0+iX/F1U\n",
"ILcTze/FzGG61hwl1kiaDSBpO+DOEJ6+hh2JruH2cJwMv30AcgIgaRMi5fEFM4v39XTqGgDM7F7g\n",
"m8BT6Y78zwQOknQrUQ/y+ZK+QHfkx8x+Fb5/DfwPkS+8Lsi/GlhtZj8I518jUih3dED2JAcAPwy/\n",
"Pwzgt++iApnanBg07qFEmxpHkXizJUzfbLkYOEzSppJ2ItoseY2Z3QH8LliACHgN2Rs0WyfUdwZw\n",
"k5l9vGvXIOkxsZWJpM2B/YGlXZHfzN5jZnPMbCeiaYhvm9lruiK/pIdL2jIcb0E0F39DF+QPdd4m\n",
"aZcQ9ELgRuC8UZc9xeFsmL6K5eyv/INc4GlxoegAIiuhlcC7hy1PkOnLRLvtHyRao3k9sDXRougK\n",
"4BJgq0T69wT5lwMvToQ/lejBWwmcMkD5n000934dUcO7lMgNfyeuAfgL4EdB/h8D/xjCOyF/6lqe\n",
"ywYrrE7IT7SOcF34/CR+Ljsk/+5EhhfXA98gWljvhOyh3i2A3wBbJsL6Lr9vJHQcx3Fq0cUpLMdx\n",
"HGcEcAXiOI7j1MIViOM4jlMLVyCO4zhOLVyBOI7jOLVwBeI4juPUwhWI4ziOUwtXII7jOE4t/h/O\n",
"GChNEw+eyAAAAABJRU5ErkJggg==\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0x1018bc5d0>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": [
"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\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0x108cf8cd0>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"R2 : 0.891455271313\n",
"Gene with Strongest Coefficient : 250 Coefficient: 0.0194496322434\n",
"Lambda_ResultOfCV : 0\n",
"Regression Coefs : [-0.00335236 0.01573885 -0.00267361 ..., -0.0011896 -0.00192586\n",
" 0.01499073]\n",
"Regression Intercept : 0.000313281087218\n"
]
}
],
"source": [
"\n",
"\n",
"\n",
"\n",
"lm = linear_model.Ridge() ### CHANGE THIS LINE ###\n",
"#scores = cross_validation.cross_val_score(lm, Xtrain, ytrain, cv=10)\n",
"#print scores\n",
"lm=linear_model.RidgeCV(range(0,1,20),cv=10)\n",
"lm.fit(Xtrain, ytrain);\n",
"\n",
"printOutput(lm, Xtest, ytest) ### PROVIDE THE OUTPUT ###"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### LASSO regression"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": [
"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\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0x10185a050>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": [
"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\n",
"RK5CYII=\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0x10184ffd0>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"R2 : 0.51829685677\n",
"Gene with Strongest Coefficient : 1 Coefficient: 0.488776455978\n",
"Lambda_ResultOfCV : 0\n",
"Regression Coefs : [ -4.90676555e-02 4.88776456e-01 -2.89631947e-01 ..., -6.19080679e-05\n",
" -3.93338550e-04 -6.61287935e-05]\n",
"Regression Intercept : 0.00178553911886\n",
"Regression Coefficient of Gene 5954 : -3.33039886181e-05\n"
]
}
],
"source": [
"lm = linear_model.LassoCV(alphas=range(0,10,20),cv=10) ### CHANGE THIS LINE ###\n",
"lm.fit(Xtrain, ytrain)\n",
"\n",
"printOutput(lm, Xtest, ytest) ### PROVIDE THE OUTPUT ###\n",
"\n",
"print 'Regression Coefficient of Gene 5954 : ',lm.coef_[5954] ### CHANGE THIS LINE ### ### PROVIDE THE OUTPUT ###"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"annotations": {
"author": "",
"categories": [
"intelligent-systems-1-2015"
],
"date": "2015-05-07",
"location": "Beginning of next lecture",
"parent": "IS_SS2015",
"submission_date": "2015-05-14",
"subtitle": "Exercise Sheet 4, Regularized Linear Regression",
"tags": [
"IntelligenSystems",
"Course"
],
"title": "Intelligent Systems 1 - Summer Semester 2015"
},
"celltoolbar": "Edit 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.4.3"
}
},
"nbformat": 4,
"nbformat_minor": 0
}