Newer
Older
abgabensammlungSS15 / is / UB4 / ExerciseSheet4.ipynb
@MaxXximus92 MaxXximus92 on 9 May 2015 101 KB is UB4 versagt...
{
 "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(\\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": 75,
   "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": 76,
   "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": 77,
   "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": 78,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": [
       "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\n",
       "TpT/DyrKc9UAOA0/AAAAAElFTkSuQmCC\n"
      ],
      "text/plain": [
       "<matplotlib.figure.Figure at 0x108b6ddd0>"
      ]
     },
     "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 0x10a721f90>"
      ]
     },
     "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": [
    "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": 79,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": [
       "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\n",
       "EgAAAABJRU5ErkJggg==\n"
      ],
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1027b5d50>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": [
       "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\n"
      ],
      "text/plain": [
       "<matplotlib.figure.Figure at 0x108b6db10>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "R2 : 0.569908804232\n",
      "Gene with Strongest Coefficient : 3152 Coefficient: 0.0479218739552\n",
      "Lambda_ResultOfCV : 0\n",
      "Regression Coefs : [-0.00310618 -0.02027454  0.00020293 ...,  0.00622121  0.00422778\n",
      "  0.00334143]\n",
      "Regression Intercept : -0.00395371905556\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": 80,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": [
       "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\n",
       "BkxBWQAAAABJRU5ErkJggg==\n"
      ],
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1027b54d0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": [
       "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\n",
       "QmCC\n"
      ],
      "text/plain": [
       "<matplotlib.figure.Figure at 0x108b233d0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "R2 : 0.35338787479\n",
      "Gene with Strongest Coefficient : 0 Coefficient: 0.420130383682\n",
      "Lambda_ResultOfCV : 0\n",
      "Regression Coefs : [  4.20130384e-01  -2.71667915e-01  -1.28872079e-02 ...,  -1.84575471e-05\n",
      "  -2.99211502e-04  -3.91473871e-05]\n",
      "Regression Intercept : -0.00832878022628\n",
      "Regression Coefficient of Gene 5954 :  1.61536724615e-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 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
}