Skip to content

Instantly share code, notes, and snippets.

@sjackman
Last active December 12, 2015 04:18
Show Gist options
  • Save sjackman/4713031 to your computer and use it in GitHub Desktop.
Save sjackman/4713031 to your computer and use it in GitHub Desktop.
CPSC 540 Assignment 2
Display the source blob
Display the rendered blob
Raw
{
"metadata": {
"name": "hw2"
},
"nbformat": 2,
"worksheets": [
{
"cells": [
{
"cell_type": "code",
"collapsed": false,
"input": [
"from __future__ import division",
"from matplotlib.pyplot import annotate, figure, grid, \\",
"\tsavefig, scatter, title, xlabel, ylabel",
"from numpy import argmax, diag, eye",
"from numpy.linalg import solve",
"import numpy as np",
"",
"# MOVIES: Legally Blond; Matrix; Bourne Identity; You've Got Mail;",
"# The Devil Wears Prada; The Dark Knight; The Lord of the Rings.",
"P = [[0,0,-1,0,-1,1,1], # User 1",
"\t[-1,1,1,-1,0,1,1], # User 2",
"\t[0,1,1,0,0,-1,1], # User 3",
"\t[-1,1,1,0,0,1,1], # User 4",
"\t[0,1,1,0,0,1,1], # User 5",
"\t[1,-1,1,1,1,-1,0], # User 6",
"\t[-1,1,-1,0,-1,0,1], # User 7",
"\t[0,-1,0,1,1,-1,-1], # User 8",
"\t[0,0,-1,1,1,0,-1]] # User 9",
"P = np.array(P)",
"print 'Raw Preference Matrix:'",
"print P",
"print '\\n'"
],
"language": "python",
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Raw Preference Matrix:",
"[[ 0 0 -1 0 -1 1 1]",
" [-1 1 1 -1 0 1 1]",
" [ 0 1 1 0 0 -1 1]",
" [-1 1 1 0 0 1 1]",
" [ 0 1 1 0 0 1 1]",
" [ 1 -1 1 1 1 -1 0]",
" [-1 1 -1 0 -1 0 1]",
" [ 0 -1 0 1 1 -1 -1]",
" [ 0 0 -1 1 1 0 -1]]",
"",
""
]
}
],
"prompt_number": 1
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# Parameters",
"reg = 0.1 # regularization parameter",
"f = 2 # number of factors",
"m,n = P.shape",
"",
"# Random Initialization",
"# X is (m x f)",
"# Y is (f x n)",
"X = 1 - 2*np.random.rand(m,f)",
"Y = 1 - 2*np.random.rand(f,n)",
"X *= 0.1",
"Y *= 0.1",
"",
"# Alternating Ridge Regression",
"for _ in xrange(100):",
"\t# Least-squares keeping Y fixed",
"\tX = np.linalg.solve(",
"\t\t\tnp.dot(Y, Y.T) + reg * np.eye(f),",
"\t\t\tnp.dot(Y, P.T)",
"\t\t\t).T",
"\t# Least-squares keeping X fixed",
"\tY = np.linalg.solve(",
"\t\t\tnp.dot(X.T, X) + reg * np.eye(f),",
"\t\t\tnp.dot(X.T, P)",
"\t\t\t)",
"print 'Alternating Ridge Regression:'",
"print np.dot(X,Y)",
"print"
],
"language": "python",
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Alternating Ridge Regression:",
"[[-0.47047856 0.42881275 -0.9232266 -0.40431614 -0.82818431 0.71377021",
" 0.35042245]",
" [-0.5777164 1.11906044 0.94589673 -0.6138596 -0.41293397 0.72761485",
" 1.24992174]",
" [-0.08329317 0.47515047 1.23776785 -0.15067521 0.26037112 0.02607122",
" 0.61430636]",
" [-0.47973239 0.97615684 0.95005909 -0.51903633 -0.29509121 0.59242629",
" 1.10279926]",
" [-0.37593956 0.83720183 0.99806081 -0.42105232 -0.15760057 0.44610309",
" 0.96413622]",
" [ 0.67254738 -0.68837614 1.05514854 0.59290453 1.10703146 -1.0013927",
" -0.6052159 ]",
" [-0.56690321 0.63195458 -0.70791892 -0.5100152 -0.88042439 0.83110316",
" 0.58167827]",
" [ 0.65941589 -0.96038477 0.03268838 0.63788068 0.79442026 -0.91013097",
" -0.98826644]",
" [ 0.32613599 -0.67760251 -0.69495395 0.35562619 0.18635704 -0.39923586",
" -0.76905757]]",
""
]
}
],
"prompt_number": 2
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# Re-initialize",
"np.random.seed(5)",
"X = 1 - 2*np.random.rand(m,f)",
"Y = 1 - 2*np.random.rand(f,n)",
"X *= 0.1",
"Y *= 0.1",
"# Alternating Weighted Ridge Regression",
"C = np.abs(P) # Will be 0 only when P[i,j] == 0.",
"for _ in xrange(100):",
"\t# Each user u has a different set of weights Cu",
"\tfor u, Cu in enumerate(C):",
"\t\t# x_u = (Y C_u Y^T + \\lambda I)^{-1} Y C_u p_u",
"\t\tX[u,:] = solve(",
"\t\t\tY.dot(diag(Cu)).dot(Y.T) + reg * eye(f),",
"\t\t\tY.dot(diag(Cu)).dot(P[u,:]))",
"\tfor i, Ci in enumerate(C.T):",
"\t\t# y_i = (X^T C_i X + \\lambda I)^{-1} X^T C_i p_i",
"\t\tY[:,i] = solve(",
"\t\t\tX.T.dot(diag(Ci)).dot(X) + reg * eye(f),",
"\t\t\tX.T.dot(diag(Ci)).dot(P[:,i]))",
"print 'Alternating Weighted Ridge Regression:'",
"print np.dot(X,Y)",
"print"
],
"language": "python",
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Alternating Weighted Ridge Regression:",
"[[-0.87859232 0.75590939 -0.84723563 -0.90527382 -0.9130141 1.22456662",
" 0.77033937]",
" [-0.96652928 1.12037763 0.83860293 -1.00626611 -1.00817851 0.72382715",
" 1.10750311]",
" [-0.32540393 0.55731592 1.38658534 -0.34525869 -0.34178486 -0.14502855",
" 0.53505236]",
" [-0.96804641 1.12193901 0.83870997 -1.00783853 -1.00975844 0.72538902",
" 1.10906391]",
" [-0.95828902 1.11192882 0.83821617 -0.99772674 -0.99959761 0.7152754",
" 1.09905425]",
" [ 0.92243556 -0.80265177 0.83420691 0.95077289 0.9586932 -1.26620517",
" -0.81690384]",
" [-1.02704144 0.89416713 -0.92578392 -1.05861001 -1.06741721 1.40873078",
" 0.90998631]",
" [ 0.95137075 -0.98077314 -0.07729105 0.9860964 0.99076865 -0.97584423",
" -0.98024795]",
" [ 0.89692885 -1.06910881 -0.95852324 0.93486172 0.93596404 -0.60823111",
" -1.05423382]]",
""
]
}
],
"prompt_number": 3
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# Draw a scatter plot with labels.",
"def scatterplot(data, labels, xytexts, fc = 'yellow'):",
"\tscatter(data[:, 0], data[:, 1], marker = 'o')",
"\tfor x, y, label, xytext in zip(",
"\t\t\tdata[:, 0], data[:, 1], labels, xytexts):",
"\t\tannotate(label, xy = (x, y), xytext = xytext,",
"\t\t\ttextcoords = 'offset points', ha = 'right', va = 'bottom',",
"\t\t\tbbox = dict(boxstyle = 'round,pad=0.5', fc = fc, alpha = 0.5),",
"\t\t\tarrowprops = dict(arrowstyle = '->', connectionstyle = 'arc3,rad=0'))",
"",
"# Draw a scatter plot of movies and users.",
"users = ['Anne', 'Bob', 'Charlie', 'Doug', 'Evan',",
"\t'Frank', 'Georgia', 'Henrietta', 'Isabelle']",
"movies = ['Legally Blond', 'Matrix', 'Bourne Identity',",
"\t'You\\'ve Got Mail', 'The Devil Wears Prada', 'The Dark Knight',",
"\t'The Lord of the Rings']",
"figure()",
"title('Movies and Users')",
"xlabel('Feature 1')",
"ylabel('Feature 2')",
"grid()",
"scatterplot(X, users,",
"\t[(0, -35), (-25, -25), (-25, 0), (-25, 0),",
"\t\t(-25, 30), (-25, 25), (-25, -25), (-25, 25), (-25, 25)],",
"\t'yellow')",
"scatterplot(Y.T, movies,",
"\t[(-200, 35), (0, 25), (50, -40), (-200, 0),",
"\t\t(-170, -35), (75, 25), (75, -100)],",
"\t'blue')",
"savefig('scatterplot.png')"
],
"language": "python",
"outputs": [
{
"output_type": "display_data",
"png": "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\n9NqKNmVIVjcKhYKYmDA6d66v0fiIjY0Jvr5w7VqUxmTQNkTjUsvQxvVOVMmL6HfjRjoKhYCdnelz\nU7aHh98lMTEDhUJg165ogoKqlyW3qtTUtWvRogXJyck8fPiwRtorRhP35v379zE1zcbGpvpZqyui\neL2a8mjc2IqEhItql6O2oFXG5ejRozRp0oTGjRvz5ZdfljoeGhqKlZUVvr6++Pr68tlnn2lASpGa\nQiLRK7WeR3HMxdd3LcOG7WbjxteRSCQMGOBF8+b1aNFiDd26bVKmbJdIoG1bR6ZPP4y390rc3W14\n/fUmZbZX1Kup/d0aAwMD/Pz8OHPmjKZFUTu5ubk8JzVYjWJmJiUvL1vTYmgNWhPQl8vlTJ8+nd9/\n/x1HR0fatm1L//79S+V66tSpEwcOHNCQlJrnZYq5GBmZk5tbMgNyYeHH5Z67eHEPFi/uUWJfp06u\nhIWNrbDdggI5YFClFSYrS01eu2LXWL9+/WqsTU3dm8/OhXqafftuMHDgTq5fD8HT065a7VQ0GkxP\nT4IgKKrVhi6hNT2X8PBwPDw8cHV1RSqVMmzYMPbv31+qnDh+/+XBxcWN+PiaaSs+/iEuLs10oucC\nL1fc5Xls336Nfv1eYfv2a5oW5aVDa3oud+/exdn535nWTk5OnD9/vkQZiUTCmTNnaNGiBY6OjixZ\nsqTMxZzGjh2rfMuwtramZcuWyreqYr9wbd1evny5TunzPP0aNWrEihWZnDp1jcDAZsC/fu/i66uK\n7cJCBefOKfDxCVSrfk/HJNT9ffr7+3Px4kWOHTuGVCqtketXk/oVb587d+6fEVpFQ4Sfvr7Z2QWc\nPp3Izp29mTgxjPnzO7NjxzmWL7+Es3Mdrl27T5MmlixbFoSrqyuurst5/XVXjh9PRiIx4KefBmNk\nlE1OjowlS2K4ePEOhYUKZs1qycSJQaXaA0hKSiox30fTv6eKrteGDRtKyK9KtGYlyp9//pmjR48q\nl2rdsmUL58+f59tvv1WWycrKQl9fH1NTU44cOcLbb79NbGxsiXp0fSXKp29cXeRZ/eLj49mzZzFB\nQQq8ve2wtDQq/+QXRC5XkJCQwenTDzE17cHAgaPU6har6WvXsmVL1qxZg7+/f420p4l7MyEhgT//\n/JwxY5xKHdu69QonTyaxZk0/Onb8keXLe5OZmc/rr+8gJiaEBg3MCQj4gSVLetKhgzNubv/jnXfa\n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\n5P4Hs8NvYp4qGbQAAAAASUVORK5CYII=\n"
}
],
"prompt_number": 4
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# Recommend the best movie for each user.",
"for user, ratings in zip(users, X.dot(Y)):",
"\tprint user, 'would enjoy', movies[argmax(ratings)]"
],
"language": "python",
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Anne would enjoy The Dark Knight",
"Bob would enjoy Matrix",
"Charlie would enjoy Bourne Identity",
"Doug would enjoy Matrix",
"Evan would enjoy Matrix",
"Frank would enjoy The Devil Wears Prada",
"Georgia would enjoy The Dark Knight",
"Henrietta would enjoy The Devil Wears Prada",
"Isabelle would enjoy The Devil Wears Prada"
]
}
],
"prompt_number": 5
}
]
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment