From a04208bb7134836e587d844f04c0cc92de8c81a5 Mon Sep 17 00:00:00 2001 From: Morten Hjorth-Jensen Date: Mon, 1 Sep 2025 07:04:49 +0200 Subject: [PATCH] update on notes --- doc/pub/week36/ipynb/week36.ipynb | 133 ++++++++++++++++++++++++++---- doc/src/week36/week36.do.txt | 30 +------ 2 files changed, 119 insertions(+), 44 deletions(-) diff --git a/doc/pub/week36/ipynb/week36.ipynb b/doc/pub/week36/ipynb/week36.ipynb index 8bda05b08..d03acd92b 100644 --- a/doc/pub/week36/ipynb/week36.ipynb +++ b/doc/pub/week36/ipynb/week36.ipynb @@ -792,7 +792,10 @@ "id": "19ea825b", "metadata": { "collapsed": false, - "editable": true + "editable": true, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -1112,7 +1115,10 @@ "id": "ac796dd0", "metadata": { "collapsed": false, - "editable": true + "editable": true, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -2775,7 +2781,10 @@ "id": "68f97538", "metadata": { "collapsed": false, - "editable": true + "editable": true, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -3015,13 +3024,38 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 18, "id": "801ec4de", "metadata": { "collapsed": false, - "editable": true + "editable": true, + "jupyter": { + "outputs_hidden": false + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Eigenvalues of Hessian Matrix:[0.29828983 4.4698111 ]\n", + "[[4.]\n", + " [3.]]\n", + "[[4.]\n", + " [3.]]\n" + ] + }, + { + "data": { + "image/png": "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/64///xTQUFB+cp78OBBZ1kTEhL06aefqlatWho6dKgSEhKUkJCgyZMnO891+PBhRUdHy8/P8/+N/f777zLGqHbt2vmu9+WXX5b5z8ZRhvfffz/f9Zs2bSpJ+cpw++23KygoSJmZmc6+W7mNHDlSTz75pHr16qX3339fmzZt0ubNm9WiRQu35YyIiHB57+gL52n7X3/95bK9oO/V8d27u2dJevjhh/Pd95AhQ9zeN+BNjCYD/ubv76+OHTtq5cqVOnDggOrWrev8rEmTJpKk3bt3uz0271xAkvT999/rm2++0ezZszVgwADn9p07d7rsV6NGDdlsNh08eDDfOdxty8sR4mbOnOnx87LkCBBFKX9UVJQiIyP18ccfuz1X7hqrtm3bqm3btsrOztaWLVv06quvavjw4apdu7b69eunmjVrasOGDcrJyfEYiKKiomSz2bR+/XoFBwfn+9zdttIWFRWl5s2ba/z48W4/z90ZPzs7W7fffrtq1Kih4OBg3XXXXfrvf//r0pl/7ty5uvPOOzVhwgSX8xw5cqRMpkEo6Ht1Fx6lc79zo0ePVp8+fdzu06hRo1IqIXD+CENALqNHj9ZHH32k++67T++9954CAwNLfC5HQMr7B3f69Oku76tWraorrrhCKSkpeuGFF5xNZcePH9f7779f6HV69OihCRMmKDIyUvHx8SUub26OMhelRqRRo0aqW7euFixYoJEjRzrve8+ePdq4caPLH/sePXpo4cKFys7OVuvWrYtUFn9/f7Vu3VqJiYmaN2+etm7dqn79+qlbt25asGCBZs+e7bGprEePHnruueeUlpamvn37Ful6hSnOz8ZRhg8//FAJCQmqUaNGgfs+9dRTWr9+vVauXKmqVavq2muv1SOPPOJSI2az2fL9Tn3wwQdKS0vThRdeWMy7Kdxnn32m33//3dlUlp2drXfeeUcJCQmKiYlxe0yjRo3UsGFDffPNN/lCG1AREYaAXNq0aaPXXntNDz74oC699FLde++9atq0qfz8/HTgwAEtXrxYkoo06WFiYqISEhL0+OOPyxijiIgIvf/++1q1alW+fZ955hldf/316ty5s0aNGqXs7GxNnDhRVatW1R9//FHgdYYPH67Fixfr2muv1YgRI9S8eXPl5ORo7969WrlypUaNGlXk4OFw8cUXS5ImT56sAQMGKDAwUI0aNXKpuXHw8/PTM888o7vvvlu9e/fWPffcoz///FNjx47N18TSr18/zZs3TzfccIMeeughXXHFFQoMDNS+ffu0Zs0a9ezZU71799a0adO0evVqde/eXXFxcfrrr7+cNV/XXXedJOnWW2/VrFmzdN9992n79u3q0KGDcnJytGnTJjVu3Fj9+vVTmzZtdO+992rQoEHasmWLrr32WlWtWlUHDhzQhg0bdPHFF+v+++8v1s/GMSv5vHnz1LhxY1WrVk3R0dEuoS+3p59+WqtWrdLVV1+tYcOGqVGjRvrrr7+0e/duffjhh5o2bZpiYmK0atUqJScn68knn3ROzZCcnKyHH35Y7du3V+/evSXZw9Xs2bOVmJio5s2b66uvvtILL7zgMZicr6ioKHXs2FFPPvmkqlatqqlTp+rnn38udHj99OnT1a1bN3Xt2lUDBw5UvXr19Mcff+inn37S1q1btWjRojIpL1AiXu7ADVRIX3/9tRk0aJCJj483wcHBJiQkxFx44YXmzjvvNJ999pnLvgMGDDBVq1Z1e54ff/zRdO7c2YSFhZkaNWqYm2++2ezdu9dIMk899ZTLvsuXLzfNmzc3QUFBJi4uzjz33HPmqaeeKnQ0mTHGnDhxwjzxxBOmUaNGJigoyISHh5uLL77YjBgxwmUkkCQzdOjQfOV0d87Ro0eb6Oho4+fnl2+kkDtvvvmmadiwoQkKCjIXXXSRmTlzphkwYIDLaDJj7EPiX3zxRdOiRQsTEhJiqlWrZhITE83gwYPNjh07jDH2UWC9e/c29evXN8HBwSYyMtK0a9fOLF++3OVcp0+fNv/5z3+c142MjDQdO3Y0GzdudNlv5syZpnXr1qZq1aomNDTUJCQkmDvvvNNs2bLFuU+7du1M06ZN892Xu3tYsGCBSUxMNIGBgW6/y7wOHz5shg0bZuLj401gYKCJiIgwrVq1MmPGjDEnTpww+/fvN7Vq1TIdO3Z0GWWVk5NjkpKSzAUXXOAc2Xfs2DFz1113mVq1apkqVaqYa665xqxfv960a9fOtGvXznmsY4RX7iHwxpybBiHv6EPH79rhw4ed2xy/L1OnTjUJCQkmMDDQJCYmmnnz5rkc6240mTHGfPPNN6Zv376mVq1aJjAw0NSpU8d07NjRTJs2rcCfF1DebMYY460gBgCouGw2m4YOHaopU6Z4uyhAmWI0GQAAsDTCEAAAsDQ6UAMA3KIXBayCmiEAAGBphCEAAGBphCEAAGBplugzlJOTo/379yssLMztsgkAAKDiMcbo+PHjha5DeL4sEYb279+v2NhYbxcDAACUQGpqapnNsi5ZJAw5lhBITU0t0jIKAADA+zIyMhQbG+t2KaDSZIkw5Ggaq169OmEIAAAfU9ZdXOhADQAALI0wBAAALI0wBAAALI0wBAAALI0wBAAALI0wBAAALI0wBAAALI0wBAAALI0wBAAALI0wBAAALI0wBAAALI0wBAAALI0wBAAALI0wBAAALI0wBAAALI0wBAAALI0wBAAALM3rYejzzz9XUlKSoqOjZbPZtHTpUo/7Dh48WDabTZMmTSq38gEAgMrN62Ho5MmTatGihaZMmVLgfkuXLtWmTZsUHR1dTiUDAABWEODtAnTr1k3dunUrcJ+0tDQ98MAD+uSTT9S9e/dyKhkAALACr9cMFSYnJ0f9+/fXI488oqZNm3q7OAAAoJLxes1QYSZOnKiAgAANGzasyMdkZmYqMzPT+T4jI6MsigYAACqBCl0z9NVXX2ny5MmaPXu2bDZbkY9LTk5WeHi48xUbG1uGpQQAAL6sQoeh9evX69ChQ4qLi1NAQIACAgK0Z88ejRo1Sg0aNPB43OjRo5Wenu58paamll+hAQCAT6nQzWT9+/fXdddd57Kta9eu6t+/vwYNGuTxuODgYAUHB5d18QAAQCXg9TB04sQJ7dy50/l+165d+vrrrxUREaG4uDhFRka67B8YGKg6deqoUaNG5V1UAABQCXk9DG3ZskUdOnRwvh85cqQkacCAAZo9e7aXSgUAAKzC62Goffv2MsYUef/du3eXXWEAAIDlVOgO1AAAAGWNMAQAACyNMAQAACyNMAQAACyNMAQAACyNMAQAACyNMAQAACyNMAQAACyNMAQAACyNMAQAACyNMAQAACyNMAQAACyNMAQAACyNMAQAACyNMAQAACyNMAQAACyNMAQAACyNMAQAACyNMAQAACyNMAQAACyNMAQAACyNMAQAACyNMAQAACyNMAQAACyNMAQAACyNMAQAACyNMAQAACyNMAQAACyNMAQAACyNMAQAACyNMAQAACyNMAQAACyNMAQAACyNMAQAACyNMAQAACyNMAQAACyNMAQAACyNMAQAACyNMAQAACzN62Ho888/V1JSkqKjo2Wz2bR0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ZrKhQ4fqgw8+0IYNGxQTE+NxP3c1Q7GxsTSTAQDgQ2gmy+PBBx/U8uXL9fnnnxcYhCQpODhYwcHB5VQyAADgyyp8GDLG6MEHH9SSJUu0du1axcfHe7tIAACgEqnwYWjo0KGaP3++li1bprCwMB08eFCSFB4ertDQUC+XDgAA+LoK32fIZrO53T5r1iwNHDiwSOdgaD0AAL6HPkN/q+BZDQAA+DifGloPAABQ2ghDAADA0ghDAADA0ghDAADA0ghDAADA0ghDAADA0ghDAADA0ghDAADA0ghDAADA0ghDAADA0ghDAADA0ghDAADA0ghDAADA0ghDAADA0ghDAADA0ghDAADA0ghDAADA0ghDAADA0ghDAADA0ghDAADA0ghDAADA0ghDAADA0ghDAADA0ghDAADA0ghDAADA0ghDAADA0ghDAADA0ghDAADA0ghDAADA0ghDAADA0ghDAADA0ghDAADA0ghDAADA0ghDAADA0ghDAADA0ghDAADA0ghDAADA0ghDAADA0nwmDE2dOlXx8fEKCQlRq1attH79em8XCQAAVAI+EYbeeecdDR8+XGPGjNG2bdvUtm1bdevWTXv37vV20QAAgI+zGWOMtwtRmNatW+vSSy/V66+/7tzWuHFj9erVS8nJyYUen5GRofDwcKWnp6t69eplWVQAAFBKyuvvd4WvGTpz5oy++uordenSxWV7ly5dtHHjRi+VCgAAVBYB3i5AYY4cOaLs7GzVrl3bZXvt2rV18OBBt8dkZmYqMzPT+T49PV2SPWECAADf4Pi7XdaNWBU+DDnYbDaX98aYfNsckpOTNW7cuHzbY2Njy6RsAACg7Bw9elTh4eFldv4KH4aioqLk7++frxbo0KFD+WqLHEaPHq2RI0c63//555+qX7++9u7dW6Y/zIomIyNDsbGxSk1NtVRfKe6b+7YC7pv7toL09HTFxcUpIiKiTK9T4cNQUFCQWrVqpVWrVql3797O7atWrVLPnj3dHhMcHKzg4OB828PDwy31S+RQvXp17ttCuG9r4b6txar37edXtl2cK3wYkqSRI0eqf//+uuyyy3TVVVdpxowZ2rt3r+677z5vFw0AAPg4nwhDt9xyi44ePaqnn35aBw4cULNmzfThhx+qfv363i4aAADwcT4RhiRpyJAhGjJkSImODQ4O1lNPPeW26awy4765byvgvrlvK+C+y/a+fWLSRQAAgLJS4SddBAAAKEuEIQAAYGmEIQAAYGmEIQAAYGk+GYamTp2q+Ph4hYSEqFWrVlq/fn2B+69bt06tWrVSSEiI/vGPf2jatGn59lm8eLGaNGmi4OBgNWnSREuWLCmr4pdYce47JSVFnTt3Vs2aNVW9enVdddVV+uSTT1z2mT17tmw2W77XX3/9Vda3UizFue+1a9e6vaeff/7ZZb/K9n0PHDjQ7X03bdrUuY8vfN+ff/65kpKSFB0dLZvNpqVLlxZ6TGV4vot735Xl+S7ufVeW57u4911Znu/k5GRdfvnlCgsLU61atdSrVy9t37690OPK4xn3uTD0zjvvaPjw4RozZoy2bdumtm3bqlu3btq7d6/b/Xft2qUbbrhBbdu21bZt2/Tvf/9bw4YN0+LFi537fPHFF7rlllvUv39/ffPNN+rfv7/69u2rTZs2lddtFaq49/3555+rc+fO+vDDD/XVV1+pQ4cOSkpK0rZt21z2q169ug4cOODyCgkJKY9bKpLi3rfD9u3bXe6pYcOGzs8q4/c9efJkl/tNTU1VRESEbr75Zpf9Kvr3ffLkSbVo0UJTpkwp0v6V5fku7n1Xlue7uPft4OvPd3Hvu7I83+vWrdPQoUP15ZdfatWqVcrKylKXLl108uRJj8eU2zNufMwVV1xh7rvvPpdtiYmJ5vHHH3e7/6OPPmoSExNdtg0ePNhceeWVzvd9+/Y1119/vcs+Xbt2Nf369SulUp+/4t63O02aNDHjxo1zvp81a5YJDw8vrSKWieLe95o1a4wkc+zYMY/ntML3vWTJEmOz2czu3bud23zh+85NklmyZEmB+1SW5zu3oty3O774fOdWlPuuLM93biX5vivD822MMYcOHTKSzLp16zzuU17PuE/VDJ05c0ZfffWVunTp4rK9S5cu2rhxo9tjvvjii3z7d+3aVVu2bNHZs2cL3MfTOctbSe47r5ycHB0/fjzfYncnTpxQ/fr1FRMTox49euT7L0tvOp/7vuSSS1S3bl116tRJa9ascfnMCt/3W2+9peuuuy7fLO0V+fsuicrwfJcGX3y+z4cvP9+lobI83+np6ZJU4CKs5fWM+1QYOnLkiLKzs/OtVl+7du18q9o7HDx40O3+WVlZOnLkSIH7eDpneSvJfef10ksv6eTJk+rbt69zW2JiombPnq3ly5drwYIFCgkJUZs2bbRjx45SLX9JleS+69atqxkzZmjx4sVKSUlRo0aN1KlTJ33++efOfSr7933gwAF99NFHuvvuu122V/TvuyQqw/NdGnzx+S6JyvB8n6/K8nwbYzRy5Ehdc801atasmcf9yusZ95nlOHKz2Wwu740x+bYVtn/e7cU9pzeUtIwLFizQ2LFjtWzZMtWqVcu5/corr9SVV17pfN+mTRtdeumlevXVV/X//t//K72Cn6fi3HejRo3UqFEj5/urrrpKqampevHFF3XttdeW6JzeUtIyzp49WxdccIF69erlst1Xvu/iqizPd0n5+vNdHJXp+S6pyvJ8P/DAA/r222+1YcOGQvctj2fcp2qGoqKi5O/vny/tHTp0KF8qdKhTp47b/QMCAhQZGVngPp7OWd5Kct8O77zzju666y69++67uu666wrc18/PT5dffnmF+S+J87nv3K688kqXe6rM37cxRjNnzlT//v0VFBRU4L4V7fsuicrwfJ8PX36+S4uvPd/no7I83w8++KCWL1+uNWvWKCYmpsB9y+sZ96kwFBQUpFatWmnVqlUu21etWqWrr77a7TFXXXVVvv1Xrlypyy67TIGBgQXu4+mc5a0k9y3Z/4tx4MCBmj9/vrp3717odYwx+vrrr1W3bt3zLnNpKOl957Vt2zaXe6qs37dkH62xc+dO3XXXXYVep6J93yVRGZ7vkvL157u0+NrzfT58/fk2xuiBBx5QSkqKVq9erfj4+EKPKbdnvMhdrSuIhQsXmsDAQPPWW2+ZH3/80QwfPtxUrVrV2av+8ccfN/3793fu/9tvv5kqVaqYESNGmB9//NG89dZbJjAw0Lz33nvOff773/8af39/89xzz5mffvrJPPfccyYgIMB8+eWX5X5/nhT3vufPn28CAgLMa6+9Zg4cOOB8/fnnn859xo4daz7++GPz66+/mm3btplBgwaZgIAAs2nTpnK/P0+Ke9+vvPKKWbJkifnll1/M999/bx5//HEjySxevNi5T2X8vh3uuOMO07p1a7fn9IXv+/jx42bbtm1m27ZtRpJ5+eWXzbZt28yePXuMMZX3+S7ufVeW57u4911Znu/i3reDrz/f999/vwkPDzdr1651+b09deqUcx9vPeM+F4aMMea1114z9evXN0FBQebSSy91GZY3YMAA065dO5f9165day655BITFBRkGjRoYF5//fV851y0aJFp1KiRCQwMNImJiS4PV0VRnPtu166dkZTvNWDAAOc+w4cPN3FxcSYoKMjUrFnTdOnSxWzcuLEc76hoinPfEydONAkJCSYkJMTUqFHDXHPNNeaDDz7Id87K9n0bY8yff/5pQkNDzYwZM9yezxe+b8fQaU+/t5X1+S7ufVeW57u4911Znu+S/J5Xhufb3T1LMrNmzXLu461n3PZ3AQEAACzJp/oMAQAAlDbCEAAAsDTCEAAAsDTCEAAAsDTCEAAAsDTCEAAAsDTCEAAAsDTCEAAAsDTCEAAAsDTCEAAAsDTCEACftGDBAoWEhCgtLc257e6771bz5s2Vnp7uxZIB8DWsTQbAJxlj1LJlS7Vt21ZTpkzRuHHj9Oabb+rLL79UvXr1vF08AD4kwNsFAICSsNlsGj9+vG666SZFR0dr8uTJWr9+PUEIQLFRMwTAp1166aX64YcftHLlSrVr187bxQHgg+gzBMBnffLJJ/r555+VnZ2t2rVre7s4AHwUNUMAfNLWrVvVvn17vfbaa1q4cKGqVKmiRYsWebtYAHwQfYYA+Jzdu3ere/fuevzxx9W/f381adJEl19+ub766iu1atXK28UD4GOoGQLgU/744w+1adNG1157raZPn+7c3rNnT2VmZurjjz/2YukA+CLCEAAAsDQ6UAMAAEsjDAEAAEsjDAEAAEsjDAEAAEsjDAEAAEsjDAEAAEsjDAEAAEsjDAEAAEsjDAEAAEsjDAEAAEsjDAEAAEsjDAEAAEv7/5vxx3z/T4NjAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "\n", "# Importing various packages\n", @@ -3036,7 +3070,7 @@ "# the number of datapoints\n", "n = 100\n", "x = 2*np.random.rand(n,1)\n", - "y = 4+3*x+np.random.randn(n,1)\n", + "y = 4+3*x#+np.random.randn(n,1)\n", "\n", "X = np.c_[np.ones((n,1)), x]\n", "# Hessian matrix\n", @@ -3083,13 +3117,26 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 19, "id": "d2f662be", "metadata": { "collapsed": false, - "editable": true + "editable": true, + "jupyter": { + "outputs_hidden": false + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[4.14348082]\n", + " [2.81611054]]\n", + "[4.2245229] [2.90496902]\n" + ] + } + ], "source": [ "# Importing various packages\n", "from random import random, seed\n", @@ -3231,13 +3278,38 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 20, "id": "b889c65e", "metadata": { "collapsed": false, - "editable": true + "editable": true, + "jupyter": { + "outputs_hidden": false + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Eigenvalues of Hessian Matrix:[0.34398504 4.37738976]\n", + "[[3.94418649]\n", + " [3.12329928]]\n", + "[[3.94395941]\n", + " [3.123489 ]]\n" + ] + }, + { + "data": { + "image/png": "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R2JiIsLCwhAeHo62bdsCAL7//nsAwLlz57B9+3ZkZ2cjMjLS8tro6GgMGTLEZd0+/vhjdOrUCV27dkVNTY3lccstt9htys/MzER0dLTleYsWLdC8eXMcPHhQ1rmob9++fTh69ChGjx5tlfnWtm1b3HDDDTZ1bdKkCYYMGWJV165du6Jly5aWunbt2hURERGYMGECli5datOlBQBr1qxBZGQk/vznPzus28cffwxJknD33XdbvV/Lli3RpUsXm3PTsmVL9OzZ02pb586dPT435jpkZmYiPj7eqg6DBg0CAGzYsMFStk+fPpgzZw5eeeUVPPDAA7j77rtx7733Wu2vpqYGzz33HDp06ICIiAiEhYUhIiICP/30k+U7Vdftt99u9bx9+/YAgMGDB9ts/+WXX2y6ym666Sa0aNHC8jw0NBR/+tOfsH//fhw+fNjuMe/fvx8//PAD7rrrLkudzY/bbrsNFRUV2Ldvn9PzZs/69evRoUMHm89o3LhxEEJg/fr1VtvvuOMOhIeHy97/6tWrLdd427Zt8frrr+Of//ynzbmqz51rYMOGDYiOjsatt95qtX3UqFFWz311DkmbGAyR3zRt2hRRUVF2b3z5+fnYvn07Vq1aZfe1DRo0sMnwqq2txcCBA1FUVIRHH30UX3zxBb766its3boVAPD7778DAH799VfU1taiZcuWNvu1t62+48eP4+uvv7YK1sLDwxEdHQ0hhM34pLi4OJt9GAwGS33cdfr0aYd1rb/t+PHj+O233xAREWFT32PHjlnqmpKSgs8//xzNmzfHpEmTkJKSgpSUFMyfP9+yr5MnTyI+Ph4hIY7/mzh+/DiEEGjRooXN+23dutXn58Zch48++sjm/Tt27AgANnW46667EBERgerqasvYrbqmTZuGp556CkOHDsVHH32Ebdu2Yfv27ejSpYvdesbGxlo9N4+Fc7T9woULVtudfa7mz97eMQPAI488YnPcDz74oN3jluP06dN2s8rMY/jq18fdDLS+ffti+/bt2Lp1K/7zn/8gKSkJDz30EDZt2uSyXoC8a+D06dNWwaVZ/W2+OoekTcwmI78JDQ1F//798dlnn6GiosLqP1JzCq15EGd99ecCAkzZMHv37sWSJUswduxYy/b9+/dblbviiisgSRKOHTtmsw972+ozB3Fvvvmmw9/7kjmAkFP/pk2bIi4uDmvXrrW7r7otVunp6UhPT4fRaMSOHTvwz3/+E7m5uWjRogVGjhyJZs2aYdOmTaitrXUYEDVt2hSSJKG0tNRuFpGzzCKlNG3aFJ07d8acOXPs/r7uYHyj0Yi77roLV1xxBQwGA+699158+eWXVoP533nnHdxzzz147rnnrPZz6tQpn0yD4OxztRc8An9852bOnIns7Gy7ZVJTU92uS1xcHCoqKmy2Hz161Op9zexdl87ExMSgR48eAIBevXqhV69e6NKlCx588EHs2bPH4ffMnWsgLi4OX331lctyvjqHpE1sGSK/mjlzJoxGI+6//35cunTJq32Z/yOuf8NdtGiR1fOGDRuiZ8+eKCoqsvqr/MyZM/joo49cvs/tt9+On3/+GXFxcejRo4fNw5MJ38x1ltMikpqailatWqGgoMBqcrqDBw9aZXWZ63r69GkYjUa7dbX3n3toaCh69eqF1157DQCwa9cuAMCgQYNw4cIFm+yb+u8nhMCRI0fsvt8111zj8vjqc+fcmOvw7bffIiUlxW4d6gZDTz/9NEpLS/Huu+9i2bJl2Lt3r03rkCRJNt+pTz75BEeOHHH7WOT44osvrLKpjEYjli1bhpSUFCQkJNh9TWpqKtq1a4e9e/faPeYePXpYBb5y3XTTTfjuu+8s3wGzt99+G5IkITMz0+19OtOuXTs8+uij+Oabb7Bs2TKH5dy5Bvr164czZ85gzZo1VtvrZ+j56hySNrFliPyqT58+eO211zB58mR069YNEyZMQMeOHRESEoKKigoUFhYCgKxJD9PS0pCSkoIZM2ZACIHY2Fh89NFHWLdunU3Zv/3tb7j11ltx8803Y/r06TAajXjhhRfQsGFD/PLLL07fJzc3F4WFhbjxxhsxdepUdO7cGbW1tTh06BA+++wzTJ8+Hb169XLrPJiDhPnz52Ps2LEIDw9Hamqq3f98Q0JC8Le//Q333Xcfhg0bhv/7v//Db7/9hlmzZtl0EYwcORLvvvsubrvtNkyZMgU9e/ZEeHg4Dh8+jOLiYmRlZWHYsGFYuHAh1q9fj8GDB6NNmza4cOGCpeVrwIABAExjLN566y3cf//92LdvHzIzM1FbW4tt27ahffv2GDlyJPr06YMJEyZg/Pjx2LFjB2688UY0bNgQFRUV2LRpE6655ho88MADbp0b86zk7777Ltq3b49GjRohPj7eKqip65lnnsG6detwww034OGHH0ZqaiouXLiAAwcOYPXq1Vi4cCESEhKwbt065OXl4amnnrJMzZCXl4dHHnkEGRkZGDZsGABTcLVkyRKkpaWhc+fO2LlzJ1588UWHgYm3mjZtiv79++Opp55Cw4YNsWDBAvzwww8u0+sXLVqEQYMG4ZZbbsG4cePQunVr/PLLL/j++++xa9cuLF++3O26TJ06FW+//TYGDx6MZ555Bm3btsUnn3yCBQsW4IEHHsDVV1/t6WE69Mgjj2DhwoWYPXs2RowYgdDQUJsy7lwDY8eOxcsvv4y7774bzz77LK666iqsWbMGn376qWVfZr44h6RRARy8TTq2Z88eMX78eJGcnCwMBoOIjIwUV111lbjnnnvEF198YVV27NixomHDhnb3891334mbb75ZREdHiyuuuELceeed4tChQwKAePrpp63Krlq1SnTu3FlERESINm3aiOeff148/fTTLrPJhDCl6z755JMiNTVVREREiJiYGHHNNdeIqVOnWmUCARCTJk2yqae9fc6cOVPEx8eLkJAQm0whe9544w3Rrl07ERERIa6++mrx5ptvirFjx1pl0ghhSleeO3eu6NKli4iMjBSNGjUSaWlpYuLEieKnn34SQpiywIYNGybatm0rDAaDiIuLE/369ROrVq2y2tfvv/8u/vrXv1reNy4uTvTv319s3rzZqtybb74pevXqJRo2bCiioqJESkqKuOeee8SOHTssZfr16yc6duxoc1z2jqGgoECkpaWJ8PBwu59lfSdPnhQPP/ywSE5OFuHh4SI2NlZ0795dPPHEE+Ls2bPi6NGjonnz5qJ///5WGUK1tbViyJAhokmTJpbMvl9//VXce++9onnz5qJBgwaib9++orS0VPTr10/069fP8lpzxlPdFHgh/kgBr599aP6unTx50rLN/H1ZsGCBSElJEeHh4SItLU28++67Vq+1l00mhBB79+4VI0aMEM2bNxfh4eGiZcuWon///mLhwoVOz5cQ9rPJhBDi4MGDYvTo0SIuLk6Eh4eL1NRU8eKLL1qdN3M22YsvvujyfVy9nxB/ZICZp1hwdLxyr4FDhw6J7Oxs0ahRIxEdHS2GDx8uVq9ebZNlKoR355CChyREvUVhiIjILyRJwqRJk/Dqq68GuipB77nnnsOTTz6JQ4cO+ayVj7SL3WRERBRU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G1y1XkvMXVQ5Oaabcd2AKBDjQtS0EKvSy1C4Mz5LLeeAiIhUjWOGlMJxIbZ8sQyFGsZnERFRUGHLkJKys4GsLHV1UQWKq+kGJMk03UBWlnvnh/P2EBGRwhgMKU1NXVSB5KvuLPMUAq7GZ3HeHiIikondZOQbvurO4rw9RESkMAZD5Bu+7M7i+CwiIlIQU+vJN/wx3YDaphAgIiJFMbWetM0f0w1wfBYRESmA3WTkO+zOIiIiDWDLEPkWpxsgIiKVYzBEvsfuLCIiUjF2kxEREZGuMRgiIiIiXWMwRERERLrGYIiIiIh0jcEQERER6RqDISIiItI1BkNERESkawyGiIiISNcYDBEREZGuMRgiIiIiXWMwRERERLrGYIiIiIh0jcEQERER6RqDISIiItI1BkNERESkawyGiIiISNdUHwzl5eXhuuuuQ3R0NJo3b46hQ4di3759ga4WERERBQnVB0MbNmzApEmTsHXrVqxbtw41NTUYOHAgzp07F+iqERERURCQhBAi0JVwx8mTJ9G8eXNs2LABN954o6zXVFVVISYmBpWVlWjcuLGPa0hERERK8Nf9O8xne/aRyspKAEBsbKzDMtXV1aiurrY8r6qq8nm9iIiISJtU301WlxAC06ZNQ9++fdGpUyeH5fLy8hATE2N5JCYm+rGWREREpCWa6iabNGkSPvnkE2zatAkJCQkOy9lrGUpMTGQ3GRERkYawm6yeyZMnY9WqVdi4caPTQAgADAYDDAaDn2pGREREWqb6YEgIgcmTJ2PlypUoKSlBcnJyoKtEREREQUT1wdCkSZOQn5+PDz/8ENHR0Th27BgAICYmBlFRUQGuHREREWmd6scMSZJkd/tbb72FcePGydoHU+uJiIi0h2OGLlN5rEZEREQap6nUeiIiIiKlMRgiIiIiXWMwRERERLrGYIiIiIh0jcEQERER6RqDISIiItI1BkNERESkawyGiIiISNcYDBEREZGuMRgiIiIiXWMwRERERLrGYIiIiIh0jcEQERER6RqDISIiItI1BkNERESkawyGiIiISNcYDBEREZGuMRgiIiIiXWMwRERERLrGYIiIiIh0jcEQERER6RqDISIiItI1BkNERESkawyGiIiISNcYDBEREZGuMRgiIiIiXWMwRERERLrGYIiIiIh0jcEQERER6RqDISIiItI1BkNERESkawyGiIiISNcYDBEREZGuMRgiIiIiXWMwRERERLrGYIiIiIh0jcEQERER6RqDISIiItI1zQRDCxYsQHJyMiIjI9G9e3eUlpYGukpEREQUBDQRDC1btgy5ubl44oknsHv3bqSnp2PQoEE4dOhQoKtGREREGicJIUSgK+FKr1690K1bN/zrX/+ybGvfvj2GDh2KvLw8l6+vqqpCTEwMKisr0bhxY19WlYiIiBTir/u36luGLl68iJ07d2LgwIFW2wcOHIjNmzcHqFZEREQULMICXQFXTp06BaPRiBYtWlhtb9GiBY4dO2b3NdXV1aiurrY8r6ysBGCKMImIiEgbzPdtX3diqT4YMpMkyeq5EMJmm1leXh5mz55tsz0xMdEndSMiIiLfOX36NGJiYny2f9UHQ02bNkVoaKhNK9CJEydsWovMZs6ciWnTplme//bbb2jbti0OHTrk05OpNlVVVUhMTER5ebmuxkrxuHncesDj5nHrQWVlJdq0aYPY2Fifvo/qg6GIiAh0794d69atw7Bhwyzb161bh6ysLLuvMRgMMBgMNttjYmJ09SUya9y4MY9bR3jc+sLj1he9HndIiG+HOKs+GAKAadOmYcyYMejRoweuv/56LF68GIcOHcL9998f6KoRERGRxmkiGPrTn/6E06dP45lnnkFFRQU6deqE1atXo23btoGuGhEREWmcJoIhAHjwwQfx4IMPevRag8GAp59+2m7XWTDjcfO49YDHzePWAx63b49bE5MuEhEREfmK6iddJCIiIvIlBkNERESkawyGiIiISNcYDBEREZGuaTIYWrBgAZKTkxEZGYnu3bujtLTUafkNGzage/fuiIyMxJVXXomFCxfalCksLESHDh1gMBjQoUMHrFy50lfV95g7x11UVISbb74ZzZo1Q+PGjXH99dfj008/tSqzZMkSSJJk87hw4YKvD8Ut7hx3SUmJ3WP64YcfrMoF2+c9btw4u8fdsWNHSxktfN4bN27EkCFDEB8fD0mS8MEHH7h8TTBc3+4ed7Bc3+4ed7Bc3+4ed7Bc33l5ebjuuusQHR2N5s2bY+jQodi3b5/L1/njGtdcMLRs2TLk5ubiiSeewO7du5Geno5Bgwbh0KFDdsuXlZXhtttuQ3p6Onbv3o3HH38cDz/8MAoLCy1ltmzZgj/96U8YM2YM9u7dizFjxmDEiBHYtm2bvw7LJXePe+PGjbj55puxevVq7Ny5E5mZmRgyZAh2795tVa5x48aoqKiwekRGRvrjkGRx97jN9u3bZ3VM7dq1s/wuGD/v+fPnWx1veXk5YmNjceedd1qVU/vnfe7cOXTp0gWvvvqqrPLBcn27e9zBcn27e9xmWr++3T3uYLm+N2zYgEmTJmHr1q1Yt24dampqMHDgQJw7d87ha/x2jQuN6dmzp7j//vuttqWlpYkZM2bYLf/oo4+KtLQ0q20TJ04UvXv3tjwfMWKEuPXWW63K3HLLLWLkyJEK1dp77h63PR06dBCzZ8+2PH/rrbdETEyMUlX0CXePu7i4WAAQv/76q8N96uHzXrlypZAkSRw4cMCyTQufd10AxMqVK52WCZbruy45x22PFq/vuuQcd7Bc33V58nkHw/UthBAnTpwQAMSGDRsclvHXNa6plqGLFy9i586dGDhwoNX2gQMHYvPmzXZfs2XLFpvyt9xyC3bs2IFLly45LeNon/7myXHXV1tbizNnztgsdnf27Fm0bdsWCQkJuP32223+sgwkb4772muvRatWrXDTTTehuLjY6nd6+Lz//e9/Y8CAATaztKv58/ZEMFzfStDi9e0NLV/fSgiW67uyshIAnC7C6q9rXFPB0KlTp2A0Gm1Wq2/RooXNqvZmx44ds1u+pqYGp06dclrG0T79zZPjru+ll17CuXPnMGLECMu2tLQ0LFmyBKtWrUJBQQEiIyPRp08f/PTTT4rW31OeHHerVq2wePFiFBYWoqioCKmpqbjpppuwceNGS5lg/7wrKiqwZs0a3HfffVbb1f55eyIYrm8laPH69kQwXN/eCpbrWwiBadOmoW/fvujUqZPDcv66xjWzHEddkiRZPRdC2GxzVb7+dnf3GQie1rGgoACzZs3Chx9+iObNm1u29+7dG71797Y879OnD7p164Z//vOf+Mc//qFcxb3kznGnpqYiNTXV8vz6669HeXk55s6dixtvvNGjfQaKp3VcsmQJmjRpgqFDh1pt18rn7a5gub49pfXr2x3BdH17Kliu74ceeghff/01Nm3a5LKsP65xTbUMNW3aFKGhoTbR3okTJ2yiQrOWLVvaLR8WFoa4uDinZRzt0988OW6zZcuW4d5778X777+PAQMGOC0bEhKC6667TjV/SXhz3HX17t3b6piC+fMWQuDNN9/EmDFjEBER4bSs2j5vTwTD9e0NLV/fStHa9e2NYLm+J0+ejFWrVqG4uBgJCQlOy/rrGtdUMBQREYHu3btj3bp1VtvXrVuHG264we5rrr/+epvyn332GXr06IHw8HCnZRzt0988OW7A9BfjuHHjkJ+fj8GDB7t8HyEE9uzZg1atWnldZyV4etz17d692+qYgvXzBkzZGvv378e9997r8n3U9nl7Ihiub09p/fpWitaub29o/foWQuChhx5CUVER1q9fj+TkZJev8ds1LnuotUq89957Ijw8XPz73/8W3333ncjNzRUNGza0jKqfMWOGGDNmjKX8//73P9GgQQMxdepU8d1334l///vfIjw8XKxYscJS5ssvvxShoaHi+eefF99//714/vnnRVhYmNi6davfj88Rd487Pz9fhIWFiddee01UVFRYHr/99pulzKxZs8TatWvFzz//LHbv3i3Gjx8vwsLCxLZt2/x+fI64e9wvv/yyWLlypfjxxx/Ft99+K2bMmCEAiMLCQkuZYPy8ze6++27Rq1cvu/vUwud95swZsXv3brF7924BQMybN0/s3r1bHDx4UAgRvNe3u8cdLNe3u8cdLNe3u8dtpvXr+4EHHhAxMTGipKTE6nt7/vx5S5lAXeOaC4aEEOK1114Tbdu2FREREaJbt25WaXljx44V/fr1sypfUlIirr32WhERESGSkpLEv/71L5t9Ll++XKSmporw8HCRlpZmdXGphTvH3a9fPwHA5jF27FhLmdzcXNGmTRsREREhmjVrJgYOHCg2b97sxyOSx53jfuGFF0RKSoqIjIwUV1xxhejbt6/45JNPbPYZbJ+3EEL89ttvIioqSixevNju/rTweZtTpx19b4P1+nb3uIPl+nb3uIPl+vbkex4M17e9YwYg3nrrLUuZQF3j0uUKEhEREemSpsYMERERESmNwRARERHpGoMhIiIi0jUGQ0RERKRrDIaIiIhI1xgMERERka4xGCIiIiJdYzBEREREusZgiIiIiHSNwRARERHpGoMhItKkgoICREZG4siRI5Zt9913Hzp37ozKysoA1oyItIZrkxGRJgkh0LVrV6Snp+PVV1/F7Nmz8cYbb2Dr1q1o3bp1oKtHRBoSFugKEBF5QpIkzJkzBzk5OYiPj8f8+fNRWlrKQIiI3MaWISLStG7duuG///0vPvvsM/Tr1y/Q1SEiDeKYISLSrE8//RQ//PADjEYjWrRoEejqEJFGsWWIiDRp165dyMjIwGuvvYb33nsPDRo0wPLlywNdLSLSII4ZIiLNOXDgAAYPHowZM2ZgzJgx6NChA6677jrs3LkT3bt3D3T1iEhj2DJERJryyy+/oE+fPrjxxhuxaNEiy/asrCxUV1dj7dq1AawdEWkRgyEiIiLSNQ6gJiIiIl1jMERERES6xmCIiIiIdI3BEBEREekagyEiIiLSNQZDREREpGsMhoiIiEjXGAwRERGRrjEYIiIiIl1jMERERES6xmCIiIiIdI3BEBEREena/wPCAdOrbUuQbgAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "from random import random, seed\n", "import numpy as np\n", @@ -4749,7 +4821,10 @@ "id": "6f044cbb", "metadata": { "collapsed": false, - "editable": true + "editable": true, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -4830,7 +4905,10 @@ "id": "041fe053", "metadata": { "collapsed": false, - "editable": true + "editable": true, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -4908,7 +4986,10 @@ "id": "400b4a2a", "metadata": { "collapsed": false, - "editable": true + "editable": true, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -4993,7 +5074,25 @@ ] } ], - "metadata": {}, + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.15" + } + }, "nbformat": 4, "nbformat_minor": 5 } diff --git a/doc/src/week36/week36.do.txt b/doc/src/week36/week36.do.txt index c47d11b20..b89a88acf 100644 --- a/doc/src/week36/week36.do.txt +++ b/doc/src/week36/week36.do.txt @@ -205,7 +205,7 @@ If our design matrix $\bm{X}$ which enters the linear regression problem !et has linearly dependent column vectors, we will not be able to compute the inverse of $\bm{X}^T\bm{X}$ and we cannot find the parameters (estimators) $\theta_i$. -The estimators are only well-defined if $(\bm{X}^{T}\bm{X})^{-1}$ exits. +The estimators are only well-defined if $(\bm{X}^{T}\bm{X})^{-1}$ exists. This is more likely to happen when the matrix $\bm{X}$ is high-dimensional. In this case it is likely to encounter a situation where the regression parameters $\theta_i$ cannot be estimated. @@ -976,13 +976,13 @@ we have that the derivative of the cost function is and reordering we have !bt \[ -\bm{X}^T\bm{X}\bm{\theta}+\frac{n}{2}\lambda sgn(\bm{\theta})=2\bm{X}^T\bm{y}. +\bm{X}^T\bm{X}\bm{\theta}+\frac{n}{2}\lambda sgn(\bm{\theta})=\bm{X}^T\bm{y}. \] !et We can redefine $\lambda$ to absorb the constant $n/2$ and we rewrite the last equation as !bt \[ -\bm{X}^T\bm{X}\bm{\theta}+\lambda sgn(\bm{\theta})=2\bm{X}^T\bm{y}. +\bm{X}^T\bm{X}\bm{\theta}+\lambda sgn(\bm{\theta})=\bm{X}^T\bm{y}. \] !et @@ -1454,30 +1454,6 @@ plt.show() !ec -!split -===== And a corresponding example using _scikit-learn_ ===== - -!bc pycod -# Importing various packages -from random import random, seed -import numpy as np -import matplotlib.pyplot as plt -from sklearn.linear_model import SGDRegressor - -n = 100 -x = 2*np.random.rand(n,1) -y = 4+3*x+np.random.randn(n,1) - -X = np.c_[np.ones((n,1)), x] -theta_linreg = np.linalg.inv(X.T @ X) @ (X.T @ y) -print(theta_linreg) -sgdreg = SGDRegressor(max_iter = 50, penalty=None, eta0=0.1) -sgdreg.fit(x,y.ravel()) -print(sgdreg.intercept_, sgdreg.coef_) - -!ec - - !split ===== Gradient descent and Ridge =====