├── Chapter10.ipynb ├── Chapter11.ipynb ├── Chapter2.ipynb ├── Chapter4.ipynb ├── Chapter5.ipynb ├── Chapter6.ipynb ├── Chapter7.ipynb ├── Chapter8.ipynb ├── Chapter9.ipynb └── README.md /Chapter7.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "## Chapter 7\n", 8 | "### This notebook and the figures below are made by Yeseul Lee, under the guidance of Steven Skiena." 9 | ] 10 | }, 11 | { 12 | "cell_type": "code", 13 | "execution_count": 1, 14 | "metadata": { 15 | "collapsed": true 16 | }, 17 | "outputs": [], 18 | "source": [ 19 | "from scipy import stats\n", 20 | "import pandas as pd\n", 21 | "import matplotlib.pyplot as plt\n", 22 | "import numpy as np\n", 23 | "from sklearn.metrics import roc_curve\n", 24 | "%matplotlib inline" 25 | ] 26 | }, 27 | { 28 | "cell_type": "markdown", 29 | "metadata": {}, 30 | "source": [ 31 | "### Figure 7.3 and 7.6 Left\n", 32 | "#### Data Source: https://www.statcrunch.com/app/index.php?dataid=1406047" 33 | ] 34 | }, 35 | { 36 | "cell_type": "code", 37 | "execution_count": 2, 38 | "metadata": { 39 | "collapsed": false, 40 | "scrolled": false 41 | }, 42 | "outputs": [ 43 | { 44 | "data": { 45 | "text/plain": [ 46 | "" 47 | ] 48 | }, 49 | "execution_count": 2, 50 | "metadata": {}, 51 | "output_type": "execute_result" 52 | }, 53 | { 54 | "data": { 55 | "image/png": "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\n", 56 | "text/plain": [ 57 | "" 58 | ] 59 | }, 60 | "metadata": {}, 61 | "output_type": "display_data" 62 | } 63 | ], 64 | "source": [ 65 | "path = \"/home/yeseul/practice-notebook/weight.xls\"\n", 66 | "data = pd.ExcelFile(path).parse('Sheet1')\n", 67 | "men = data[data[\"Gender\"]==1]\n", 68 | "women = data[data[\"Gender\"]==0]\n", 69 | "\n", 70 | "bsize = 75\n", 71 | "n, bins, patches = plt.hist(men[\"Height\"], bins=range(140,max(men[\"Height\"]),1), normed=True, \\\n", 72 | " color=\"blue\", alpha=0.4, linewidth=0)\n", 73 | "\n", 74 | "plt.hist(women[\"Height\"], bins=range(140,max(men[\"Height\"]),1), normed=True, \\\n", 75 | " color=\"red\", alpha=0.4, linewidth=0)\n", 76 | "\n", 77 | "plt.ylim(0,0.065)\n", 78 | "plt.vlines(168, 0, 0.08)\n", 79 | "\n", 80 | "plt.text(158, 0.027, \"TN\", fontsize=16, fontweight=\"bold\")\n", 81 | "plt.text(162, 0.007, \"FN\", fontsize=16, fontweight=\"bold\")\n", 82 | "plt.text(169, 0.007, \"FP\", fontsize=16, fontweight=\"bold\")\n", 83 | "plt.text(175, 0.027, \"TP\", fontsize=16, fontweight=\"bold\")" 84 | ] 85 | }, 86 | { 87 | "cell_type": "markdown", 88 | "metadata": {}, 89 | "source": [ 90 | "### For Figure 7.6, need data that's not normalized." 91 | ] 92 | }, 93 | { 94 | "cell_type": "code", 95 | "execution_count": 3, 96 | "metadata": { 97 | "collapsed": false 98 | }, 99 | "outputs": [ 100 | { 101 | "data": { 102 | "image/png": "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\n", 103 | "text/plain": [ 104 | "" 105 | ] 106 | }, 107 | "metadata": {}, 108 | "output_type": "display_data" 109 | } 110 | ], 111 | "source": [ 112 | "nM, binM, patchesM = plt.hist(men[\"Height\"], bins=range(140,max(men[\"Height\"]),1), \\\n", 113 | " color=\"blue\", alpha=0.4, linewidth=0)\n", 114 | "\n", 115 | "nW, binW, patchesW = plt.hist(women[\"Height\"], bins=range(140,max(men[\"Height\"]),1), \\\n", 116 | " color=\"red\", alpha=0.4, linewidth=0)" 117 | ] 118 | }, 119 | { 120 | "cell_type": "markdown", 121 | "metadata": {}, 122 | "source": [ 123 | "### Figure 7.6 Right" 124 | ] 125 | }, 126 | { 127 | "cell_type": "code", 128 | "execution_count": 4, 129 | "metadata": { 130 | "collapsed": false 131 | }, 132 | "outputs": [ 133 | { 134 | "data": { 135 | "text/plain": [ 136 | "" 137 | ] 138 | }, 139 | "execution_count": 4, 140 | "metadata": {}, 141 | "output_type": "execute_result" 142 | }, 143 | { 144 | "data": { 145 | "image/png": "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\niEiO/h/2QdAdH2qInQAAAABJRU5ErkJggg==\n", 146 | "text/plain": [ 147 | "" 148 | ] 149 | }, 150 | "metadata": {}, 151 | "output_type": "display_data" 152 | } 153 | ], 154 | "source": [ 155 | "tpr = []\n", 156 | "fpr = []\n", 157 | "#total num people\n", 158 | "totalW = len(women[\"Height\"])\n", 159 | "totalM = len(men[\"Height\"])\n", 160 | "\n", 161 | "#total num people checked.\n", 162 | "sumW = 0\n", 163 | "sumM = 0\n", 164 | "total = len(data[\"Height\"])\n", 165 | "\n", 166 | "for i in range(len(binM)-1):\n", 167 | " tprate = (totalM-sumM)/float(totalM)\n", 168 | " fprate = (totalW-sumW)/float(totalW)\n", 169 | " tpr.append(tprate)\n", 170 | " fpr.append(fprate)\n", 171 | " sumM += nM[i]\n", 172 | " sumW += nW[i]\n", 173 | " \n", 174 | "plt.figure(figsize=(5,5))\n", 175 | "plt.plot(fpr, tpr, 'bo', fpr, tpr, 'b-')\n", 176 | "plt.plot(np.linspace(0,1,100), np.linspace(0,1,100), 'r-')\n", 177 | "\n", 178 | "plt.xlim(-0.05, 1)\n", 179 | "plt.ylim(0,1.05)\n", 180 | "plt.xlabel(\"False Positive Rate\")\n", 181 | "plt.ylabel(\"True Positive Rate\")\n", 182 | "plt.title(\"ROC Curve for Gender by Height\")" 183 | ] 184 | } 185 | ], 186 | "metadata": { 187 | "kernelspec": { 188 | "display_name": "Python 2", 189 | "language": "python", 190 | "name": "python2" 191 | }, 192 | "language_info": { 193 | "codemirror_mode": { 194 | "name": "ipython", 195 | "version": 2 196 | }, 197 | "file_extension": ".py", 198 | "mimetype": "text/x-python", 199 | "name": "python", 200 | "nbconvert_exporter": "python", 201 | "pygments_lexer": "ipython2", 202 | "version": "2.7.12" 203 | } 204 | }, 205 | "nbformat": 4, 206 | "nbformat_minor": 0 207 | } 208 | -------------------------------------------------------------------------------- /Chapter8.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "## Chapter 8\n", 8 | "### This notebook and the figures below are made by Yeseul Lee, under the guidance of Steven Skiena." 9 | ] 10 | }, 11 | { 12 | "cell_type": "code", 13 | "execution_count": 1, 14 | "metadata": { 15 | "collapsed": true 16 | }, 17 | "outputs": [], 18 | "source": [ 19 | "import numpy as np\n", 20 | "import matplotlib.pyplot as plt\n", 21 | "import random\n", 22 | "from matplotlib.patches import FancyArrowPatch\n", 23 | "from mpl_toolkits.mplot3d import proj3d\n", 24 | "from sklearn.decomposition import PCA\n", 25 | "\n", 26 | "%matplotlib inline" 27 | ] 28 | }, 29 | { 30 | "cell_type": "markdown", 31 | "metadata": {}, 32 | "source": [ 33 | "### For Figure 8.1, Arrow3D Class\n", 34 | "#### The source of the following code is http://stackoverflow.com/a/11156353" 35 | ] 36 | }, 37 | { 38 | "cell_type": "code", 39 | "execution_count": 2, 40 | "metadata": { 41 | "collapsed": true 42 | }, 43 | "outputs": [], 44 | "source": [ 45 | "class Arrow3D(FancyArrowPatch):\n", 46 | " def __init__(self, xs, ys, zs, *args, **kwargs):\n", 47 | " FancyArrowPatch.__init__(self, (0,0), (0,0), *args, **kwargs)\n", 48 | " self._verts3d = xs, ys, zs\n", 49 | "\n", 50 | " def draw(self, renderer):\n", 51 | " xs3d, ys3d, zs3d = self._verts3d\n", 52 | " xs, ys, zs = proj3d.proj_transform(xs3d, ys3d, zs3d, renderer.M)\n", 53 | " self.set_positions((xs[0],ys[0]),(xs[1],ys[1]))\n", 54 | " FancyArrowPatch.draw(self, renderer)" 55 | ] 56 | }, 57 | { 58 | "cell_type": "markdown", 59 | "metadata": {}, 60 | "source": [ 61 | "### Figure 8.1 Left\n", 62 | "The three figures may look different from the textbook because of random points." 63 | ] 64 | }, 65 | { 66 | "cell_type": "code", 67 | "execution_count": 3, 68 | "metadata": { 69 | "collapsed": false, 70 | "scrolled": true 71 | }, 72 | "outputs": [ 73 | { 74 | "data": { 75 | "image/png": "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\nHSYAADbQYQJORocJmEVgAg5BhwmYxZIs4CB0mEBC0GECAGADHSbgZHSYgFkEJuAQdJiAWSzJAg5C\nhwkkBB0mAAA20GECTkaHCZhFYAIOQYcJmMWSLOAgdJhAQtBhAgBgAx0m4GR0mIBZrO0ASay1tVWB\nQECff/65+vv7FQqFdPDgQX3++efq6enRjBkz9P3vf9/0mEBaIDCBJLZnzx4dOnRo0GPV1dWSJI/H\no4KCAhNjAWmJJVkgiS1ZskRer3fI55YtW6aHH344wRMB6YvABJKY1+vVX/zFX8jlGnwPQmZmpr79\n7W9f9ziA0UNgAkmuqKhIM2bMGPSYZVnyeDyGJgLSEx0m4ABu9x9f22ZlZemRRx5RVlaWwYmA9MMV\nJuAAf/Znf6bZs2dLutJrLly40PBEQPohMAEHGDdunFauXCmXy6XS0lLT4wBpicAEHGL8+PGyLEv5\n+fmmRwHSEkfjAQ7S19en7Oxs02MAqY6zZAEAsIGzZAEAuF0EJgAANhCYAADYQGACAGADgQkAgA0E\nJgAANhCYAADYQGACAGADgQkAgA0EJgAANhCYAADYQGACAGADgQkAgA0EJgAANhCYAADYQGACAGAD\ngQkAgA0EJgAANhCYAADYQGACAGADgQkAgA0EJgAANhCYAADYQGACAGADgQkAgA0EJgAANhCYAADY\nQGACAGADgQkAgA0EJgAANhCYAADYQGACAGADgQkAgA0EJgAANhCYAADYQGACAGADgQkAgA0EJgAA\nNhCYAADYQGACAGADgQkAgA0EJgAANhCYAADYQGACAGADgQkAgA0EJgAANhCYAADYQGACAGADgQkA\ngA0EJgAANhCYAADYQGACAGADgQkAgA0EJgAANhCYAADYQGACAGADgQkAgA0EJgAANhCYAADYQGAC\nAGADgQkAgA0EJgAANhCYAADYkHGL510JmQIAgCTHFSYAADYQmAAA2EBgAgBgA4EJAIANBCYAADYQ\nmAAA2PD/AbIEPjfm0coEAAAAAElFTkSuQmCC\n", 76 | "text/plain": [ 77 | "" 78 | ] 79 | }, 80 | "metadata": {}, 81 | "output_type": "display_data" 82 | } 83 | ], 84 | "source": [ 85 | "# Points in uniform distribution\n", 86 | "d = 1.25\n", 87 | "n = 10\n", 88 | "x = np.random.uniform(-d,d,n)\n", 89 | "y = np.random.uniform(-d,d,n)\n", 90 | "z = np.random.uniform(-d,d,n)\n", 91 | "\n", 92 | "# points being represented to vector and scaled.\n", 93 | "fig = plt.figure(figsize=(8,8))\n", 94 | "ax = fig.gca(projection='3d')\n", 95 | "ax.set_aspect('equal')\n", 96 | "\n", 97 | "ax.plot(x,y,z, 'bo', markersize=7)\n", 98 | "\n", 99 | "# Draw the axis\n", 100 | "m = 2.5\n", 101 | "\n", 102 | "xa = Arrow3D([-m,m], [0,0], [0,0], mutation_scale=20, lw=1, linestyle=\":\", arrowstyle=\"<|-|>\", color='gray')\n", 103 | "ya = Arrow3D([0,0], [-m,m], [0,0], mutation_scale=20, lw=1, linestyle=\":\", arrowstyle=\"<|-|>\", color='gray')\n", 104 | "za = Arrow3D([0,0], [0,0], [-m,m], mutation_scale=20, lw=1, linestyle=\":\", arrowstyle=\"<|-|>\", color='gray')\n", 105 | "ax.add_artist(xa)\n", 106 | "ax.add_artist(ya)\n", 107 | "ax.add_artist(za)\n", 108 | "\n", 109 | "ax.set_xlim(-1.5,1.5)\n", 110 | "ax.set_ylim(-1.5,1.5)\n", 111 | "ax.set_zlim(-1.5,1.5)\n", 112 | "\n", 113 | "ax.set_axis_off()" 114 | ] 115 | }, 116 | { 117 | "cell_type": "markdown", 118 | "metadata": {}, 119 | "source": [ 120 | "### Figure 8.1 Middle" 121 | ] 122 | }, 123 | { 124 | "cell_type": "code", 125 | "execution_count": 4, 126 | "metadata": { 127 | "collapsed": false, 128 | "scrolled": true 129 | }, 130 | "outputs": [ 131 | { 132 | "data": { 133 | "image/png": "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\nk1AwCakSmpubEUURJk6cWOmlEHJMwtZ4hFQRw8PDqK2trfQyCHmvw16yhBBCSBmwlywhhBDydqFg\nEkIIIWVAwSSEEELKgIJJCCGElAEFkxBCCCkDCiYhhBBSBhRMQgghpAwomIQQQkgZUDAJIYSQMqBg\nEkIIIWVAwSSEEELKgIJJCCGElAEFkxBCCCkDCiYhhBBSBhRMQgghpAwomIQQQkgZUDAJIYSQMqBg\nEkIIIWVAwSSEEELKgIJJCCGElAEFkxBCCCkDCiYhhBBSBhRMQgghpAwomIQQQkgZUDAJIYSQMqBg\nEkIIIWVAwSSEEELKgIJJCCGElAEFkxBCCCkDCiYhhBBSBhRMQgghpAwomIQQQkgZUDAJIYSQMqBg\nEkIIIWVAwSSEEELKgIJJCCGElAEFkxBCCCkDCiYhhBBSBhRMQgghpAwomIQQQkgZUDAJIYSQMqBg\nEkIIIWVAwSSEEELKgIJJCCGElAEFkxBCCCkDCiYhhBBSBhRMQgghpAwomIQQQkgZUDAJIYSQMqBg\nEkIIIWVAwSSEEELKgIJJCCGElAEFkxBCCCkDCiYhhBBSBhRMQgghpAwomIQQQkgZUDAJIYSQMqBg\nEkIIIWVAwSSEEELKgIJJCCGElAEFkxBCCCkDCiYhhBBSBhRMQgghpAxSb/K+NyarIIQQQsY5tDAJ\nIYSQMqBgEkIIIWVAwSSEEELKgIJJCCGElAEFkxBCCCkDCiYhhBBSBv8fCaqteBH9VQwAAAAASUVO\nRK5CYII=\n", 134 | "text/plain": [ 135 | "" 136 | ] 137 | }, 138 | "metadata": {}, 139 | "output_type": "display_data" 140 | } 141 | ], 142 | "source": [ 143 | "# Make vectors from those points and draw a transparent sphere\n", 144 | "fig = plt.figure(figsize=(8,8))\n", 145 | "ax = fig.gca(projection='3d')\n", 146 | "ax.set_aspect('equal')\n", 147 | "\n", 148 | "for i in range(0,n):\n", 149 | " ax.plot([0,x[i]],[0,y[i]], [0,z[i]], color='b' )\n", 150 | "\n", 151 | "ax.plot(x, y, z, 'bo', markersize=7)\n", 152 | "\n", 153 | "# Draw a sphere \n", 154 | "u = np.linspace(0, 2 * np.pi, 500)\n", 155 | "v = np.linspace(0, np.pi, 500)\n", 156 | "\n", 157 | "x1 = 1 * np.outer(np.cos(u), np.sin(v))\n", 158 | "y1 = 1 * np.outer(np.sin(u), np.sin(v))\n", 159 | "z1 = 1 * np.outer(np.ones(np.size(u)), np.cos(v))\n", 160 | "ax.plot_surface(x1, y1, z1, color='y', alpha=0.2, linewidth=0)\n", 161 | "\n", 162 | "# Draw axis through the origin\n", 163 | "m = 2.5\n", 164 | "\n", 165 | "xa = Arrow3D([-m,m], [0,0], [0,0], mutation_scale=20, lw=1, linestyle=':', arrowstyle=\"<|-|>\", color='gray')\n", 166 | "ya = Arrow3D([0,0], [-m,m], [0,0], mutation_scale=20, lw=1, linestyle=':', arrowstyle=\"<|-|>\", color='gray')\n", 167 | "za = Arrow3D([0,0], [0,0], [-m,m], mutation_scale=20, lw=1, linestyle=':', arrowstyle=\"<|-|>\", color='gray')\n", 168 | "ax.add_artist(xa)\n", 169 | "ax.add_artist(ya)\n", 170 | "ax.add_artist(za)\n", 171 | "\n", 172 | "ax.set_xlim(-1.5,1.5)\n", 173 | "ax.set_ylim(-1.5,1.5)\n", 174 | "ax.set_zlim(-1.5,1.5)\n", 175 | "\n", 176 | "ax.set_axis_off()" 177 | ] 178 | }, 179 | { 180 | "cell_type": "markdown", 181 | "metadata": {}, 182 | "source": [ 183 | "### Figure 8.1 Right" 184 | ] 185 | }, 186 | { 187 | "cell_type": "code", 188 | "execution_count": 5, 189 | "metadata": { 190 | "collapsed": false, 191 | "scrolled": true 192 | }, 193 | "outputs": [ 194 | { 195 | "data": { 196 | "image/png": "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\nYmJiAolEotTLIOTNDnvJEkIIIUXAXrKEEELI7woFkxBCCCkCCiYhhBBSBBRMQgghpAgomIQQQkgR\nUDAJIYSQIqBgEkIIIUVAwSSEEEKKgIJJCCGEFAEFkxBCCCkCCiYhhBBSBBRMQgghpAgomIQQQkgR\nUDAJIYSQIqBgEkIIIUVAwSSEEEKKgIJJCCGEFAEFkxBCCCkCCiYhhBBSBBRMQgghpAgomIQQQkgR\nUDAJIYSQIqBgEkIIIUVAwSSEEEKKgIJJCCGEFAEFkxBCCCkCCiYhhBBSBBRMQgghpAgomIQQQkgR\nUDAJIYSQIqBgEkIIIUVAwSSEEEKKgIJJCCGEFAEFkxBCCCkCCiYhhBBSBBRMQgghpAgomIQQQkgR\nUDAJIYSQIqBgEkIIIUVAwSSEEEKKgIJJCCGEFAEFkxBCCCkCCiYhhBBSBBRMQgghpAgomIQQQkgR\nUDAJIYSQIqBgEkIIIUVAwSSEEEKKgIJJCCGEFAEFkxBCCCkCCiYhhBBSBBRMQgghpAgomIQQQkgR\nUDAJIYSQIqBgEkIIIUVAwSSEEEKKgIJJCCGEFAEFkxBCCCkCCiYhhBBSBBRMQgghpAgomIQQQkgR\nUDAJIYSQIqBgEkIIIUUQ/S2vO9OyCkIIIWSGQwuTEEIIKQIKJiGEEFIEFExCCCGkCCiYhBBCSBFQ\nMAkhhJAioGASQgghRfD/AeARpSuDbbYzAAAAAElFTkSuQmCC\n", 197 | "text/plain": [ 198 | "" 199 | ] 200 | }, 201 | "metadata": {}, 202 | "output_type": "display_data" 203 | } 204 | ], 205 | "source": [ 206 | "# Then make unit vectors from those points and draw a transparent sphere\n", 207 | "fig = plt.figure(figsize=(8,8))\n", 208 | "ax = fig.gca(projection='3d')\n", 209 | "ax.set_aspect('equal')\n", 210 | "\n", 211 | "# New points\n", 212 | "for i in range(0,n):\n", 213 | " mag = (x[i]**2 + y[i]**2+ z[i]**2)**0.5\n", 214 | " ax.plot([0,x[i]/mag],[0,y[i]/mag], [0,z[i]/mag], color='r', marker='o', markersize=7)\n", 215 | "\n", 216 | " \n", 217 | "# Draw sphere \n", 218 | "u = np.linspace(0, 2 * np.pi, 500)\n", 219 | "v = np.linspace(0, np.pi, 500)\n", 220 | "\n", 221 | "x1 = 1 * np.outer(np.cos(u), np.sin(v))\n", 222 | "y1 = 1 * np.outer(np.sin(u), np.sin(v))\n", 223 | "z1 = 1 * np.outer(np.ones(np.size(u)), np.cos(v))\n", 224 | "ax.plot_surface(x1, y1, z1, color='y', alpha=0.2, linewidth=0)\n", 225 | "\n", 226 | "# Draw axis through the origin\n", 227 | "m = 2.5\n", 228 | "\n", 229 | "xa = Arrow3D([-m,m], [0,0], [0,0], mutation_scale=20, lw=1, linestyle=\":\", arrowstyle=\"<|-|>\", color='gray')\n", 230 | "ya = Arrow3D([0,0], [-m,m], [0,0], mutation_scale=20, lw=1, linestyle=\":\", arrowstyle=\"<|-|>\", color='gray')\n", 231 | "za = Arrow3D([0,0], [0,0], [-m,m], mutation_scale=20, lw=1, linestyle=\":\", arrowstyle=\"<|-|>\", color='gray')\n", 232 | "ax.add_artist(xa)\n", 233 | "ax.add_artist(ya)\n", 234 | "ax.add_artist(za)\n", 235 | "\n", 236 | "ax.set_xlim(-1.5,1.5)\n", 237 | "ax.set_ylim(-1.5,1.5)\n", 238 | "ax.set_zlim(-1.5,1.5)\n", 239 | "\n", 240 | "ax.set_axis_off()" 241 | ] 242 | }, 243 | { 244 | "cell_type": "markdown", 245 | "metadata": {}, 246 | "source": [ 247 | "### Figure 8.16 Left - PCA" 248 | ] 249 | }, 250 | { 251 | "cell_type": "code", 252 | "execution_count": 6, 253 | "metadata": { 254 | "collapsed": false, 255 | "scrolled": true 256 | }, 257 | "outputs": [ 258 | { 259 | "data": { 260 | "text/plain": [ 261 | "(-3, 22)" 262 | ] 263 | }, 264 | "execution_count": 6, 265 | "metadata": {}, 266 | "output_type": "execute_result" 267 | }, 268 | { 269 | "data": { 270 | "image/png": "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\nRU5ErkJggg==\n", 271 | "text/plain": [ 272 | "" 273 | ] 274 | }, 275 | "metadata": {}, 276 | "output_type": "display_data" 277 | } 278 | ], 279 | "source": [ 280 | "numPoints = 50\n", 281 | "x = np.random.uniform(3,12,numPoints) +3\n", 282 | "y = x + np.random.uniform(-3,3,numPoints)+3\n", 283 | "\n", 284 | "# Use PCA function\n", 285 | "X = np.array([[xi,yi] for xi,yi in zip(x,y)])\n", 286 | "pca = PCA(n_components=2)\n", 287 | "pca_result = pca.fit_transform(X)\n", 288 | "\n", 289 | "pts =[abs(d[1]) for d in pca_result]\n", 290 | "min_index = np.argmin(pts)\n", 291 | "\n", 292 | "x_pca = np.linspace(0,18,30)\n", 293 | "r = np.matmul([-5,0],pca.components_)\n", 294 | "centroid_orig = [sum(x)/float(len(x)), sum(y)/float(len(x))]\n", 295 | "centroid_pca = [sum(pca_result[:,0])/float(len(x)), sum(pca_result[:,1])/float(len(x))]\n", 296 | "\n", 297 | "# Plot points and lines\n", 298 | "plt.plot(x,y,'ko', label='orig points', markersize = 4)\n", 299 | "plt.plot(pca_result[:,0], pca_result[:,1],'ro', label='pca 2d points', markersize=4)\n", 300 | "plt.plot([centroid_orig[0], centroid_pca[0]], [centroid_orig[1], centroid_pca[1]],'bo', label='centroids')\n", 301 | "plt.plot([-9,9],[0,0],'k-', label='PCA axis')\n", 302 | "\n", 303 | "# Line through orig points\n", 304 | "line_xrange = np.linspace(5,16,20)\n", 305 | "line_slope = (centroid_orig[1] - y[min_index])/(centroid_orig[0]- x[min_index])\n", 306 | "b = -centroid_orig[0]*line_slope + centroid_orig[1]\n", 307 | "plt.plot(line_xrange, line_slope*line_xrange + b, 'k-')\n", 308 | "\n", 309 | "plt.legend(loc='upper left')\n", 310 | "plt.xlim(-10,17)\n", 311 | "plt.ylim(-3,22)" 312 | ] 313 | }, 314 | { 315 | "cell_type": "markdown", 316 | "metadata": {}, 317 | "source": [ 318 | "### Figure 8.16 Right - PCA" 319 | ] 320 | }, 321 | { 322 | "cell_type": "code", 323 | "execution_count": 7, 324 | "metadata": { 325 | "collapsed": false 326 | }, 327 | "outputs": [ 328 | { 329 | "data": { 330 | "text/plain": [ 331 | "(6, 21)" 332 | ] 333 | }, 334 | "execution_count": 7, 335 | "metadata": {}, 336 | "output_type": "execute_result" 337 | }, 338 | { 339 | "data": { 340 | "image/png": "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\n3HrBfQAAAABJRU5ErkJggg==\n", 341 | "text/plain": [ 342 | "" 343 | ] 344 | }, 345 | "metadata": {}, 346 | "output_type": "display_data" 347 | } 348 | ], 349 | "source": [ 350 | "plt.figure(figsize=(5,5))\n", 351 | "\n", 352 | "#Draw just the original points, the line and their projection to the line.\n", 353 | "plt.plot(x,y,'ko', markersize=4)\n", 354 | "plt.plot(line_xrange, line_slope*line_xrange + b, 'k-')\n", 355 | "for xi,yi in zip(x,y):\n", 356 | " #Find the new b of the perpendicular line\n", 357 | " bi = 1/line_slope * xi + yi\n", 358 | " #Solve for x and y\n", 359 | " new_x = (bi-b)/(line_slope+(1/line_slope))\n", 360 | " new_y = line_slope*new_x + b\n", 361 | " plt.plot([new_x], [new_y], 'ro', markersize=3.5)\n", 362 | " plt.plot([xi, new_x], [yi, new_y], 'k--')\n", 363 | " \n", 364 | "plt.xlim(3,18)\n", 365 | "plt.ylim(6,21)" 366 | ] 367 | } 368 | ], 369 | "metadata": { 370 | "kernelspec": { 371 | "display_name": "Python 2", 372 | "language": "python", 373 | "name": "python2" 374 | }, 375 | "language_info": { 376 | "codemirror_mode": { 377 | "name": "ipython", 378 | "version": 2 379 | }, 380 | "file_extension": ".py", 381 | "mimetype": "text/x-python", 382 | "name": "python", 383 | "nbconvert_exporter": "python", 384 | "pygments_lexer": "ipython2", 385 | "version": "2.7.12" 386 | } 387 | }, 388 | "nbformat": 4, 389 | "nbformat_minor": 0 390 | } 391 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Data-science-manual-notebooks 2 | This repository contains jupyter notebooks where I put together most figures that 3 | I made for Professor Steven Skiena's book "The Data Science Design Manual." 4 | I hope you enjoy! :) 5 | Soli Deo gloria. 6 | 7 | Please note that you may use them as resources for learning purposes, 8 | but you have no right to sell, manipulate, or claim them as yours, meaning you need my permission for these. 9 | --------------------------------------------------------------------------------