Skip to content

Commit

Permalink
adds maximum loglikelihood estimation note and other notes
Browse files Browse the repository at this point in the history
  • Loading branch information
muatik committed Nov 18, 2016
1 parent 08179ca commit 20501ae
Show file tree
Hide file tree
Showing 10 changed files with 2,866 additions and 5 deletions.
317 changes: 317 additions & 0 deletions ALS.ipynb

Large diffs are not rendered by default.

505 changes: 505 additions & 0 deletions KNN_movie_genre.ipynb

Large diffs are not rendered by default.

244 changes: 244 additions & 0 deletions Kmeans.ipynb
Original file line number Diff line number Diff line change
@@ -0,0 +1,244 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"%matplotlib inline\n",
"import numpy as np\n",
"import pandas as pd\n",
"from IPython import display\n",
"import matplotlib.pylab as plt\n",
"import time\n",
"from IPython import display\n"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"a: [0 1 0 1 1 1]\n",
"\n",
"mu, c 0 0\n",
"[[ 0.18709855 0. ]\n",
" [-0.12785456 0. ]]\n",
"\n",
"mu, c 1 1\n",
"[[ 0.18709855 -0.14170366]\n",
" [-0.12785456 0.41424891]]\n",
"\n",
"mu, c 0 2\n",
"[[ 0.52861541 -0.14170366]\n",
" [ 0.00111371 0.41424891]]\n",
"\n",
"mu, c 1 3\n",
"[[ 0.52861541 0.89944324]\n",
" [ 0.00111371 1.09908324]]\n",
"\n",
"mu, c 1 4\n",
"[[ 5.28615411e-01 1.89455526e+00]\n",
" [ 1.11371268e-03 1.83856955e+00]]\n",
"\n",
"mu, c 1 5\n",
"[[ 5.28615411e-01 2.55948263e+00]\n",
" [ 1.11371268e-03 2.44099325e+00]]\n"
]
},
{
"data": {
"image/png": "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\noPZ60dn9OX1u+rGq+htJ/qC7//Z5vuddSf5vd/+bHd53xRkAC2U3F53t9de6Pp7knyT510n+cZKP\nnTugql6c5EB3n6yqv5Lk7yf59Z02uJtFA8Ci2ese9qVJPpzkZUm+kdO/1jWtqpcm+Q/d/Q+q6uok\nv5vTh8svSvKfuvtf7X3pALA49t2/1gUAPN2++1Wrqrqlqv64qr5fVX933uvZb6rq9VX1tap6oKp+\nbd7r2a+q6n1V9VhVfXnea9nPqurKqvpsVX2lqu6rql+d95r2q6p6UVXdW1XHNj+v35j3mvazqjpQ\nVV+qqo/Pey37WVU9XFX/c/Pn6g+faey+C3aS+5L8wySfm/dC9puqOpDk3Ul+PsmPJ7m1ql4531Xt\nW7+d058Tz+wvk7y9u388yWuSvMXP1Pa6+y+S/Ex3H0zyd5L8vapanvOy9rO3JfnqvBcxgF3fWGzf\nBbu7/6S7H8zpXx/jbNcnebC7v9HdTyb5UE7fvIZzbP7a4LfnvY79rru/1d3HNx+fTHJ/kivmu6r9\nq7uf2Hz4opz+89PP2Daq6sokNyW5e95rGcCubyy274LNM7oiySNbnv9Z/OHKjFTVUpLrktw735Xs\nX5uHeY8l+VaSSXfbg9zebya5PTvfm4P/b9c3FpvLv9b1DDdjOdzdn5jHmmCRVdUPJflIkrdt7mmz\nje4+leRgVf3VJJ+uqtd2t9N3W1TVoSSPdffxqlqJo6Xns+sbi80l2N39c/OY93ng0SRXbXl+5eZr\n8AOrqotyOtYf6O6n3UuBp+vuE1W1nuQn43qbcy0neUNV3ZTk4iQ/XFX3dPevzHld+1J3f3Pzv/+n\nqn43p099bhvs/X5I3N/MzvZHSf5mVb28ql6Y5Bdz+uY1bK/iZ2g3/mOSr3b3v533QvazqvqRqnrJ\n5uOLk/xckuPzXdX+093v6O6ruvvHcvrPqM+K9faq6sWbR7ey5cZif7zT+H0X7Kr6hap6JMkNSf5r\nVX1q3mvaL7r7+0nemuTTSb6S5EPdff98V7U/VdUHk/z3JNdW1Z9W1Zvmvab9aPMq51/O6Suej23+\nGs7r572ufeqlSf5g8xz2/0jy8e7+zJzXxNguT/KFLT9Tn+juT+802I1TAGAA+24PGwB4OsEGgAEI\nNgAMQLABYACCDQADEGwAGIBgA8AABBsABvD/ANY5r1eBfVAEAAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10e26d550>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"\n",
"N = 6\n",
"D = 2\n",
"X1 = np.random.randn(D,N/2)\n",
"X2 = 0.8*np.random.randn(D,N/2) + 3*np.ones((D, N/2))\n",
"\n",
"X = np.hstack((np.mat(X1), np.mat(X2)))\n",
"\n",
"#plt.plot(X[0,:], X[1,:],'x')\n",
"#plt.show()\n",
"\n",
"K = 2;\n",
"\n",
"W = np.mat('[3,0;0,1]')\n",
"mu = X[:,0:K]\n",
"#plt.plot(mu[0,:],mu[1,:],'ro')\n",
"\n",
"EP = 200\n",
"\n",
"fig = plt.figure(figsize=(8,10))\n",
"plt.plot(X[0,:], X[1,:],'kx')\n",
"\n",
"ax = fig.gca()\n",
"ln = plt.Line2D(xdata=mu[0,:], ydata=mu[1,:], marker='o', color='r',linestyle=None,linewidth=0)\n",
"ax.add_line(ln)\n",
"\n",
"eta = 0.3\n",
"#print X\n",
"#print mu\n",
"\n",
"dist = np.zeros((N,K))\n",
"for i in range(N):\n",
" for c in range(K):\n",
" err = X[:,i]-mu[:,c]\n",
" dist[i,c] = float(err.T*W.I*err)\n",
"# print\n",
"# print \"i, c\", i, c\n",
"# print dist\n",
"\n",
"a = np.argmin(dist, axis=1)\n",
"print \"a: \", a\n",
"\n",
"mu = np.mat(np.zeros((D,K)))\n",
"count = np.zeros((K))\n",
"for i,c in enumerate(a):\n",
" # count[c] += 1\n",
" #mu[:,c] = (count[c]-1)/count[c]*mu[:,c] + 1/count[c]*X[:,i]\n",
" mu[:,c] = (1-eta)*mu[:,c] + eta*X[:,i]\n",
" print \"\\nmu, c\", c, i\n",
" print mu\n",
"\n",
"# ------------\n",
"\n",
"for e in range(0):\n",
" \n",
" dist = np.zeros((N,K))\n",
" for i in range(N):\n",
" for c in range(K):\n",
" err = X[:,i]-mu[:,c]\n",
" dist[i,c] = float(err.T*W.I*err)\n",
" \n",
" # Assignments\n",
" a = np.argmin(dist, axis=1)\n",
" \n",
" mu = np.mat(np.zeros((D,K)))\n",
" count = np.zeros((K))\n",
" for i,c in enumerate(a):\n",
" count[c] += 1\n",
" #mu[:,c] = (count[c]-1)/count[c]*mu[:,c] + 1/count[c]*X[:,i]\n",
" mu[:,c] = (1-eta)*mu[:,c] + eta*X[:,i]\n",
" \n",
" ln.set_xdata(mu[0,:])\n",
" ln.set_ydata(mu[1,:])\n",
" \n",
" #plt.subplot(EP,1,e+1)\n",
" display.clear_output(wait=True)\n",
" display.display(plt.gcf())\n",
" time.sleep(0.1)\n",
" plt.plot(X[0,:], X[1,:],'kx')\n",
" #plt.plot(mu[0,:],mu[1,:],'ro')\n",
"\n",
"plt.show()\n",
" "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"matrix([[4, 2, 7],\n",
" [0, 7, 1],\n",
" [9, 3, 2]])"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"a = np.mat([ [4, 2, 7], [0, 7, 1], [9, 3, 2] ])\n",
"a"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"matrix([[1],\n",
" [0],\n",
" [2]])"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.argmin(a, axis=1)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"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.10"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Loading

0 comments on commit 20501ae

Please sign in to comment.