machinelearning

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

commit 2db11f21757ae1d50f8bbbb16a1fc48de979d51d
parent c071d748f54d5b6b36de8c898ed83fe0321a1f31
Author: Andrew <andrewlaack1@gmail.com>
Date:   Mon, 28 Oct 2024 13:56:04 -0500

Createde decision tree graphic

Diffstat:
MdecisionTreeClassifierFromScratch/DecisionTreeClassifier.ipynb | 118++++++++++++++++++++++++++++++++++++-------------------------------------------
1 file changed, 53 insertions(+), 65 deletions(-)

diff --git a/decisionTreeClassifierFromScratch/DecisionTreeClassifier.ipynb b/decisionTreeClassifierFromScratch/DecisionTreeClassifier.ipynb @@ -4,71 +4,55 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "STREAM GOALS:\n", + "10.28 Stream:\n", "\n", - "1. Generated synthetic dataset\n", - "2. Write code to generate tree (gini impurity)\n", + "1. Create some data\n", + "2. Create method calculate gini impurity\n", + "3. Create node class\n", + "4. Create recursive splitting method\n", "\n", - "POSSIBLY:\n", + "LATER:\n", "\n", - "3. Start adding print functionality with dataviz\n", - "4. Set up inference (unlikely)" + "5. Print Tree\n", + "6. Create prediction method" ] }, { - "cell_type": "code", - "execution_count": 71, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "X_1 = np.linspace(1,10,100)\n", - "y_1 = []\n", - "for i in X_1:\n", - " y_1.append(np.random.randint(0,10))\n", - "\n", - "X_2 = np.linspace(20,30,100)\n", - "y_2 = []\n", - "for i in X_2:\n", - " y_2.append(np.random.randint(20,30))" - ] - }, - { - "cell_type": "code", - "execution_count": 72, + "cell_type": "markdown", "metadata": {}, - "outputs": [], "source": [ - "X_1 = np.column_stack((X_1, y_1))\n", - "X_2 = np.column_stack((X_2, y_2))\n", - "\n", - "\n", - "y = [0] * len(y_1)\n", + "Data:\n", "\n", - "for i in range(0,len(y_2)):\n", - " y.append(1)\n", - "\n", - "X = np.vstack((X_1, X_2))" + "| x | y | label |\n", + "| - | - | - |\n", + "| 1 | 10 | 0 |\n", + "| 2 | 10 | 0 |\n", + "| 3 | 10 | 0 |\n", + "| 1 | 15 | 1 |\n", + "| 2 | 20 | 1 |\n", + "| 3 | 15 | 1 |\n", + "| 3.2 | 20 | 1 |\n", + "| 3.5 | 20 | 1 |" ] }, { "cell_type": "code", - "execution_count": 73, + "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "<matplotlib.collections.PathCollection at 0x7fdfd31da2d0>" + "<matplotlib.collections.PathCollection at 0x7fe6090860d0>" ] }, - "execution_count": 73, + "execution_count": 26, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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VVMX9ludu+FUCCGEEAe3enXmQwghhBD1nyQfQgghhEgoST6EEEIIkVCSfAghhBAioST5EEIIIURC1avk4/nnn+ewww4jKSmJPn368OOPP9Z2SHXagw8+iFIq4NW1a9faDqvOmTdvHiNGjKBFixYopZg2bVrAeq01999/P82bNyc5OZlBgwaxevXq2gm2joi0z8aNG1fpuzds2LDaCbYOmThxIsceeyzp6ek0adKEUaNGsWrVqoA2JSUlXH/99TRs2JC0tDTOPvtsduzYUUsR175o9ln//v0rfd+uvfbaWoq4bnjxxRfp2bNneRXTvn378tVXX5Wvr+3vWb1JPt577z1uvfVWHnjgAX755Rd69erF0KFD2blzZ22HVqd1796dbdu2lb++//772g6pziksLKRXr148//zzQdc//vjjPPPMM7z00kssWrSI1NRUhg4dSklJSYIjrTsi7TOAYcOGBXz33n333QRGWDfNnTuX66+/noULFzJjxgw8Hg9DhgyhsLCwvM0tt9zCZ599xgcffMDcuXPZunUro0ePrsWoa1c0+wzgqquuCvi+Pf7447UUcd3QqlUrHn30URYvXszPP//MqaeeysiRI/n999+BOvA90/XEcccdp6+//vryn30+n27RooWeOHFiLUZVtz3wwAO6V69etR1GvQLoqVOnlv9smqZu1qyZfuKJJ8qX5eTkaJfLpd99991aiLDuOXCfaa312LFj9ciRI2slnvpk586dGtBz587VWlvfLYfDoT/44IPyNn/88YcG9IIFC2orzDrlwH2mtdannHKKvummm2ovqHqiQYMG+pVXXqkT37N6ceajtLSUxYsXM2jQoPJlhmEwaNAgFixYUIuR1X2rV6+mRYsWtG/fnosuuoiNGzfWdkj1yrp169i+fXvAdy8zM5M+ffrIdy+COXPm0KRJE7p06cL48ePZs2dPbYdU5+Tm5gKQnZ0NwOLFi/F4PAHft65du9KmTRv5vvkduM/KvPPOOzRq1IgePXowYcIEioqKaiO8Osnn8zFlyhQKCwvp27dvnfie1blZbYPZvXs3Pp+Ppk2bBixv2rQpK1eurKWo6r4+ffowadIkunTpwrZt23jooYc4+eSTWb58Oenp6bUdXr2wfft2gKDfvbJ1orJhw4YxevRo2rVrx9q1a7nnnnsYPnw4CxYswGaz1XZ4dYJpmtx8882ceOKJ9OjRA7C+b06nk6ysrIC28n2zBNtnABdeeCFt27alRYsWLFu2jLvuuotVq1bx8ccf12K0te+3336jb9++lJSUkJaWxtSpU+nWrRtLly6t9e9ZvUg+RNUMHz68/N89e/akT58+tG3blvfff58rrriiFiMTB7sxY8aU//uII46gZ8+edOjQgTlz5jBw4MBajKzuuP7661m+fLnchxWDUPvs6quvLv/3EUccQfPmzRk4cCBr166lQ4cOiQ6zzujSpQtLly4lNzeXDz/8kLFjxzJ37tzaDguoJzecNmrUCJvNVulO3B07dtCsWbNaiqr+ycrKonPnzqxZs6a2Q6k3yr5f8t2rnvbt29OoUSP57vndcMMNfP7558yePZtWrVqVL2/WrBmlpaXk5OQEtJfvW+h9FkyfPn0ADvnvm9PppGPHjvTu3ZuJEyfSq1cvnn766TrxPasXyYfT6aR3797MnDmzfJlpmsycOZO+ffvWYmT1S0FBAWvXrqV58+a1HUq90a5dO5o1axbw3cvLy2PRokXy3YvB5s2b2bNnzyH/3dNac8MNNzB16lRmzZpFu3btAtb37t0bh8MR8H1btWoVGzduPGS/b5H2WTBLly4FOOS/bwcyTRO32103vmcJua01DqZMmaJdLpeeNGmSXrFihb766qt1VlaW3r59e22HVmfddtttes6cOXrdunV6/vz5etCgQbpRo0Z6586dtR1anZKfn6+XLFmilyxZogH9n//8Ry9ZskRv2LBBa631o48+qrOysvQnn3yily1bpkeOHKnbtWuni4uLazny2hNun+Xn5+vbb79dL1iwQK9bt05/++23+uijj9adOnXSJSUltR16rRo/frzOzMzUc+bM0du2bSt/FRUVlbe59tprdZs2bfSsWbP0zz//rPv27av79u1bi1HXrkj7bM2aNfof//iH/vnnn/W6dev0J598otu3b6/79etXy5HXrrvvvlvPnTtXr1u3Ti9btkzffffdWimlv/nmG6117X/P6k3yobXWzz77rG7Tpo12Op36uOOO0wsXLqztkOq0888/Xzdv3lw7nU7dsmVLff755+s1a9bUdlh1zuzZszVQ6TV27FittfW47X333aebNm2qXS6XHjhwoF61alXtBl3Lwu2zoqIiPWTIEN24cWPtcDh027Zt9VVXXSV/KGgddJ8B+vXXXy9vU1xcrK+77jrdoEEDnZKSos866yy9bdu22gu6lkXaZxs3btT9+vXT2dnZ2uVy6Y4dO+o77rhD5+bm1m7gtezyyy/Xbdu21U6nUzdu3FgPHDiwPPHQuva/Z0prrRNzjkUIIYQQop7c8yGEEEKIg4ckH0IIIYRIKEk+hBBCCJFQknwIIYQQIqEk+RBCCCFEQknyIYQQQoiEkuRDCCGEEAklyYcQQgghEkqSDyGEEEIklCQfQgghhEgoST6EEEIIkVD/D+ov9g0D8OFsAAAAAElFTkSuQmCC", + "image/png": "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YIr4AAAApogPAABgivgAAACmiA8AAGCK+AAAAKaIDwAAYIr4AAAApogPAABgivgAAACmiA8AAGCK+AAAAKaIDwAAYIr4AAAApogPAABgivgAAACmiA8AAGCK+AAAAKaIDwAAYIr4AAAApogPAABgivgAAACmiA8AAGCK+AAAAKaIDwAAYIr4AAAApogPAABgivgAAACmiA8AAGCK+AAAAKaIDwAAYIr4AAAApogPAABgivgAAACmiA8AAGCK+AAAAKaIDwAAYIr4AAAApogPAABgivgAAACmiA8AAGCK+AAAAKaIDwAAYIr4AAAApogPAABgivgAAACmiA8AAGCK+AAAAKaIDwAAYIr4AAAApqKOj8rKSk2ePFlZWVnyeDwqLS1tsb6hoUGzZ89Wdna2evfureHDh+vhhx+O1bwAACDBRR0fjY2NGjlypIqLi1tdf/PNN+vll1/W0qVLtWnTJs2ZM0ezZ8/Wiy++eNTDAgCAxJcc7RUmTpyoiRMntrn+jTfeUGFhoQoKCiRJ119/vR555BG99dZbmjJlSqcHBQAAPUPM3/ORn5+vF198UZ988omccyorK9OHH36oSy+9tNXtQ6GQgsFgiwsAAOi5Yh4ff/jDHzR8+HBlZ2crNTVVl112mYqLizV27NhWty8qKpLf749ccnJyYj0SAADoRrokPtasWaMXX3xR1dXV+t3vfqdZs2bp1VdfbXX7efPmKRAIRC61tbWxHgkAAHQjUb/noz379+/XL3/5S5WUlGjSpEmSpDPPPFM1NTW65557NH78+MOu4/P55PP5YjkGAADoxmL6zEdTU5Oamprk9ba82aSkJIXD4VjeFQAASFBRP/PR0NCgLVu2RH7etm2bampq1L9/f+Xm5uqiiy7S3Llz1bt3bw0aNEgVFRV68sknde+998Z0cAAAkJg8zjkXzRXKy8s1bty4w5YXFhZqyZIlqq+v17x58/TKK6/os88+06BBg3T99dfrZz/7mTwezxFvPxgMyu/3KxAIKD09PZrRAABAnETz+B11fHQ14gMAgMQTzeM33+0CAABMER8AAMAU8QEAAEwRHwAAwBTxAQAATBEfAADAFPEBAABMER8AAMAU8QEAAEwRHwAAwBTxAQAATBEfAADAFPEBAABMER8AAMAU8QEAAEwRHwAAwBTxAQAATBEfAADAFPEBAABMER8AAMAU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UnT22Wdry5YtXTRdz5CamqpTTjlFknTuuedq7dq1euCBB/TII48cti3Hc+dFs5+/yupYPqZfdsnLy9PKlStbLFuxYkW7r40hNmpqajRw4MB4j9FtOec0e/ZslZSUaNWqVRo8ePARr8Px3Dmd2ddf1dzcrA0bNnBMRykcDisUCrW6juM5dtrbz19ldiybv8W1C+3du9etX7/erV+/3kly9957r1u/fr3bvn27c8652267zU2fPj2y/T//+U933HHHublz57pNmza54uJil5SU5F5++eV4/RMSQrT7+b777nOlpaXuH//4h9uwYYP76U9/6rxer3v11Vfj9U/o9n784x87v9/vysvL3c6dOyOXffv2RbaZPn26u+222yI/v/766y45Odndc889btOmTW7+/PkuJSXFbdiwIR7/hITRmX3961//2i1fvtxt3brVVVdXu6uvvtr16tXLvf/++/H4JySE2267zVVUVLht27a5d9991912223O4/G4V155xTnH8Rwr0e7neB3LPSo+Dn2k86uXwsJC55xzhYWF7qKLLjrsOmeddZZLTU11Q4YMcYsXLzafO9FEu58XLFjgvv71r7tevXq5/v37u4KCArdq1ar4DJ8gWtu/klocnxdddFFknx/y3HPPuVNPPdWlpqa6ESNGuJdeesl28ATUmX09Z84cl5ub61JTU11GRob79re/7datW2c/fAL5wQ9+4AYNGuRSU1PdiSee6C6++OLIA6JzHM+xEu1+jtex7HHOua59bgUAAODfjun3fAAAAHvEBwAAMEV8AAAAU8QHAAAwRXwAAABTxAcAADBFfAAAAFPEBwAAMEV8AAAAU8QHAAAwRXwAAABTxAcAADD1/wHMv4LAUmBRfAAAAABJRU5ErkJggg==", "text/plain": [ "<Figure size 640x480 with 1 Axes>" ] @@ -79,42 +63,46 @@ ], "source": [ "import matplotlib.pyplot as plt\n", - "plt.scatter(X[:,0], X[:,1], c=y)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Steps to create tree:\n", + "import numpy as np\n", + "\n", + "values = [\n", + " [1 , 10 , 0],\n", + " [2 , 10 , 0],\n", + " [3 , 10 , 0],\n", + " [1 , 15 , 1],\n", + " [2 , 20 , 1],\n", + " [3 , 15 , 1],\n", + " [3.2 , 20 , 1],\n", + " [3.5 , 20 , 1],\n", + "]\n", "\n", - "1. Start iterating over all elements\n", - "2. Calculate gini impurity for each axis split\n", - "3. If gini impurity is best then mark split\n", - "4. Once all element have been traversed add split" + "values = np.array(values)\n", + "\n", + "plt.scatter(x = values[:,0], y = values[:,1], c= values[:,2], cmap=\"jet\")" ] }, { "cell_type": "code", - "execution_count": 74, + "execution_count": 27, "metadata": {}, "outputs": [ { - "ename": "SyntaxError", - "evalue": "invalid syntax (3290274413.py, line 4)", - "output_type": "error", - "traceback": [ - "\u001b[0;36m Cell \u001b[0;32mIn[74], line 4\u001b[0;36m\u001b[0m\n\u001b[0;31m calculate_gini(splits, axis):\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid syntax\n" - ] + "data": { + "image/png": "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", + "text/plain": [ + "<Figure size 640x480 with 1 Axes>" + ] + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ - "# splits = [] - axis component values\n", - "# axis = [] - in this case either 0 or 1\n", - "\n", - "calculate_gini(splits, axis):\n", - " for i in range(0,len(X)):\n", - " \n" + "plt.scatter(x = values[:,0], y = values[:,1], c= values[:,2], cmap=\"jet\")\n", + "plt.axhline(y=15, color='r')\n", + "plt.fill_between(x=np.linspace(0, 3.5, 100), y1=0, y2=15, color='lightblue', alpha=0.3)\n", + "plt.fill_between(x=np.linspace(0, 3.5, 100), y1=15, y2=20, color='red', alpha=0.1)\n", + "plt.show()" ] } ],