{
"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": 21,
"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\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": 22,
"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": 23,
"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 :' , abs(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": 24,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": [
"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\n",
"TpT/DyrKc9UAOA0/AAAAAElFTkSuQmCC\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0x108d17590>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": [
"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\n",
"MzNL/X+xYxB4Q+Hq+QAAAABJRU5ErkJggg==\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0x10d61b410>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"R2 : 0.570808554899\n",
"Gene with Strongest Coefficient : 3152 Coefficient: 0.0479454130986\n",
"Regression Coefs : [ 3.24765742e-04 -7.72502183e-03 -6.50361159e-05 ..., 6.28242432e-03\n",
" 4.20558995e-03 3.26471285e-03]\n",
"Regression Intercept : -0.00393732142517\n"
]
}
],
"source": [
"lml = linear_model.LinearRegression()\n",
"lml.fit(Xtrain,ytrain)\n",
"\n",
"printOutput(lml,Xtest,ytest) ### PROVIDE THE OUTPUT ###"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Ridge regression"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"image/png": [
"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\n",
"8rxsxiKVbmgAAAAASUVORK5CYII=\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0x10bd2c750>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": [
"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\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0x10bf12f10>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"R2 : 0.561309344989\n",
"Gene with Strongest Coefficient : 3152 Coefficient: 0.0474220089869\n",
"Lambda_ResultOfCV : 0.1\n",
"Regression Coefs : [ 0.00222317 -0.0015913 -0.00047377 ..., 0.0063304 0.00418308\n",
" 0.00328276]\n",
"Regression Intercept : -0.00406842811398\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(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": 26,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": [
"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\n",
"K+REYWZmhf4/SFm57kd+CakAAAAASUVORK5CYII=\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0x109105390>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": [
"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\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0x108cfced0>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"R2 : 0.57899152835\n",
"Gene with Strongest Coefficient : 3152 Coefficient: 0.291621179559\n",
"Lambda_ResultOfCV : 0.0002\n",
"Regression Coefs : [-0. -0. -0. ..., 0.02138564 0. 0. ]\n",
"Regression Intercept : -0.00416749325629\n",
"Regression Coefficient of Gene 5954 : 0.0\n"
]
}
],
"source": [
"lm = linear_model.LassoCV(alphas=[0.0002],cv=10) ### CHANGE THIS LINE ###\n",
"lm.fit(Xtrain, ytrain)\n",
"lm.n_jobs=-1\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 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.9"
}
},
"nbformat": 4,
"nbformat_minor": 0
}