Created
March 8, 2017 19:22
-
-
Save fedeisas/913edefc46e9d5948663779a78616b62 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "code", | |
"execution_count": 226, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"import numpy as np\n", | |
"import random\n", | |
"import matplotlib.pyplot as plt\n", | |
"import matplotlib.cm as cm\n", | |
"import pandas as pd\n", | |
"%matplotlib inline" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 238, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\ng9VhogKRAAAAAElFTkSuQmCC\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x10d549710>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"data = [\n", | |
" [-0.7, -1, -1],\n", | |
" [-.5, .5, -1],\n", | |
" #[.25, .1, -1],\n", | |
" [.5, .5, 1],\n", | |
" [.6, .6, 1],\n", | |
" [.1, .2, 1],\n", | |
"]\n", | |
"\n", | |
"df = pd.DataFrame(data, columns=('x1', 'x2', 'y'))\n", | |
"\n", | |
"plt.scatter(x=df[df['y'] == -1]['x1'], y=df[df['y'] == -1]['x2'], color='r')\n", | |
"plt.scatter(x=df[df['y'] == 1]['x1'], y=df[df['y'] == 1]['x2'], color='b')\n", | |
"plt.xlim(-1.1, 1.1)\n", | |
"plt.ylim(-1.1, 1.1)\n", | |
"\n", | |
"plt.show()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 242, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"{\"x1\":0.5,\"x2\":0.3,\"b\":0.02} \n", | |
"\n", | |
"[CORRECT] {\"x1\":-0.7,\"x2\":-1.0,\"y\":-1.0} -0.63\n", | |
"[CORRECT] {\"x1\":-0.5,\"x2\":0.5,\"y\":-1.0} -0.08\n", | |
"[CORRECT] {\"x1\":0.5,\"x2\":0.5,\"y\":1.0} 0.42\n", | |
"[CORRECT] {\"x1\":0.6,\"x2\":0.6,\"y\":1.0} 0.5\n", | |
"[CORRECT] {\"x1\":0.1,\"x2\":0.2,\"y\":1.0} 0.13\n" | |
] | |
} | |
], | |
"source": [ | |
"n_features = df.shape[1] - 1\n", | |
"weights = np.zeros(n_features)\n", | |
"b = 0\n", | |
"max_iter = 10\n", | |
"step = .01\n", | |
"\n", | |
"for iteration in xrange(max_iter):\n", | |
" for index, row in df.sample(frac=1).iterrows():\n", | |
" a = np.sum(row[:n_features] * weights)\n", | |
" if (row[-1] * a <= 0):\n", | |
" # update weights\n", | |
" weights = weights + row[:n_features]\n", | |
" b += row[-1] * step\n", | |
"\n", | |
"print weights.append(pd.Series({'b': b})).to_json(), \"\\n\"\n", | |
"\n", | |
"for index, row in df.iterrows():\n", | |
" a = np.sum(row[:n_features] * weights) + b\n", | |
" correct = row[-1] == np.sign(a)\n", | |
" print ('[CORRECT]' if correct else '[WRONG] '), row.to_json(), a" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 221, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\ng9VhogKRAAAAAElFTkSuQmCC\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x10e7a9d10>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"plt.scatter(x=df[df['y'] == -1]['x1'], y=df[df['y'] == -1]['x2'], color='r')\n", | |
"plt.scatter(x=df[df['y'] == 1]['x1'], y=df[df['y'] == 1]['x2'], color='b')\n", | |
"plt.xlim(-1.1, 1.1)\n", | |
"plt.ylim(-1.1, 1.1)\n", | |
"# plt.plot(\n", | |
"# (-1, 0, 1),\n", | |
"# (\n", | |
"# -1 * weights[0] + -1 * weights[1] + b,\n", | |
"# 0 * weights[0] + 0 * weights[1] + b,\n", | |
"# 1 * weights[0] + 1 * weights[1] + b,\n", | |
"# )\n", | |
"# )\n", | |
"plt.show()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 250, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"<matplotlib.text.Text at 0x10e00c610>" | |
] | |
}, | |
"execution_count": 250, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "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\nRK5CYII=\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x10ea0c9d0>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"def predict(row, weights, b):\n", | |
" return np.sign(np.dot(row, weights) + b)\n", | |
"\n", | |
"h = .01\n", | |
"# create a mesh to plot in\n", | |
"x_min, x_max = -1.1, 1.1\n", | |
"y_min, y_max = -1.1, 1.1\n", | |
"xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h))\n", | |
"\n", | |
"# Plot the decision boundary. For that, we will assign a color to each\n", | |
"# point in the mesh [x_min, m_max]x[y_min, y_max].\n", | |
"fig, ax = plt.subplots()\n", | |
"#Z = clf.predict(np.c_[xx.ravel(), yy.ravel()])\n", | |
"\n", | |
"Z = np.array([predict(row, weights, b) for row in np.c_[xx.ravel(), yy.ravel()]])\n", | |
"\n", | |
"# # Put the result into a color plot\n", | |
"Z = Z.reshape(xx.shape)\n", | |
"ax.contourf(xx, yy, Z, cmap=plt.cm.Vega10)\n", | |
"#ax.axis('off')\n", | |
"\n", | |
"# # Plot also the training points\n", | |
"ax.scatter(x=df[df['y'] == -1]['x1'], y=df[df['y'] == -1]['x2'], color='r')\n", | |
"ax.scatter(x=df[df['y'] == 1]['x1'], y=df[df['y'] == 1]['x2'], color='b')\n", | |
"\n", | |
"ax.set_title('Perceptron')" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [] | |
}, | |
{ | |
"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.13" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 2 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment