Skip to content

Instantly share code, notes, and snippets.

@sjackman
Last active December 11, 2015 18:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sjackman/4645333 to your computer and use it in GitHub Desktop.
Save sjackman/4645333 to your computer and use it in GitHub Desktop.
CPSC 540 Assignment 1
{
"metadata": {
"name": "hw1"
},
"nbformat": 2,
"worksheets": [
{
"cells": [
{
"cell_type": "markdown",
"source": [
"Shaun Jackman 87038121",
"======================",
"CPSC 540 Assignment 1 2013-01-29"
]
},
{
"cell_type": "code",
"collapsed": true,
"input": [
"from __future__ import division",
"from matplotlib.pyplot import figure, grid, legend, \\",
"\tsemilogx, title, xlabel, ylabel",
"from numpy import arange, argmin, dot, eye, loadtxt, mean, power, std",
"from numpy.linalg import inv, norm",
"",
"# 1.3 Ridge regression",
"",
"# Calculate theta using ridge regression",
"def ridge(X, y, d2):",
"\treturn dot(inv(dot(X.T, X) + d2 * eye(X.shape[1])), dot(X.T, y))",
"",
"# Relative L2-norm error",
"def l2normerror(y, yhat):",
"\treturn norm(yhat - y) / norm(y)",
"",
"# 1. First load the data and split it into a response vector (y) and a",
"# matrix of attributes (X).",
"X = loadtxt('prostate.data', skiprows=1)",
"y = X[:,-1]",
"X = X[:,0:-1]",
"",
"# 2. Choose the first 50 patients as the training data. The remaining",
"# patients will be the test data.",
"ytrain, ytest = y[0:50], y[50:]",
"Xtrain, Xtest = X[0:50], X[50:]",
"",
"# 3. Set both variables to have zero mean and standardize the input",
"# variables to have unit variance.",
"Xbar = mean(Xtrain, axis=0)",
"Xstd = std(Xtrain, axis=0)",
"ybar = mean(ytrain)",
"ytrain = ytrain - ybar",
"Xtrain = (Xtrain - Xbar) / Xstd",
"",
"# Compute the ridge regression solutions for a range of regularizers.",
"d2 = power(10.0, arange(-2, 4, 0.2))",
"theta = map(lambda d2: ridge(Xtrain, ytrain, d2), d2)",
"",
"# For each computed value of theta, compute the train and test error.",
"etrain = map(lambda theta:",
"\tl2normerror(ybar + ytrain, ybar + dot(Xtrain, theta)),",
"\ttheta)",
"",
"Xtest = (Xtest - Xbar) / Xstd",
"ytest -= ybar",
"etest = map(lambda theta:",
"\tl2normerror(ybar + ytest, ybar + dot(Xtest, theta)),",
"\ttheta)"
],
"language": "python",
"outputs": [],
"prompt_number": 1
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# Plot the values of each theta in the y-axis against delta^2 in the",
"# x-axis.",
"figure()",
"title('Regularization path for ridge regression')",
"xlabel('$\\\\delta^2$')",
"ylabel('$\\\\theta$')",
"p = semilogx(d2, theta)",
"legend(p, ['lcavol', 'lweight', 'age', 'lbph',",
"\t'svi', 'lcp', 'gleason', 'pgg45'])",
"grid()"
],
"language": "python",
"outputs": [
{
"output_type": "display_data",
"png": "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\nAjBz5kw2btzI4sWLuf/++wF4/fXX+eKLL6isrOT06dM8+uijV7jmHetubOXl5Tz77LMcPnyY5cuX\ns2jRoitc887rSowLFixg/vz5bN68mYyMjCtf2W7oSnwxMTFes98adSW+HTt29PrP3MW6El9JSQkf\nf/wx9fX1TJgw4cpXtou6EtvSpUsB9b6+qKioTnc95TWJpC0tT4EA9OvXj71797ZaZsGCBSxYsOBK\nV63HOhNbREQEb7/99pWumsu0F6PRaGT16tUerJlrtBeft++3Ru3F98Ybb/D44497sGau0V58t9xy\nC7fccosHa9ZzHX2/NHam21le00bSFl/uqNGXY2vk6zFKfN7Nl+NzdWxenUji4+PJy8trms7Ly6Nf\nv34erJHr+HJsjXw9RonPu/lyfK6OzasTyZgxYzh16hS5ublYrVY++ugjrzmn3hFfjq2Rr8co8Xk3\nX47P5bG560oBV5s5c6YSFxen+Pv7K/369VNWr16tKIqibNmyRRk8eLCSnJysvPzyyx6uZff4cmyN\nfD1GiU/i662uRGzS15YQQoge8epTW0IIITxPEokQQogekUQihBCiRySRCCGE6BFJJEIIIXpEEokQ\nQogekUQihBCiRySRCCGE6BFJJEIIIXpEEokQbnbgwAF27drFihUrPF0VIdxCEokQbnbgwAHGjRtH\nWVkZ1dXVnq6OEC7n1Q+2EsIb/OIXv8DhcGC32zGZTJ6ujhAuJ502CuEma9euZcuWLcyePZuysjIm\nTpxIaGgofn5+nq6aEC4lp7aEcJO6ujrWrVuH2Wxmx44dPPPMM2i18pETvkeOSIRwkzlz5vDUU0+R\nmprq6aoI4Vby80gIN9i2bRspKSn86le/8nRVhHA7SSRCuNjp06fZv38/zzzzDGfOnPF0dYRwO0kk\nQrjY6tWrmTVrFgADBw70cG2EcD9JJEK4WF1dHfHx8ZSXl5OSkuLp6gjhdtLYLoSLnTx5ki+//JKK\nigrmzp1LZGSkp6skhFtJIhFCCNEjcmpLCCFEj0giEUII0SOSSIQQQvSIJBIhhBA9IolECCFEj0gi\nEUII0SOSSIQQQvSIJBIhhBA9IolECCFEj/wfN46X6aO+r1AAAAAASUVORK5CYII=\n"
}
],
"prompt_number": 2
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# Plot the train and test errors as a function of delta^2.",
"figure()",
"title('Relative error of the ridge estimator vs. $\\delta^2$')",
"xlabel('$\\\\delta^2$')",
"ylabel('$||y-X\\\\theta||_2/||y||_2$')",
"semilogx(d2, etrain, 'o-', label='Train')",
"semilogx(d2, etest, '^-', label='Test')",
"legend()",
"grid()"
],
"language": "python",
"outputs": [
{
"output_type": "display_data",
"png": "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\nqrEFAAAAAElFTkSuQmCC\n"
}
],
"prompt_number": 3
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# Choose a value of delta^2 using cross-validation.",
"i = argmin(etest)",
"print 'delta^2 = ', d2[i]",
"print 'e_train = ', etrain[i]",
"print 'e_test = ', etest[i]"
],
"language": "python",
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"delta^2 = 15.8489319246",
"e_train = 0.308638776058",
"e_test = 0.427538860603"
]
}
],
"prompt_number": 4
}
]
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment