You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
510 lines
118 KiB
Plaintext
510 lines
118 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "6d673024",
|
|
"metadata": {},
|
|
"source": [
|
|
"# Data exploration and visualization"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 80,
|
|
"id": "17472992",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Requirement already satisfied: scikit-learn in /Users/gmarx/lwc/courses/aia/lab-sessions-25b/.venv/lib/python3.13/site-packages (1.7.2)\n",
|
|
"Requirement already satisfied: numpy>=1.22.0 in /Users/gmarx/lwc/courses/aia/lab-sessions-25b/.venv/lib/python3.13/site-packages (from scikit-learn) (2.3.2)\n",
|
|
"Requirement already satisfied: scipy>=1.8.0 in /Users/gmarx/lwc/courses/aia/lab-sessions-25b/.venv/lib/python3.13/site-packages (from scikit-learn) (1.16.2)\n",
|
|
"Requirement already satisfied: joblib>=1.2.0 in /Users/gmarx/lwc/courses/aia/lab-sessions-25b/.venv/lib/python3.13/site-packages (from scikit-learn) (1.5.2)\n",
|
|
"Requirement already satisfied: threadpoolctl>=3.1.0 in /Users/gmarx/lwc/courses/aia/lab-sessions-25b/.venv/lib/python3.13/site-packages (from scikit-learn) (3.6.0)\n",
|
|
"\n",
|
|
"\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m25.1.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m25.2\u001b[0m\n",
|
|
"\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"!pip3 install scikit-learn"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 81,
|
|
"id": "2d4552f4",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
".. _iris_dataset:\n",
|
|
"\n",
|
|
"Iris plants dataset\n",
|
|
"--------------------\n",
|
|
"\n",
|
|
"**Data Set Characteristics:**\n",
|
|
"\n",
|
|
":Number of Instances: 150 (50 in each of three classes)\n",
|
|
":Number of Attributes: 4 numeric, predictive attributes and the class\n",
|
|
":Attribute Information:\n",
|
|
" - sepal length in cm\n",
|
|
" - sepal width in cm\n",
|
|
" - petal length in cm\n",
|
|
" - petal width in cm\n",
|
|
" - class:\n",
|
|
" - Iris-Setosa\n",
|
|
" - Iris-Versicolour\n",
|
|
" - Iris-Virginica\n",
|
|
"\n",
|
|
":Summary Statistics:\n",
|
|
"\n",
|
|
"============== ==== ==== ======= ===== ====================\n",
|
|
" Min Max Mean SD Class Correlation\n",
|
|
"============== ==== ==== ======= ===== ====================\n",
|
|
"sepal length: 4.3 7.9 5.84 0.83 0.7826\n",
|
|
"sepal width: 2.0 4.4 3.05 0.43 -0.4194\n",
|
|
"petal length: 1.0 6.9 3.76 1.76 0.9490 (high!)\n",
|
|
"petal width: 0.1 2.5 1.20 0.76 0.9565 (high!)\n",
|
|
"============== ==== ==== ======= ===== ====================\n",
|
|
"\n",
|
|
":Missing Attribute Values: None\n",
|
|
":Class Distribution: 33.3% for each of 3 classes.\n",
|
|
":Creator: R.A. Fisher\n",
|
|
":Donor: Michael Marshall (MARSHALL%PLU@io.arc.nasa.gov)\n",
|
|
":Date: July, 1988\n",
|
|
"\n",
|
|
"The famous Iris database, first used by Sir R.A. Fisher. The dataset is taken\n",
|
|
"from Fisher's paper. Note that it's the same as in R, but not as in the UCI\n",
|
|
"Machine Learning Repository, which has two wrong data points.\n",
|
|
"\n",
|
|
"This is perhaps the best known database to be found in the\n",
|
|
"pattern recognition literature. Fisher's paper is a classic in the field and\n",
|
|
"is referenced frequently to this day. (See Duda & Hart, for example.) The\n",
|
|
"data set contains 3 classes of 50 instances each, where each class refers to a\n",
|
|
"type of iris plant. One class is linearly separable from the other 2; the\n",
|
|
"latter are NOT linearly separable from each other.\n",
|
|
"\n",
|
|
".. dropdown:: References\n",
|
|
"\n",
|
|
" - Fisher, R.A. \"The use of multiple measurements in taxonomic problems\"\n",
|
|
" Annual Eugenics, 7, Part II, 179-188 (1936); also in \"Contributions to\n",
|
|
" Mathematical Statistics\" (John Wiley, NY, 1950).\n",
|
|
" - Duda, R.O., & Hart, P.E. (1973) Pattern Classification and Scene Analysis.\n",
|
|
" (Q327.D83) John Wiley & Sons. ISBN 0-471-22361-1. See page 218.\n",
|
|
" - Dasarathy, B.V. (1980) \"Nosing Around the Neighborhood: A New System\n",
|
|
" Structure and Classification Rule for Recognition in Partially Exposed\n",
|
|
" Environments\". IEEE Transactions on Pattern Analysis and Machine\n",
|
|
" Intelligence, Vol. PAMI-2, No. 1, 67-71.\n",
|
|
" - Gates, G.W. (1972) \"The Reduced Nearest Neighbor Rule\". IEEE Transactions\n",
|
|
" on Information Theory, May 1972, 431-433.\n",
|
|
" - See also: 1988 MLC Proceedings, 54-64. Cheeseman et al\"s AUTOCLASS II\n",
|
|
" conceptual clustering system finds 3 classes in the data.\n",
|
|
" - Many, many more ...\n",
|
|
"\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"from sklearn import datasets\n",
|
|
"iris = datasets.load_iris()\n",
|
|
"print(iris.DESCR)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 82,
|
|
"id": "d238e7f5",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "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cv/998vKlSvl0ksvlR49esiIESPE5ban6HHffSXLfffdV2y7tukXVMr69evllFNOkTPOOMPpcz1ou105z9Wtt94qf/7zn+Wvf/2rf63TwPuiiy7yV1z91a9+JQU713XaL1rn66+/9vr06eOtWLHCO/HEE72JEydmLDt//nyvS5cunu2uv/5670c/+lHO5c8880xv1KhRaduOO+4477LLLvNcb7srx/zaa6/1fvKTnwT6mWuuucY74ogj0radddZZ3ogRIzzX2/7cc8/pn5Pel19+6blEr2+9e/f2du3a5fy5HqTdrpznSo/fxRdf7O1u9OjR3nnnnecV8lznkU0e6C08jQyHDx+eU/kdO3bIgQce6CcmqqiokA0bNoiN9C9ETZh08MEHy3nnnSeffPJJxrIvv/xyk/7RqFm3u952V475Y489Jsccc4z/F6L+lX/kkUfKPffck/VnXDnuYdqeMmjQIP+vRP3r+sUXXxSb7dy5UxYuXCgXX3xxxr/+XTnmQdvtynmuhg4d6t/heO+99/z3b775pvzrX/+Sn/3sZ5JJPo47AUkrLV682L8Vqbcnc9G3b1+577775NFHH/V/wTWTsR78LVu2iE2OO+44//ngk08+6d/a09t1w4YN87M6Nkefm3fv3j1tm7637Xl6mLa7csw//PBDv719+vSRp556Sq644gr/9q3e1s0k03HXTKHffvutuNx2DULuvvtuWbp0qf/SL6ny8nL/emGrRx55RL766iu58MILM5Zx6VwP0m5XznM1ZcoUOfvss/1xQO3atfMDcB0bqX98FfRcz/leCpr45JNPvH333dd78803G7a19MimsZ07d/q3AadNm+bZTG9Ld+7c2bv33nub/bxdu3beokWL0rb96U9/8vvPdi213ZVjrsdwyJAhadt++ctfeoMHD874M/oo8+abb07b9sQTT/iPMmpraz2X296cE044wTv//PM9W5166qneaaedlrWMi+d6Lu125TxXDzzwgFdaWur/+6233vL+9re/ed26dfMWLFjgFfJc5w5JK6xZs0Y+//xzf1SxDmrU16pVq+SPf/yj/9+7D4jKJBV9fvDBB2KzH/zgB3LooYdmbMd+++0nn332Wdo2fa/bbddS21055voX/+GHH5627bDDDsv6uCrTcdfBfzp63+W2N+fHP/6xdcc95eOPP/YHcutAxWxcO9dzbbcr57mqrKxsuEuis6TGjh0rV111VdYnAfk41wlIWuHkk0+WdevWydq1axte+pxZb2vpfxcXF7f4/9CgRf8fesGzmT47raqqytiOIUOG+M8kd7dixQp/u+1aarsrx1xnmew+g0DpM2Z9Zp6JK8c9TNubo9cF2457yvz58/3xMzpeLhtXjnnQdrtynqva2lpp0yY9PNDvM30MVdDjntN9FOSs8SObsWPHelOmTGl4P336dO+pp57yqqqqvDVr1nhnn32216FDB2/Dhg2eTX796197zz//vLdp0ybvxRdf9IYPH+798Ic/9D7//PNm261l2rZt6912223eO++8489U0Vu769at82wTtO2uHPP//Oc//jH8wx/+4L3//vve/fff73Xs2NFbuHBhQxltt7Y/5cMPP/TLVFZW+sddb90XFxd7Tz75pOd62++8807vkUce8cvr77leF9q0aeM988wznm3q6+u9Aw44wJ9t1JjL53qQdrtynqsLLrjA69mzp/f444/717lly5b51zidSVPIc52ApMABib7Xg5syadIk/xe8ffv2Xvfu3b2RI0d6r7/+umcbnc7Vo0cPvx36i6vvP/jgg4ztVg8++KB36KGH+j+j08P0+aKNgrbdlWOu/vGPf3j9+/f3SkpKvH79+nl/+ctf0j7Xdmv7G09/HTRokN/+gw8+2J8emYS233rrrf4YAv1S0ufv5eXl3rPPPuvZSL9o9e/XjRs3NvnM5XM9SLtdOs+3b9/uf49pe/T3V8/b3/zmN15dXV1Bz/Ui/Ufu91MAAADyjzEkAAAgdgQkAAAgdgQkAAAgdgQkAAAgdgQkAAAgdgQkAAAgdgQkAAAgdgQkAAAgdgQkAAAgdgQkAAAgdgQkAAAgdgQkAABA4vZ/+cCR4l/PHcoAAAAASUVORK5CYII=",
|
|
"text/plain": [
|
|
"<Figure size 640x480 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"(150, 1)"
|
|
]
|
|
},
|
|
"execution_count": 82,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"import numpy as np\n",
|
|
"import matplotlib.pyplot as plt\n",
|
|
"sl = iris.data[:,0].reshape(-1,1)\n",
|
|
"sw = iris.data[:,1].reshape(-1,1)\n",
|
|
"plt.plot(sl, sw, 'ok')\n",
|
|
"plt.show()\n",
|
|
"sl.shape"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 83,
|
|
"id": "431f7877",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "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rvLSSy/JlClTTFLq0KFDZeDAgTJixAizbe+99zbDOw8//LD83//9n8krKSoqMkM4K1eulIKCAvN36Pv69+8vZ555psyYMUO+//57c7flqKOOMu8JCndIgIjRH3RDiobI6f1PN38SjAC5cbeyS5cuJuH01ltvlSOPPFL69etnhmwuvPBCue2228w03kceecS8dt5555mA5LTTTjOF73bbbbf6HBTNPdFpwzo1eN68eeZ9ixcvlh133NG8VwMUXePkn//8pwQpz9H6wZZzU74YAIDmfPvtt+YuQa9evdpUnZa6Ui2fTzff3wzZAADQhruV8AdDNgAAIHQEJAAAIHQEJAAAIHQEJAAAIHQEJAAAIHQEJAAAIHQEJAAAIHQEJAAAIHQEJAAAICNdWn7RokWSbQQkAAB4oVVzly0TmTev7s9GVXT99otf/MLUoWlKeXm5CRxef/113/dbXV0txx9/vGQbAQkAAG6VlYkUFYkcfbTIGWfU/anPdXuWjB07VpYsWSLr16/f6rU5c+aYyrxaBdiN2traFtt0795dOnbsKNlGQAIAgBsadIwaJdI4MKiqqtuepaDkpJNOMhV6586dm7Z906ZNcv/995uA5dlnn5XBgwfLtttuK4WFhfKb3/xGvv766/q2RUVFcsMNN8iYMWNMsbtf/vKXJii59NJLJT8/3xTH22OPPWTy5Mn172HIBgAA2+iwTEmJiONs/Vpq2/jxWRm+ad++vQkkNCBxGuxfg5FkMikDBw40Qzonn3yyGbr55z//aQIUDTYamjZtmvz0pz+VV199Va6++mr585//LA8++KDcd999smbNGrnnnntM4BK0PKdhryzlpnwxAADN+fbbb6WiokJ69epl7gi4orkiOjzTkqefFhnifyXgt99+W/r27StPP/20DPnh7z/yyCPNXQ0dVkkkEjJ79uz69hqQHHXUUeYuifZVA40DDjhAHnjggfo2ehdl9erV8uSTT5q7IY3pNm0/YsQI1+fTzfc3d0gAHyW3JGXZB8tk3qp55k99DiBGqqv9befSPvvsI4MGDZI777zTPH/vvfdMQqsO17z22mvm7kmXLl3qH8OGDZMtW7aYgCFFc00aOvfcc2XlypXSp08fE5w88cQTEob2oewViKGyt8qk5LESWb/xx3Hlgm4FMvO4mTKy78hQjw2AT/Lz/W3nwdixY+XXv/61/OUvfzHJrMXFxeYuiOaS/OpXvzJBRWM9e/as///tttsu7bUDDzzQBCyPPvqouUsyevRoGTp0qCxYsECCxB0SwKdgZNR9o9KCEVW1scps19cBxMDgwSIFBTqO0fTrur2wsK5dlowePVratWsn9957r9x1111y/vnnm2EVDSzefPNN2WuvvbZ6dOjQodm/U4dTTj31VLnjjjtM7snChQvls88+kyARkABtpMMyemfEka3TsVLbxj82nuEbIA4SCZGZM+v+v3FQkno+Y0Zduyzp0qWLCR4mTZpk1gjRIRd1+eWXy/PPP2+SWHUI5t1335XFixdvldTa2PTp02XevHkmP+Wdd94xSbI61XeHHXaQIBGQAG1Uvq58qzsjjYOSyo2Vph2AGBg5UkSHM3r0SN+ud050u76eZWPHjpXPP//c5IjsvvvuZpuuQbJ8+XITVOjUX01eveaaa+pfz6Rr164yZcoUk1tyyCGHyAcffCCPPPKIuQsTJHJIgDaq/qra13YAIkCDjuHDdYnUugRWzRnRYZos3hlpSKf4NjVJVgOK5pJSNdho7MILLzSPTIKajEtAArRRftd8X9sBiAgNPrIwtTdXMWQDtNHgnoPNbJo8aTrJTbcXdis07QAATSMgAdoo0S5hpvaqxkFJ6vmM42aYdgCAphGQAD7QdUYWjF4gPbqlJ7npnRPdzjokANA8ckgAn2jQMbzPcDObRhNYNWdEh2m4MwIALSMgAXykwceQIpLcAMAthmwAAEDoCEgAAEDoGLJBZOlS7ORrAEA8cIcEkaTF6opmFsnR/zhazig7w/ypzyliByCXXXfddTJgwIA2/z3Lli0zBfu++OILCQoBCSKHyroAbJBM6he3yLx5dX/q82z6xS9+Iccdd1yTr5WXl5sAYuTIkbJ06dI272vQoEGmcN/2228vQSEgQaRQWReADcrKRIqKRI4+WuSMM+r+1Oe6PZsF9ZYsWSLr129dzHPOnDmmOJ4W2Nt5550z/h21tbWt2leHDh1MxV8NcoJCQIJIobIugLBp0DFqlEjjuKCqqm57toKSk046SXbZZReZO3du2vZNmzbJ/fffbwKWxkM25557rowYMUL++Mc/mqq/ffr0Mduff/55065Tp04mkFm0aJEJPlauXGleZ8gGaAGVdQGESYdlSkq0Au7Wr6W2jR+fneGb9u3by5gxY0xA0rACrwYjyWRSTj/99Cbfp0M4a9asMXdXHnroIdm4caMZ/unfv7+88sorcsMNN8jll18uYSMgQaRQWRdAmMrLt74z0pDGCZWVde2y4fzzz5e1a9fK8uXL04ZrTj755Iz5Htttt538/e9/l/3228887r33XnP344477pB9991Xjj/+eCktLZWwEZAgUqisCyBM1dX+tnNrn332MQmnd955p3n+3nvvmYRWHa7JRO+EaE5Iit4t0VwTHa5JOfTQQyVsBCSIFCrrAghTfr6/7bwYO3asLFy4UL766itzd6S4uFiOOuqojO31DkkUEJAgcqisCyAsgweLFBSIZJp8otsLC+vaZcvo0aOlXbt2ZujlrrvuMsM4bmbDaGLrqlWrZPPmzfXbXnzxRQkbK7UikqisCyAMiYTIzJl1s2k0BmiY3JqKCWbMqGuXLV26dJFTTz1VJk2aZBJUdSaNG2eccYb8/ve/l1/+8pdyxRVXyLp162TatGnmtSCn+TbGHRJEvrLu6f1PN38SjAAIwsiRIgsWiPRIv0lr7pzodn0928aOHSuff/65DBs2zEzndaNbt27yr3/9y0zx1am/Gpxcc8015rWGeSVBy3Mazh2ylEaAmj385ZdfmhMJAIBX3377rVRUVEivXr3a9AWsU3t1No0msGrOiA7TZPPOSDbdc889ct5555nv2W233da38+nm+5shGwAAPNDgY8gQiaS77rpL9txzT+nRo4e89tprZh0SzU1xG4z4iYAEyAFURgbQ0IYNG8wwjf6Zn58vp5xyilnNNUxtyiG5+eabTQLMeF2Wrhm6ipzOndZbOTof+pFHHmnLbgG4QGVkAI1NnDhRPvjgg/rhlltvvVU6d+4skQxIdIrQ7NmzzeIqzdH18nU5W03AefXVV82a+vp44403vO4aQCtRGRlAVHgKSLSQz5lnnmmWnd1xxx2bbTtz5kxTLlmXpe3bt69ZM//AAw+U2267zesxA2gFKiMDiH1Acskll8iJJ54oQ4cObbHtihUrtmqn05R0eya6WItm5jZ8AHCHyshA8yIwyTSnzqPrpNb58+eb6oCtXdVNE2Z22223tG36XLdnMnnyZLn++uvdHhqABqiMDDRtm222MX/W1NSEOqskLmpqatLOayABSWVlpZSUlJgSxtlcPEVXn5swYUL9c71DUqhr8QJoNSojA01LJBKyww47yCef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6N69u3z88cdp2/S5bs+kY8eO5oGI0am9+u9BE1ibSk1K5ZBoOwAAvN4h0fxXDUYeeOABeeqpp6RXr14tvmfgwIGydOnStG06Q0e3I2Y0UXXmzB+Dj4ZSz2fMIKEVANC2gESHae6++2659957zVokmgeij2+++aa+zZgxY8yQS0pJSYk89thj8qc//Unefvttue666+Sll14ygQ1iaORIkQULRHr0SN+ud0Z0u74OAEBbpv3mNf6t9wdz5syRc8891/z/kCFDpKioSObOnZu2MNpVV10lH3zwgfTu3VumTJkiJ5xwQmt3y7TfKGKlVgDIeRtdfH+3aR2SoBCQAAAQPYGtQwIAAOAHAhIAABA6AhIAABA6AhIAABA6AhIAABA6AhIAABA6AhIAABA6AhIAABA6AhIAABDNar9BSy0mqyu+AQCAaEh9b7dmUfhIBCRfffWV+bOwsDDsQwEAAB6+x3UJ+cjXstmyZYt89NFHpsJwpgJ/NkeHGkhVVlbmXB2eXO17rvZb0ffc63uu9lvR98IW+64hhgYju+++u7Rr1y76d0i0EwVavj7C9ILl2j/YXO97rvZb0ffc63uu9lvR927NtmnpzkgKSa0AACB0BCQAACB0BCRZ1rFjR7n22mvNn7kmV/ueq/1W9D33+p6r/Vb0/Vpf+x6JpFYAABBv3CEBAAChIyABAAChIyABAAChIyABAAChIyDx0c0332xWkh0/fnzGNnPnzjVtGj46deokUXPddddt1Y999tmn2ffcf//9po32t3///vLII49IFLnte1yuuaqqqpKzzjpLdt55Z9l2223NdXzppZeafc+yZcvkwAMPNNn4e+21lzkfudB37Xfj666PDRs2SJQUFRU12Y9LLrkk1p91t/2O0+c8mUzK1VdfLb169TL/1ouLi+WGG25osR5NWz/rkVipNQpefPFFmT17tuy///4tttVV7dasWVP/PGrL4afst99+8uSTT9Y/b98+8z+n559/Xk4//XSZPHmynHTSSXLvvffKiBEj5JVXXpF+/fpJnPsel2v++eefyxFHHCFHH320PProo7LLLrvIu+++KzvuuGPG91RUVMiJJ54oF110kdxzzz2ydOlSueCCCyQ/P1+GDRsmce57il73hitZ7rrrrhK1n236BZXyxhtvyLHHHiunnHJKrD/rbvsdl8+5uuWWW+Svf/2r/OMf/zA/6zTwPu+888yKq7/5zW8ka591nfaLtvnqq6+c3r17O0uWLHGOOuoop6SkJGPbOXPmONtvv70Tdddee63z05/+tNXtR48e7Zx44olp2w477DDnV7/6lRP3vsflml9++eXO//zP/7h6z8SJE5399tsvbdupp57qDBs2zIl7359++mn9ddL5/PPPnTjRn2/FxcXOli1bYv9Zd9PvuHzOlV6/888/32lo5MiRzplnnulk87POkI0P9BaeRoZDhw5tVftNmzbJHnvsYQoTDR8+XFavXi1RpL8hasGkPffcU84880xZt25dxrYrVqzY6vxo1Kzb4973uFzzBx98UA4++GDzG6L+ln/AAQfIHXfc0ex74nLdvfQ9ZcCAAea3RP3t+rnnnpMoq62tlbvvvlvOP//8jL/9x+Wau+13XD7natCgQeYOxzvvvGOev/baa/Lss8/K8ccfL5n4cd0JSNpo/vz55lak3p5sjT59+sidd94pixcvNv/AtZKxXvz169dLlBx22GFmfPCxxx4zt/b0dt3gwYNNVcem6Lj5brvtlrZNn0dtPN1L3+Nyzd9//33T3969e8vjjz8uF198sbl9q7d1M8l03bVS6DfffCNx7rsGIbfffrssXLjQPPRLasiQIebnRVQtWrRIvvjiCzn33HMztonTZ91Nv+PyOVdXXHGFnHbaaSYPaJtttjEBuOZG6i9fWf2st/peCraybt06Z9ddd3Vee+21+m0tDdk0Vltba24DXnXVVU6U6W3pbt26OX//+9+bfH2bbbZx7r333rRtf/nLX8z5i7qW+h6Xa67XcODAgWnbfv3rXzuHH354xvfoUOZNN92Utu3hhx82Qxk1NTVOnPvelCOPPNI566yznKj6+c9/7px00knNtonjZ701/Y7L51zNmzfPKSgoMH++/vrrzl133eXstNNOzty5c51sfta5Q9IGL7/8snzyyScmq1iTGvWxfPly+fOf/2z+v2FCVCap6PO9996TKNthhx1k7733ztiP7t27y8cff5y2TZ/r9qhrqe9xueb6G/++++6btq1v377NDldluu6a/KfZ+3Hue1MOPfTQyF33lA8//NAkcmuiYnPi9llvbb/j8jlXpaWl9XdJdJbU2WefLZdddlmzIwF+fNYJSNrgmGOOkVWrVsnKlSvrHzrOrLe19P8TiUSLf4cGLfp36A+8KNOx07Vr12bsx8CBA82YZENLliwx26Oupb7H5ZrrLJOGMwiUjjHrmHkmcbnuXvreFP25ELXrnjJnzhyTP6P5cs2JyzV32++4fM5VTU2NtGuXHh7o95kOQ2X1urfqPgparfGQzdlnn+1cccUV9c+vv/565/HHH3fWrl3rvPzyy85pp53mdOrUyVm9erUTJb/97W+dZcuWORUVFc5zzz3nDB061PnJT37ifPLJJ032W9u0b9/emTZtmvPWW2+ZmSp6a3fVqlVO1Ljte1yu+QsvvGCu4R//+Efn3Xffde655x6nc+fOzt13313fRvut/U95//33TZvS0lJz3fXWfSKRcB577DEn7n2/9dZbnUWLFpn2+u9cfy60a9fOefLJJ52oSSaTTs+ePc1so8bi/Fl30++4fM7VOeec4/To0cN56KGHzM+5srIy8zNOZ9Jk87NOQJLlgESf68VNGT9+vPkH3qFDB2e33XZzTjjhBOeVV15xokanc+Xn55t+6D9cff7ee+9l7Le67777nL333tu8R6eH6fhiFLnte1yuufrXv/7l9OvXz+nYsaOzzz77OH/729/SXtd+a/8bT38dMGCA6f+ee+5ppkfmQt9vueUWk0OgX0o6/j5kyBDnqaeecqJIv2j199c1a9Zs9VqcP+tu+h2nz/nGjRvN95j2R//96uf297//vbN58+asftbz9D+tv58CAADgP3JIAABA6AhIAABA6AhIAABA6AhIAABA6AhIAABA6AhIAABA6AhIAABA6AhIAABA6AhIAABA6AhIAABA6AhIAABA6AhIAACAhO3/A0pGNsfKkaZiAAAAAElFTkSuQmCC",
|
|
"text/plain": [
|
|
"<Figure size 640x480 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"tg = iris.target\n",
|
|
"tg.shape\n",
|
|
"plt.plot(sl[tg==0,0], sw[tg==0,0], 'og', label=\"Seto\")\n",
|
|
"plt.plot(sl[tg==1,0], sw[tg==1,0], 'or', label=\"Versi\")\n",
|
|
"plt.plot(sl[tg==2,0], sw[tg==2,0], 'ob', label=\"Virgi\")\n",
|
|
"plt.legend()\n",
|
|
"plt.show()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "69e04585",
|
|
"metadata": {},
|
|
"source": [
|
|
"# Binary classifier with one parameter"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "8fdd3031",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "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zz5r+3MYji5PNWnSpEZFVl3/73V/NOPtYsyYMYEE/Gh/yz799NPN8qaeK7vT99BFF11U62t16vlTmjj79ttvRz0r6aTzl/mP86DnRH+psejt7t27x+19HJO4ZcO4POl23759gX3PPPOMSbr95ptv6ky63bJlS2DfG2+8YaukW02s0iTNe+65J6bHb9iwwRzj//zP//js7pVXXjHn8PDhw3Um3S5btiyw77PPPrN10u2ePXt8nTp18g0dOtT33XffOfocarLemDFjQpL12rdvX2fS7U9/+tOQfb1797Zt0qa+1zQZURMQ//d//zem59Bz3LlzZ9/48eN9dnf06FHfOeec45szZ44rzl/1BGNNSP32229dc/6klqTbxx9/PLCvoqIioqTbaN7HMb1Wn8d98cUXvvfff983bdo031lnnWX+rpu+6awftC5duviuvfZa3wcffOBbvXq1qaopKCgIPMd7771nfhj1S8Ry3XXX+S6//HJzn34x6JfLsGHDfHbx9ttvmx9UrYapTo9Dj0dfu9q5c6epItIArKSkxLdy5Upfx44dfT/5yU98drNx40ZTIaTnateuXSZY0fM1fPjwWo9P3Xnnnb7zzjvP984775jj1A9Q3exIX/+FF17o69+/v/l7eXl5YHPiOVy8eLH5MFywYIEJ9u+44w7f2WefHajM+9WvfuWbOHFiYPx///d/+0477TTzgao/v/ologHn3/72N58djR492vwyVFxcHHKuvv7668CY6seon0f6S47+DG/dutUEps2aNfN9/PHHPrvRX3r02PTnSs9NXl6er1WrVqYayg3nL/gLWD8jHnjggRr3Oe38HT16NPBdp98DM2fONH/X70P12GOPmfegfk58+OGHvsGDB5tfcP/+978HnuOf/umffE8++WTE7+N48HzAMmLECHPCqm9r164NjPn88899AwcO9DVv3ty8EfUNGhxh61h9jL5hLYcOHTIBigZBOhszcuTIQBBkB/ra+vTpE/Y+PY7g/welpaXmiy0jI8P8QOqX5X333WeibrvRDwctkdQvCP2A+OEPf+j77W9/GzIbVv34lL4R/+3f/s38ZnjGGWf4fvazn4UEAHabDQz3Mxs8Yeq0c6gffPpl0LRpU/Ob2rvvvhtSjq3v02BFRUW+iy66yIy/9NJLfX/+8599dlXbudLzWNsxjhs3LvD/o23btr5/+Zd/8W3bts1nR/n5+b6srCzzWvU3ar2tAbJbzp9FAxA9b9u3b69xn9PO39p/fGdV36xj0FmWhx56yLx2/bzQX46qH7e2j9BgM9L3cTyk6H/it8AEAAAQf/RhAQAAtkfAAgAAbI+ABQAA2B4BCwAAsD0CFgAAYHsELAAAwPYIWAAAgO0RsAAAANsjYAEAALZHwAIAAGyPgAUAANgeAQsAABC7+3/qmCsTI9gqpQAAAABJRU5ErkJggg==",
|
|
"text/plain": [
|
|
"<Figure size 640x480 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"z = np.linspace(-10, 10, 100)\n",
|
|
"sig = 1/(1+np.exp(-z-4)) + 1/(1+np.exp(-z+4))\n",
|
|
"plt.plot(z, sig, 'ob')\n",
|
|
"plt.show()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "cb11e50e",
|
|
"metadata": {},
|
|
"source": [
|
|
"# First classifier\n",
|
|
"$$z = \\theta_1\\times x_1 + \\theta_0$$"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 149,
|
|
"id": "fbabeabe",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"pw = iris.data[:, 3].reshape(-1,1)\n",
|
|
"X = np.c_[np.ones_like(pw), pw]\n",
|
|
"y = (iris.target==0).astype(int).reshape(-1,1) #Setosa "
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 150,
|
|
"id": "2108be89",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"def sigmoid(z):\n",
|
|
" #z = np.clip(z, -50, 50)\n",
|
|
" sig = 1/(1+np.exp(-z))\n",
|
|
" return sig"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 151,
|
|
"id": "0c64a3cf",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"def logLoss(y, yModel):\n",
|
|
" #yModel = np.clip(yModel, 1e-12, 1-1e-12)\n",
|
|
" loss = -np.mean(y*np.log(yModel)+(1-y)*np.log(1-yModel))\n",
|
|
" return loss"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 172,
|
|
"id": "1938a4c7",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"array([[0.77132064],\n",
|
|
" [0.02075195]])"
|
|
]
|
|
},
|
|
"execution_count": 172,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"# Gradient descent\n",
|
|
"lr = 0.1\n",
|
|
"epochs = 5000\n",
|
|
"m = X.shape[0]\n",
|
|
"np.random.seed(10)\n",
|
|
"theta = np.random.rand(2,1)\n",
|
|
"theta"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 173,
|
|
"id": "90aabefe",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Epoch 0, Loss: 0.909705\n",
|
|
"Epoch 100, Loss: 0.262854\n",
|
|
"Epoch 200, Loss: 0.194549\n",
|
|
"Epoch 300, Loss: 0.154778\n",
|
|
"Epoch 400, Loss: 0.128995\n",
|
|
"Epoch 500, Loss: 0.110967\n",
|
|
"Epoch 600, Loss: 0.097650\n",
|
|
"Epoch 700, Loss: 0.087403\n",
|
|
"Epoch 800, Loss: 0.079264\n",
|
|
"Epoch 900, Loss: 0.072636\n",
|
|
"Epoch 1000, Loss: 0.067129\n",
|
|
"Epoch 1100, Loss: 0.062475\n",
|
|
"Epoch 1200, Loss: 0.058488\n",
|
|
"Epoch 1300, Loss: 0.055030\n",
|
|
"Epoch 1400, Loss: 0.052002\n",
|
|
"Epoch 1500, Loss: 0.049325\n",
|
|
"Epoch 1600, Loss: 0.046941\n",
|
|
"Epoch 1700, Loss: 0.044803\n",
|
|
"Epoch 1800, Loss: 0.042874\n",
|
|
"Epoch 1900, Loss: 0.041124\n",
|
|
"Epoch 2000, Loss: 0.039528\n",
|
|
"Epoch 2100, Loss: 0.038066\n",
|
|
"Epoch 2200, Loss: 0.036723\n",
|
|
"Epoch 2300, Loss: 0.035482\n",
|
|
"Epoch 2400, Loss: 0.034334\n",
|
|
"Epoch 2500, Loss: 0.033267\n",
|
|
"Epoch 2600, Loss: 0.032273\n",
|
|
"Epoch 2700, Loss: 0.031345\n",
|
|
"Epoch 2800, Loss: 0.030475\n",
|
|
"Epoch 2900, Loss: 0.029660\n",
|
|
"Epoch 3000, Loss: 0.028892\n",
|
|
"Epoch 3100, Loss: 0.028169\n",
|
|
"Epoch 3200, Loss: 0.027486\n",
|
|
"Epoch 3300, Loss: 0.026840\n",
|
|
"Epoch 3400, Loss: 0.026227\n",
|
|
"Epoch 3500, Loss: 0.025647\n",
|
|
"Epoch 3600, Loss: 0.025094\n",
|
|
"Epoch 3700, Loss: 0.024569\n",
|
|
"Epoch 3800, Loss: 0.024068\n",
|
|
"Epoch 3900, Loss: 0.023591\n",
|
|
"Epoch 4000, Loss: 0.023134\n",
|
|
"Epoch 4100, Loss: 0.022698\n",
|
|
"Epoch 4200, Loss: 0.022280\n",
|
|
"Epoch 4300, Loss: 0.021879\n",
|
|
"Epoch 4400, Loss: 0.021495\n",
|
|
"Epoch 4500, Loss: 0.021126\n",
|
|
"Epoch 4600, Loss: 0.020771\n",
|
|
"Epoch 4700, Loss: 0.020430\n",
|
|
"Epoch 4800, Loss: 0.020102\n",
|
|
"Epoch 4900, Loss: 0.019785\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"array([[ 5.73789762],\n",
|
|
" [-7.93887721]])"
|
|
]
|
|
},
|
|
"execution_count": 173,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"xNew = np.linspace(-1,3, m)\n",
|
|
"Xnew = np.c_[np.ones_like(xNew), xNew]\n",
|
|
"losses = []\n",
|
|
"\n",
|
|
"for i in range(epochs):\n",
|
|
" z = X@theta\n",
|
|
" h = sigmoid(z)\n",
|
|
" grad = (X.T@(h-y))/m\n",
|
|
" theta = theta - lr*grad\n",
|
|
" lossValue = logLoss(y, h)\n",
|
|
" losses.append(lossValue)\n",
|
|
" if(i%100==0):\n",
|
|
" print(f\"Epoch {i:4d}, Loss: {lossValue:.6f}\")\n",
|
|
"theta"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 174,
|
|
"id": "2ac3bc1a",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[<matplotlib.lines.Line2D at 0x11cfb3750>]"
|
|
]
|
|
},
|
|
"execution_count": 174,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "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AACAeYQRAABgFGEEAAAYRRgBAABGWR1GVqxYIfn5+ZKamiqFhYWyefNm00WKWf/4xz9kxowZehY9NQvuU089FfG66ge9ePFiGTBggKSlpcn06dNl165dEeccO3ZMrrvuOj2pTq9eveSGG26Q6urqiHPee+89ueiii/R/EzUj4P333y82Wbp0qZx77rl6tuH+/fvL1VdfLTt37ow4p76+Xm6++Wbp27ev9OzZU77+9a9LaWlpxDkHDhyQK6+8UtLT0/X73H777dLc3BxxzoYNG+Scc87RPehHjBghq1evFls8/PDDMmHChNAkT9OmTZPnn38+9Dr3uGvcd999+vfH9773vdAx7nXn+PGPf6zvbfgyZsyY+LnPjqXWrFnjJCcnO6tWrXI++OADZ+7cuU6vXr2c0tJS00WLSc8995xz1113OX/5y1/U6CvnySefjHj9vvvuc7KyspynnnrKeffdd52rrrrKGTZsmFNXVxc65ytf+YpTUFDgvPHGG86rr77qjBgxwrn22mtDr1dUVDg5OTnOdddd52zfvt354x//6KSlpTm//vWvHVsUFRU5v/3tb/XPv23bNueKK65whgwZ4lRXV4fOmTdvnpOXl+esX7/eefvtt53zzjvPOf/880OvNzc3O+PGjXOmT5/uvPPOO/q/XXZ2trNw4cLQOXv27HHS09Od+fPnOx9++KHz3//9347X63XWrVvn2ODpp592nn32Wefjjz92du7c6dx5551OUlKSvu8K97jzbd682cnPz3cmTJjg3HrrraHj3OvOsWTJEucLX/iCc/jw4dBy5MiRuLnP1oaRqVOnOjfffHNo3+fzOQMHDnSWLl1qtFzx4OQw4vf7ndzcXOe//uu/QsdOnDjhpKSk6EChqC+uuu6tt94KnfP88887CQkJzsGDB/X+Qw895PTu3dtpaGgInXPHHXc4o0ePdmxVVlam79srr7wSuq/qj+YTTzwROmfHjh36nE2bNul99UvE4/E4JSUloXMefvhhJzMzM3Rvf/jDH+pfXOFmzpypw5Ct1HfvN7/5Dfe4C1RVVTkjR450XnzxReeSSy4JhRHudeeGkYKCglZfi4f7bGUzTWNjo2zZskU3JYQ//0btb9q0yWjZ4tHevXulpKQk4n6qZxGopi/3fqq1apqZMmVK6Bx1vrrvb775Zuiciy++WJKTk0PnFBUV6WaK48ePi40qKir0uk+fPnqtvrdNTU0R91pVxQ4ZMiTiXo8fP15ycnIi7qN6GNYHH3wQOif8PdxzbPz++3w+WbNmjdTU1OjmGu5x51PNA6r6/+T7wb3uXLt27dJN6cOHD9dN4qrZJV7us5VhpLy8XP8CCr/pitpXf1TRMe49O939VGvVBhkuMTFR/5ENP6e19wj/DJuop1WrtvULLrhAxo0bF7oPKqypYHe6e32m+9jWOeoXT11dndjg/fff123nqu173rx58uSTT8rYsWO5x51MBb2tW7fq/lAn4153nsLCQt1/Y926dbpPlPpHoup/p56YGw/3OS6e2gvYSP1rcvv27fLaa6+ZLkq3NHr0aNm2bZuuffrzn/8ss2fPlldeecV0sboV9Uj6W2+9VV588UXdKR1d5/LLLw9tq87ZKpwMHTpU/vSnP+lBBbHOypqR7Oxs8Xq9p/QkVvu5ubnGyhWv3Ht2uvup1mVlZRGvq17aaoRN+DmtvUf4Z9jiO9/5jjzzzDPy8ssvy+DBg0PH1X1QzYwnTpw47b0+031s6xw1siQefnF1BvUvRTUaYPLkyfpf7QUFBfLLX/6Se9yJVPOA+v+9Gn2hakLVogLfr371K72t/lXNve4aqhZk1KhRsnv37rj4TlsZRtQvIfULaP369RFV4mpftRmjY4YNG6a/pOH3U1Xbqb4g7v1Ua/V/BPXLyfXSSy/p+64SvHuOGkKs2jZd6l9U6l+wvXv3Fhuo/sEqiKgmA3V/1L0Np763SUlJEfda9alRbcPh91o1QYSHP3Uf1S8M1QzhnhP+Hu45Nn//1XexoaGBe9yJLr30Un2fVA2Uu6h+Y6o/g7vNve4aatqETz75RE+3EBffacfiob1qtMfq1av1SI8bb7xRD+0N70mMyN7wariXWtTXZtmyZXp7//79oaG96v799a9/dd577z3nq1/9aqtDeydNmuS8+eabzmuvvaZ714cP7VU9vtXQ3uuvv14PsVT/jdQwMpuG9t500016iPSGDRsihujV1tZGDNFTw31feuklPURv2rRpejl5iN5ll12mhwerYXf9+vVrdYje7bffrnvVr1ixwqqhkAsWLNAjlPbu3au/r2pfjex64YUX9Ovc464TPppG4V53ju9///v694b6Tr/++ut6iK4amqtG5MXDfbY2jChqjLT6j6PmG1FDfdX8F2jdyy+/rEPIycvs2bNDw3sXLVqkw4QKeZdeeqmevyHc0aNHdfjo2bOnHi42Z84cHXLCqTlKLrzwQv0egwYN0iHHJq3dY7WouUdcKuD953/+px6Kqn4xXHPNNTqwhNu3b59z+eWX63la1C8k9YuqqanplP+mEydO1N//4cOHR3xGd/etb33LGTp0qP7Z1S9c9X11g4jCPY5eGOFedw41xHbAgAH651e/O9X+7t274+Y+J6j/+fz1KwAAAJ+NlX1GAABA7CCMAAAAowgjAADAKMIIAAAwijACAACMIowAAACjCCMAAMAowggAADCKMAIAAIwijAAAAKMIIwAAwCjCCAAAEJP+P/+k3j6bciPvAAAAAElFTkSuQmCC",
|
|
"text/plain": [
|
|
"<Figure size 640x480 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"plt.plot(losses)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 175,
|
|
"id": "2ae78ab9",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"0.019479899336526857\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"xNew = np.linspace(-0.5,3, m)\n",
|
|
"Xnew = np.c_[np.ones_like(xNew), xNew]\n",
|
|
"yMod = sigmoid(Xnew@theta)\n",
|
|
"yJitter = y+np.random.uniform(-0.1, 0.1, size=y.shape)\n",
|
|
"logloss = logLoss(y, sigmoid(X@theta))\n",
|
|
"print(logloss)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 169,
|
|
"id": "3820d814",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "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jjvsLoGISNQJqGXkwQcfxOjRo5GcnIw5c+ZgxYoVhz3/3nvvxaRJk5CSkoKRI0fi+uuvR4vmcxAREZFAgpFnnnkGixYtwq233orVq1dj+vTpmD9/PsrLy32e/9e//hWLFy8252/YsAF/+MMfzHPcdNNNwSi/SPCVlgK/+hVw//12l0REJCrEOBwOhz8PYEvIcccdhwceeMBsd3V1mdaOH/7whybo8PaDH/zABCFvvvmma9+Pf/xjfPzxx3jvvff69Zp1dXXIyspCbW0tMjMz/SmuiP9efBH42teA4mJg924gLs7uEomIhKX+1t9+tYy0tbVh1apVmDdvXvcTxMaa7Q8//NDnY0444QTzGKsrZ/v27XjllVdw1lln9fo6ra2t5gLcbyJDhn+bZ54J3Hor0Nlpd2lERCKeXwmslZWV6OzsREFBgcd+bm/cuNHnYy688ELzuC984QtgI0xHRwe+//3vH7abZunSpbjtttv8KZpI8CQmAq+8YncpRESixqAP7X3nnXdwxx134He/+53JMfnb3/6Gl19+Gbfffnuvj1myZIlp0rFue/bsGexiioiISDi0jOTm5iIuLg5lZWUe+7ldWFjo8zE333wzLrnkElxxxRVme9q0aWhsbMRVV12Fn/70p6abx1tSUpK5idiqrQ149VUgJ8e5mJ6IiNjfMpKYmIhZs2Z5JKMygZXbc+fO9fmYpqamHgEHAxryM3dWZGhxRM255wJ33213SUREIprf3TQc1vvoo4/iiSeeMKNkrr76atPScfnll5vjl156qelmsSxYsAAPPfQQnn76aezYsQOvv/66aS3hfisoEQlJX/0qUFICTJ5sd0lERCKa3zOwXnDBBaioqMAtt9yC0tJSzJgxA8uXL3clte7evdujJeRnP/sZYmJizP2+ffuQl5dnApFf/OIXwb0SkWA76ihg1y4OGbO7JCIiEc3veUbsoHlGREREws+gzDMiErU2b2YClN2lEBGJSApGRPryla8AkyZp7hERkUGiYESkLwxE4uOBrVvtLomISERSzohIX7gIZEKCc74REREJev3t92gakaiTn293CUREIpq6aUT8EfoNiSIiYUfBiEh/cAmEb34TmDiR0w7bXRoRkYiiYESkP5gv8vrrziTWlSvtLo2ISERRzohIfyQmAr//PTBuHDBzpt2lERGJKApGRPrrggvsLoGI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",
|
|
"text/plain": [
|
|
"<Figure size 640x480 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"plt.plot(pw, yJitter, 'og', alpha=0.3)\n",
|
|
"plt.plot(xNew, yMod, ':r')\n",
|
|
"plt.show()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 176,
|
|
"id": "75e177bf",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Train accuracy: 1.000\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"p_train = sigmoid(X @ theta)\n",
|
|
"y_hat = (p_train >= 0.5).astype(int) # 0.5 is default; tune if needed\n",
|
|
"acc = (y_hat == y).mean()\n",
|
|
"print(f\"Train accuracy: {acc:.3f}\")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "2767cfe0",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": ".venv (3.13.5)",
|
|
"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.13.5"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 5
|
|
}
|