diff options
| -rw-r--r-- | logistic_regression_notebook.ipynb | 50 | ||||
| -rw-r--r-- | src/logreg_predct.py | 11 | ||||
| -rw-r--r-- | src/logreg_train.py | 11 | ||||
| -rw-r--r-- | src/model.py | 54 |
4 files changed, 101 insertions, 25 deletions
diff --git a/logistic_regression_notebook.ipynb b/logistic_regression_notebook.ipynb index 3b4f165..cd9f013 100644 --- a/logistic_regression_notebook.ipynb +++ b/logistic_regression_notebook.ipynb @@ -11,7 +11,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 1, "metadata": {}, "outputs": [ { @@ -20,13 +20,13 @@ "Text(0.5, 1.0, 'Data representation')" ] }, - "execution_count": 3, + "execution_count": 1, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] @@ -82,7 +82,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 2, "metadata": {}, "outputs": [ { @@ -91,7 +91,7 @@ "Text(0.5, 1.0, 'Sigmoid function')" ] }, - "execution_count": 8, + "execution_count": 2, "metadata": {}, "output_type": "execute_result" }, @@ -124,7 +124,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 3, "metadata": {}, "outputs": [ { @@ -133,13 +133,13 @@ "Text(0.5, 1.0, 'Approximation')" ] }, - "execution_count": 18, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAEICAYAAACktLTqAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzt3XeY1NW9x/H3d7axyy4gJSgILMhKICCoxF7BgtGr0VjAQjHWGEtuTK6xG2tiNEpiooiIFay5GqOxQYLXSglB0eCqwNI7LG3rnPvHGWBAll1gds+Uz+t55tkpv5357PDwmd+cXznmnENERNJLJHQAERFJPJW7iEgaUrmLiKQhlbuISBpSuYuIpCGVu4hIGlK5i8Qxs3Vm1q2JXuthM7upKV5LMo9pP3dpSmb2D6AvsKdzrjJwnCZjZsOBi5xzR4TOIplBa+7SZMysGDgScMCpjfQa2Y3xvCKpRuUuTWko8BEwFhi26U4zGxsbonjbzNaa2T/NrEvc487MrjKzb8xsuZnda2aR2GPDzex9M/u9ma0AbjWziJndaGZzzWypmT1pZi1jy59jZrPNrEXs9klmttjM2sW9Vve4XH8yszdiwzXvm9meZvaAma0ys/+Y2f5xOa8zs69jf8PnZnZ67P6ewMPAobHnWR33/HfE/f7FZvaVma00s1fNrMM278FlZlZqZqvN7CEzswT/+0gaUblLUxoKPBO7nGhm7eMeOw+4HWgLTI8tE+90oD9wAHAacGHcYwcD3wDtgTuB4bHLsUA3oBD4I4Bz7jngA2CkmbUBHsMPlyyrI/PZwI2xXJXAh8C02O0Xgfvjlv0a/82kJXAb8LSZ7eWc+wK4DPjQOVfonGu17YuY2QDg7tjr7QXMBcZvs9gpwPeB/WLLnVhHZhGVuzQNMzsC6AI875ybii/Cc+MW+ZtzblJsHP4G/Fpup7jHf+OcW+mcKwMeAIbEPbbQOfcH51yNc24j/oPifufcN865dcCvgMFxQzZXAAOAfwB/dc69toPof3HOTXXOVQB/ASqcc08652qB54DNa+7OuReccwudc9HYh0gpcFAD36LzgDHOuWmx9+BXsfegOG6Ze5xzq2PvwUSgXwOfWzKQyl2ayjDgLefc8tjtZ4kbmgHmbboSK+SVQIftPY5fq63rMWKPzd1m+Wz8mj3OudXAC0Bv4L56ci+Ju75xO7cLN90ws6FmNj02bLI69vxt63n+7WaOvQcrgI5xyyyOu74h/rVFtqWNT9LozCwfP4yQZWabCioPaGVmfWO3O8UtXwi0BhbGPU0nYGbseudtHtt2l6+F+G8Jm3QGaogVs5n1ww/rjANGAoN26Q+LE9tG8CgwED/8Umtm04FN4+L17Za2VWYzaw60ARbsbjbJTFpzl6bwQ6AW6IUfSugH9ATew4/DA/zAzI4ws1z82PtHzrn4NfJfmNkesaGaq/FDInUZB/zMzLrGPijuAp5zztWYWTPgaeB6YATQ0cx+koC/sTm+wJcBmNkI/Jr7JkuAvWN/X12ZR5hZPzPLi2X+2Dk3JwHZJAOp3KUpDAMed86VOecWb7rgN3Keh/8G+SxwC3445kDg/G2e4xVgKn5j69/wG0LrMgZ4CpgEzAYqgCtjj90NzHPO/Tk2tn0+cIeZlezOH+ic+xw/xPMhvsj7AO/HLTIB/81jsZkt387vvwPcBLwELAL2AQbvTibJbDqISYIzs7HAfOfcjXU87oAS59xXTRpMJIVpzV1EJA2p3EVE0pCGZURE0pDW3EVE0lCw/dzbtm3riouLQ728iEhKmjp16nLnXLv6lgtW7sXFxUyZMiXUy4uIpCQzm1v/UhqWERFJSyp3EZE0pHIXEUlDKncRkTSkchcRSUMqdxGRNKRyFxFJQ/WWu5mNiU0y/Fkdj5uZjYxN7DvDzA5IfEwREdkZDTmIaSz+vNtP1vH4SUBJ7HIw8OfYz0Yxa2YN33xewT7d/QQ3X31tdC8x9t0XMPvW5dHHIkyYaAwYaBx1FIwbB19+CfvuCwcfDLW1UFICPXrArFkwcSIsXgzLl8Nnn4Fz0K8ffP01zI0dOtC6tb+vpgbKyqC8HLKyYOlSqKqCli39yzsHkQisXw/t2vnb69ZBhw4Qjfrl8/PhuON8jmefhYULoUULOPBAv3xREQwY4B/flGvlSv/8rVr5HAsW+Ow9esCQ2MyipaXf/rsAunTZ+m8WkfTUoBOHxSbpfc0513s7jz0C/MM5Ny52exZwjHNu0Y6es3///m5nj1CdNQte+8nr/HzCyTv1e/FqieAwokSIEsGyIjiLkJ0TobI6QnU0Qk3UP1ZLFrVkESVCDdnUkkUN2ZsvtWRRTQ41ZFNNDlXkbv5ZRS6V5FFFLhU0o5I8KmjGRvI3X9bTnA0UsIHmrKWQtRRRTgvKacEaWlJLNpEIZGf7D4y1a/2Hx6Z/spycLR8i0ai/3bcvtG/vP4Bqa2HwYHjkEf9BVVXlf+/734fCQrj+ehW8SKoxs6nOuf71LZeI0w90ZOsJiufH7vtWuZvZJcAlAJ07d97pFyothaWtv8tbx9/LnNm+4boWO1avcvT+nqPnd51vutjl+eccpV86mudH2bDekZ3lW9BFHYYjL7uWbl0dOVlRWhTWsniho3xNlIr1UVytr/YI0VjF126u9U3Xc6jefF8O1RSwIVbr/pJH5VaXZlQQqXcqzS3WU8Cq6B6srGpN+crWLHNtWBL9Dstox2LaszTagYXRvVhoHVmWvReWlc2SJdC8uV+jLyuDDz/03xaKimDNGqiogLw8/02jtFTlLpKumvTcMs65UcAo8GvuO/v7JSXwQkE3xhddy8oCv9a6xx5Q2wH2ux7YpqjWtId7/hssCrW50KmTL7zqar823KoVHNbLr8UOHgxPjYKpU2FZFVTU1p8nK8uvHTecI5cq8tlIweZ19vUUsp7mrKOItRSxlhaU05I1tGQNrVlFG1vJdyIr6FHzH45gEm1Y4T8karY8c01tFgurOrLCurCyZh/WrOpOu8IS9uvfk8/z92XO2jxqavzfXVnp1/JLdmtiORFJZoko9wXEzVwP7E0jzdjeo4cfStg0ngxbjy1v6+KL/c8JE/y4dX1j7t26NfaYu7FuXR4dOuQRjbbaqTH3RXFj7quW19Kiajmdsxeyf/uFVM9ZQM03ZXTLLqNHzmxyy94ke9pYH3YSHJGVxeq23VneaX9q++zPqn0OpM2gg9i3R1Fj/DOJSBJIxJj7ycBPgR/gN6SOdM4dVN9z7sqYu+yE9ev9J98XX/jLjBnwr3/5TyPwnzp9+sDhh8PAgXDssf5rkIgktYaOuddb7mY2DjgGaIuf1f0WIAfAOfewmRl+b5pBwAZghHOu3tZWuQeyYgVMmeIH4z/4YMugfCQC/fvDqafC6adDz57+64eIJJWElXtjUbkniepq+PhjeOcdeOMN+OQTf3+PHnDuuTB0KGhSFZGkoXKXXbNgAbz6KrzwAvzjH37g/6ij4PLL4Uc/8ltiRSSYhpa7Tj8gW+vY0Rf5hAkwZw7ceaffyjtkCHTtCnfdBatWhU4pIvVQuUvdOnf2uyfNmgWvvQa9esENN/hhmttu8zvOi0hSUrlL/SIROPlkeOstmD7d711z662+5O+7z4/bi0hSUbnLzunbF15+GaZNg0MPhWuvhf32g7ffDp1MROKo3GXX7L8/vP46/PWvfs39hBP83jUrV4ZOJiKo3GV3nXKKP5T31lv9HjZ9+vjhGxEJSuUuu69ZM7jlFvjoI3/CnhNPhGuu0Vi8SEAqd0mcAw/0Z1676ip48EF/0pwlS0KnEslIKndJrGbNfLE//TRMnuwLf/Lk0KlEMo7KXRrHeef5c9fk5MAxx8Cbb4ZOJJJRVO7SePr18ycmKymB//ovGD8+dCKRjKFyl8a1557wz3/6feLPPRcefjh0IpGMoHKXxteyJfz97363ycsvhzFjQicSSXsqd2ka+fl+P/gTT/RTZD3/fOhEImlN5S5NJy/Pn7rg8MP9BtfXXgudSCRtqdylaRUU+FLv1w/OPtufo0ZEEk7lLk2vRQtf8O3a+Wn9Fi0KnUgk7ajcJYz27f2MT6tWwQ9/CBs3hk4kklZU7hJO377+SNZPPoGLLvJT+olIQqjcJazTT4fbb4dnn4XRo0OnEUkbKncJ7/rr/UnGrroKZs4MnUYkLajcJbxIBJ56ym9oPecc2LAhdCKRlKdyl+Sw556+4GfOhJ/9LHQakZSncpfkccIJ8MtfwqhR/nQFIrLLVO6SXH79a+jZEy69FNauDZ1GJGWp3CW55OXBY4/BvHlw3XWh04ikLJW7JJ9DD4Wrr4Y//QkmTQqdRiQlqdwlOd1xB3Tr5g9uqqgInUYk5ajcJTk1bw6PPAKlpXD//aHTiKQclbskr+OOgzPOgDvvhPnzQ6cRSSkqd0lu990H0ajfRVJEGkzlLsmtuBh+8QsYNw7+7/9CpxFJGSp3SX7XXQedOsGVV0Jtbeg0IilB5S7Jr6AAfvtbmD4dnnkmdBqRlKByl9Rw9tlwwAFw881QWRk6jUjSU7lLaohE4O67Ye5cf+4ZEdkhlbukjuOPh2OO8Qc4rVsXOo1IUlO5S+ow82vvS5fCAw+ETiOS1FTukloOOQROOw3uvRdWrAidRiRpqdwl9dxxB5SXw8iRoZOIJC2Vu6Se3r39xNojR8KaNaHTiCQllbukphtugNWr/WmBReRbVO6Smg48EAYN8meMXL8+dBqRpKNyl9R1442wfDk8+mjoJCJJR+Uuqevww/1+7/feqwk9RLahcpfUdsMNsHAhPP106CQiSUXlLqlt4EDo29ePvTsXOo1I0lC5S2ozg5//HL74At58M3QakaShcpfUd8450KGDn7VJRACVu6SD3Fw/kcc778CMGaHTiCQFlbukh0su8ZN63H9/6CQiSUHlLumhdWsYMQKefRYWLQqdRiQ4lbukj2uugZoaePjh0ElEglO5S/ro3t2fkmDUKKiqCp1GJCiVu6SXK66AxYvhL38JnUQkKJW7pJdBg6BrV3joodBJRIJSuUt6ycqCyy+H996DTz8NnUYkGJW7pJ8LL4RmzbT2LhlN5S7pp00bGDzYn0xMMzVJhlK5S3q64go/iceTT4ZOIhKEyl3SU//+framRx/V2SIlI6ncJX1dconfqPrxx6GTiDQ5lbukryFDoHlzTcMnGUnlLumrqMgX/PjxUF4eOo1Ik1K5S3q7+GLYsMGfUEwkg6jcJb19//uw334ampGMo3KX9GbmN6xOmwZTp4ZOI9JkVO6S/s47D/LzYfTo0ElEmozKXdJfq1Zwxhkwbhxs3Bg6jUiTULlLZrjwQn8qgv/939BJRJqEyl0ywzHHQHExjBkTOolIk1C5S2aIRGDYMHj3XSgrC51GpNGp3CVzDB/uzzPzxBOhk4g0OpW7ZI7iYhgwAB5/HKLR0GlEGpXKXTLLiBEwezZMmhQ6iUijUrlLZjnjDGjRwq+9i6QxlbtkloICOPtseOklWLcudBqRRqNyl8wzbJifpemll0InEWk0KnfJPIcfDvvso71mJK2p3CXzmMHQoTBxIsydGzqNSKNQuUtmGjrU/3zqqbA5RBqJyl0yU3ExHH00PPmkJtCWtKRyl8w1bBiUlsJHH4VOIpJwKnfJXGee6XeN1IZVSUMqd8lcRUX+oKbnnoOKitBpRBJK5S6ZbehQWL0aXnstdBKRhFK5S2YbMAA6dPAbVkXSSIPK3cwGmdksM/vKzK7bzuPDzWyZmU2PXS5KfFSRRpCV5edYfeMNWLo0dBqRhKm33M0sC3gIOAnoBQwxs17bWfQ551y/2EUzEUvqGDoUampg/PjQSUQSpiFr7gcBXznnvnHOVQHjgdMaN5ZIE+rdG/bfX0MzklYaUu4dgXlxt+fH7tvWj8xshpm9aGadtvdEZnaJmU0xsynLli3bhbgijWToUJg6FWbODJ1EJCEStUH1r0Cxc24/4G1guzsOO+dGOef6O+f6t2vXLkEvLZIAQ4b48XedjkDSREPKfQEQvya+d+y+zZxzK5xzlbGbo4EDExNPpIm0bw+DBsHTT0Ntbeg0IrutIeU+GSgxs65mlgsMBl6NX8DM9oq7eSrwReIiijSRoUNhwQJ/tkiRFFdvuTvnaoCfAm/iS/t559xMM/u1mZ0aW+wqM5tpZv8GrgKGN1ZgkUZz6qnQsqU2rEpaMBfojHj9+/d3U6ZMCfLaInW69FI/NLN4sT89gUiSMbOpzrn+9S2nI1RF4g0dChs2wMsvh04isltU7iLxDjvMT8GnoRlJcSp3kXjxU/CVlYVOI7LLVO4i2zr/fD8709NPh04isstU7iLb6tYNjjzST+KhKfgkRancRbZn+HD48kv4+OPQSUR2icpdZHvOOstPwTd2bOgkIrtE5S6yPUVF8KMf+dMAb9wYOo3ITlO5i9Rl2DBYswZeeSV0EpGdpnIXqcuxx0KnThqakZSkchepSyTi197fftufUEwkhajcRXZk2DCIRrXPu6QclbvIjnTvDkccAY8/rn3eJaWo3EXqc+GFMGsWfPBB6CQiDaZyF6nPWWdBYSGMHh06iUiDqdxF6lNYCIMHw/PPQ3l56DQiDaJyF2mIH//Yn+f9uedCJxFpEJW7SEMcfDD06gWPPRY6iUiDqNxFGsIMLrrIn0jss89CpxGpl8pdpKEuuABycrT2LilB5S7SUG3bwmmnwVNPQUVF6DQiO6RyF9kZl14KK1bASy+FTiKyQyp3kZ0xYIA/avWRR0InEdkhlbvIzohE4JJL4L33YObM0GlE6qRyF9lZw4dDbq7W3iWpqdxFdla7dnDmmfDkk/7AJpEkpHIX2RWXXeZnadIRq5KkVO4iu+KII/wRq3/+c+gkItulchfZFWZ+7X3yZPjkk9BpRL5F5S6yq4YNg6IiGDkydBKRb1G5i+yqFi38RB7PPw+LFoVOI7IVlbvI7vjpT6GmBh5+OHQSka2o3EV2R/fu8IMf+HKvrAydRmQzlbvI7rrqKli61A/PiCQJlbvI7jr+eOjZEx58EJwLnUYEULmL7D4zv/Y+dSpMmhQ6jQigchdJjGHD/GkJfvvb0ElEAJW7SGLk5/u199dfh08/DZ1GROUukjA/+Qk0bw733hs6iYjKXSRhWreGiy+GceOgrCx0GslwKneRRPrv//Y/f//7sDkk46ncRRKpUyc491x49FE/16pIICp3kUT7n//xk3jcd1/oJJLBVO4iidarF5xzDvzhD7B8eeg0kqFU7iKN4eabYf16+N3vQieRDKVyF2kMPXvCkCHwxz/CsmWh00gGUrmLNJabb4aNG7XfuwShchdpLD16+D1nHnoIFi8OnUYyjMpdpDHdcgtUVcGtt4ZOIhlG5S7SmLp396clePRR+Pzz0Gkkg6jcRRrbTTf5ibR/+cvQSSSDqNxFGlvbtnDDDfC3v8G774ZOIxlC5S7SFK68Erp0gWuvhWg0dBrJACp3kabQrBncdRdMnw5jxoROIxlA5S7SVIYMgaOO8uee0YFN0shU7iJNxQz+9CcoL9fGVWl0KneRpvS97/lx97FjNZm2NCqVu0hTu+kmv3H18sv9AU4ijUDlLtLUCgr8CcU+/9xvZBVpBCp3kRBOOQXOOw/uuAMmTw6dRtKQyl0klD/+EfbcEy64wJ89UiSBVO4iobRq5TeszpoF110XOo2kGZW7SEjHHeePXh05Et56K3QaSSMqd5HQ7rnH7yJ57rlQVhY6jaQJlbtIaAUF8PLLfrfIM8+EysrQiSQNqNxFksG++8ITT/g9Z665JnQaSQMqd5Fkcfrp/rQEDz8Mo0eHTiMpTuUukkzuvBNOPBEuuwzeeCN0GklhKneRZJKdDS+8APvtB2edBVOnhk4kKUrlLpJsior8rE1t28LJJ8M334ROJClI5S6SjPbayw/LVFXBscfC7NmhE0mKUbmLJKuePeGdd2DdOjj6aPj669CJJIWo3EWS2QEHwIQJsGGDL/jS0tCJJEWo3EWSXd++MHGiH6I57DB4//3QiSQFqNxFUkGfPr7U99gDBg6E8eNDJ5Ikp3IXSRUlJfDhh3DQQX6y7Vtvhdra0KkkSancRVJJmzbw9tswbBjcdhuccAIsWhQ6lSQhlbtIqsnLg8cfhzFj/Jp8v37w97+HTiVJRuUukorMYMQImDIF2rWDk07ya/MrVoROJklC5S6Synr18gV/443w7LN+3/innoJoNHQyCUzlLpLqmjWD22+HadOgWzcYOtRvdJ04MXQyCUjlLpIu+vSBDz7wa+7LlsGAATBoELz3XuhkEoDKXSSdRCJw/vl+0u3f/MafVfKoo+CII+DVV7XrZAZRuYuko2bN/MQfc+b4ybfnzYPTTvPDNrffDgsXhk4ojUzlLpLOmjeHK6+Er77y54nfd1+4+Wbo1Mkf6TpqlPawSVMqd5FMkJPjJ99++21/8rEbboD58+HSS6F9ez90c889MGOG9rRJE+acC/LC/fv3d1OmTAny2iICOAf//je89JKfHORf//L3t23ry/7oo+GQQ/yJy/LywmaVzcxsqnOuf73LqdxFBPDj8G++Cf/8p7/MmePvz8nx0/716+d/9unj96dv394fTCVNKqHlbmaDgAeBLGC0c+6ebR7PA54EDgRWAOc45+bs6DlV7iJJbt48mDwZPvnE/5wxA5Yv3/J4ixZ+DL9bN+jaFYqLoXNn2Htv6NgRWrdW+TeChpZ7dgOeKAt4CDgemA9MNrNXnXOfxy32Y2CVc667mQ0GfgOcs2vRRaSxzJrlh9yzsvxekSUl0KPH9pebOLET0IljR5xBj3sA5/jq/SUsnzCDrlWzyJ3zJTUzZ9Hy42lkv/wXIjXVWz1HdSSXipbtqW3bnvLcdmwsbEtVUVu+WNKaFbWtKOi4B9ltW1G4VxE1zVvwxntFzFtVSFbLQpavz4dIhPz8LZ8PK1fCmjX+M6VLF2jZcsvtJUv8MVwFBXDMMXDkkX5X/3fe8fOcmMHGjX4noooKKC/3n0X9+vn3o1s3P/o0fbpftndvP7vhpvfmjTf8aXwOPdSf6WHLe+Svxy8b/z5v+/7WdX9jqHfN3cwOBW51zp0Yu/0rAOfc3XHLvBlb5kMzywYWA+3cDp5ca+4iTWvWLLjrLj9r3/TpvtgKC+H6679dQNddB59+6m/37u13mQf/+1lZvmjN/Onl586Fz/5dS/6qhXR08+nIAjpH5tM+uohOuUv4jltCG7ecPaLLaV27jELWNyjvBvLZQAEbKKCCZmwknwqaUUkeleRRRe7mn9XkbL5UkYvlZLOxOodqsqkli5rYz+1dnEWIkoWLRMAi1EQjFBRG6NY9wtnnGEuXGWOfMIhEiDpj+Aij/Z7GM88ac8sMh9Gps3HBUKPj3saChcYLLxoWMWqdcfZZ/svM/AXGc88bkSyjtPXBXH1b610q+IStuQMdgXlxt+cDB9e1jHOuxszWAG2A5fELmdklwCUAnTt3bsBLi0iibFpjz8vzxzrl5fnbpaVbl3tpqf8AKCryt9et2zK7X1aWH3kpK/Pl3revP05qQ2UW5bmdmFfViWgU8rL99tr8Zv61WrXya9DLl0N2tIqWbjUtWU373NXskbOWnA3lFLpymrOeQtZRyDry2Rir9g00o2LzJY9KCthAa1aSQzW5VJFL1eZ6z6WK7Ooasqkhh2qyqCXCDlZiNz0Uf3xXOTDNX/YCfh+/fOyD7hfx9y0BJvurHYFr4h+b4H/sDfw8dtfdJ02itPTIRl17b0i5J4xzbhQwCvyae1O+tkimKynxQzGVlX5vx8pKv620pOTbyxUWwuzZ/naXLluWqa31xV5Y6Mu9rMzvXLNwIaxa5ZeJxHawjkYhN9ffrqnxy2dnQ3V1Lsv4Dsv4DvMiUJgPa6qgeutRnQYx8x8i2yos9B8mm/bqNKLbXW+PECXHYj+zouRm1VJb42izR5T++9fyi2sd88ocv77NkR2J4qKOm2507N3R8cDvHaVfOgxHSXfHNVc7irs45sx2PD7GkRVx1Nb6k3cWd3HMneMY+7gjKwvmFfbkjJJv504kDcuIZJCdG3P31+PHk+PHjGHL9W++8ae0cc6fqHLx4i1j1126+KEb8K87caIfK+/Wzc89suee/v5XXvFj50VFsHat/32NuX9bwvaWiZX1l8BAYAH+y8e5zrmZcctcAfRxzl0W26B6hnPu7B09r8pdRGTnJWzMPTaG/lPgTfyukGOcczPN7NfAFOfcq8BjwFNm9hWwEhi8e/FFRGR3NGjM3Tn3OvD6NvfdHHe9AjgrsdFERGRX6dwyIiJpSOUuIpKGVO4iImlI5S4ikoZU7iIiaUjlLiKShoKdz93MlgFz4+5qyzbnopGt6P2pm96buum92bFUfH+6OOfa1bdQsHLflplNachRV5lK70/d9N7UTe/NjqXz+6NhGRGRNKRyFxFJQ8lU7qNCB0hyen/qpvembnpvdixt35+kGXMXEZHESaY1dxERSRCVu4hIGgpe7mbWycwmmtnnZjbTzK4OnSnZmFmWmf3LzF4LnSWZmFkrM3vRzP5jZl/EZg2TGDP7Wez/1GdmNs7MmoXOFIqZjTGzpWb2Wdx9rc3sbTMrjf3cI2TGRAte7kAN8HPnXC/gEOAKM+sVOFOyuRr4InSIJPQg8Hfn3HeBvug92szMOgJXAf2dc73xE+1k8iQ6Y4FB29x3HfCuc64EeDd2O20EL3fn3CLn3LTY9bX4/6Adw6ZKHma2N3AyMDp0lmRiZi2Bo/CzgOGcq3LOrQ6bKulkA/mxqTILgIWB8wTjnJuEnyUu3mnAE7HrTwA/bNJQjSx4ucczs2Jgf+DjsEmSygPAL4Fo6CBJpiuwDHg8NmQ12syahw6VLJxzC4DfAWXAImCNc+6tsKmSTnvn3KLY9cVA+5BhEi1pyt3MCoGXgGucc+Wh8yQDMzsFWOqcmxo6SxLKBg4A/uyc2x9YT5p9rd4dsfHj0/Afgh2A5mZ2fthUycv5fcLTar/wpCh3M8vBF/szzrmXQ+dJIocDp5rZHGA8MMDMng4bKWnMB+Y75zZ9y3sRX/biHQfMds4tc85VAy8DhwXOlGyWmNleALGfSwPnSajg5W5mhh83/cI5d3/oPMnEOfcr59wecQlnAAAAt0lEQVTezrli/MawCc45rX0BzrnFwDwz6xG7ayDwecBIyaYMOMTMCmL/xwaiDc7behUYFrs+DHglYJaEC17u+LXTC/BrpdNjlx+EDiUp4UrgGTObAfQD7gqcJ2nEvtG8CEwDPsX/X0/bQ+3rY2bjgA+BHmY238x+DNwDHG9mpfhvOveEzJhoOv2AiEgaSoY1dxERSTCVu4hIGlK5i4ikIZW7iEgaUrmLiKQhlbuISBpSuYuIpKH/BwvMdXWTThkTAAAAAElFTkSuQmCC\n", + "image/png": "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\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] @@ -211,7 +211,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -254,7 +254,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 5, "metadata": { "scrolled": true }, @@ -265,7 +265,7 @@ "Text(0.5, 1.0, 'cost function')" ] }, - "execution_count": 32, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" }, @@ -297,7 +297,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 6, "metadata": { "scrolled": true }, @@ -326,7 +326,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -406,7 +406,7 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -427,34 +427,34 @@ }, { "cell_type": "code", - "execution_count": 45, + "execution_count": 18, "metadata": {}, "outputs": [], "source": [ - "def gradient_descent(xs, ys, theta, alpha=0.1, iterations=100):\n", - " for _ in range(iterations):\n", + "def gradient_descent(xs, ys, theta, alpha=1, epoch=100):\n", + " for _ in range(epoch):\n", " theta = theta - alpha * cost_gradient(xs, ys, theta) \n", " return theta" ] }, { "cell_type": "code", - "execution_count": 47, + "execution_count": 39, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "weights: 10.159570236692419 -1.6360674177180405\n", - "train cost: 0.011264210236902399\n", - "test cost: 0.011623228480782\n" + "weights: 29.40983934878407 -5.527334155188794\n", + "train cost: 0.007186648908279271\n", + "test cost: 0.010992176598402464\n" ] } ], "source": [ "theta = np.random.randn(len(X_train[0]) + 1)\n", - "theta = gradient_descent(X_train, Y_train, theta, 1, 500)\n", + "theta = gradient_descent(X_train, Y_train, theta, 4, 500)\n", "print('weights: ', *theta)\n", "print('train cost:', cost(X_train, Y_train, theta))\n", "print('test cost: ', cost(X_test, Y_test, theta))" @@ -462,7 +462,7 @@ }, { "cell_type": "code", - "execution_count": 52, + "execution_count": 40, "metadata": {}, "outputs": [ { @@ -471,13 +471,13 @@ "Text(0.5, 1.0, 'Optimized model')" ] }, - "execution_count": 52, + "execution_count": 40, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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 |
