Merge branch 'main' of https://gitea.jany.se/Jany/MLPproject
This commit is contained in:
commit
5f57761a2a
4 files changed
+581
-11
No files matched your search
+365
@@ -0,0 +1,365 @@
|
|||||||
|
{
|
||||||
|
"cells": [
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"id": "8b66d061",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"### Creates a correlation matrix\n",
|
||||||
|
"We should probably remove or combine some features"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"id": "557ed2b5",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"data": {
|
||||||
|
"image/png": "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 truncated
|
||||||
|
"text/plain": [
|
||||||
|
"<Figure size 800x600 with 2 Axes>"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"metadata": {},
|
||||||
|
"output_type": "display_data"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"data": {
|
||||||
|
"text/html": [
|
||||||
|
"<div>\n",
|
||||||
|
"<style scoped>\n",
|
||||||
|
" .dataframe tbody tr th:only-of-type {\n",
|
||||||
|
" vertical-align: middle;\n",
|
||||||
|
" }\n",
|
||||||
|
"\n",
|
||||||
|
" .dataframe tbody tr th {\n",
|
||||||
|
" vertical-align: top;\n",
|
||||||
|
" }\n",
|
||||||
|
"\n",
|
||||||
|
" .dataframe thead th {\n",
|
||||||
|
" text-align: right;\n",
|
||||||
|
" }\n",
|
||||||
|
"</style>\n",
|
||||||
|
"<table border=\"1\" class=\"dataframe\">\n",
|
||||||
|
" <thead>\n",
|
||||||
|
" <tr style=\"text-align: right;\">\n",
|
||||||
|
" <th></th>\n",
|
||||||
|
" <th>age</th>\n",
|
||||||
|
" <th>workclass</th>\n",
|
||||||
|
" <th>education.num</th>\n",
|
||||||
|
" <th>marital.status</th>\n",
|
||||||
|
" <th>occupation</th>\n",
|
||||||
|
" <th>relationship</th>\n",
|
||||||
|
" <th>race</th>\n",
|
||||||
|
" <th>sex</th>\n",
|
||||||
|
" <th>capital.gain</th>\n",
|
||||||
|
" <th>capital.loss</th>\n",
|
||||||
|
" <th>hours.per.week</th>\n",
|
||||||
|
" <th>native.country</th>\n",
|
||||||
|
" <th>income</th>\n",
|
||||||
|
" </tr>\n",
|
||||||
|
" </thead>\n",
|
||||||
|
" <tbody>\n",
|
||||||
|
" <tr>\n",
|
||||||
|
" <th>1</th>\n",
|
||||||
|
" <td>82</td>\n",
|
||||||
|
" <td>2</td>\n",
|
||||||
|
" <td>9</td>\n",
|
||||||
|
" <td>6</td>\n",
|
||||||
|
" <td>3</td>\n",
|
||||||
|
" <td>1</td>\n",
|
||||||
|
" <td>4</td>\n",
|
||||||
|
" <td>0</td>\n",
|
||||||
|
" <td>0</td>\n",
|
||||||
|
" <td>4356</td>\n",
|
||||||
|
" <td>18</td>\n",
|
||||||
|
" <td>38</td>\n",
|
||||||
|
" <td>0</td>\n",
|
||||||
|
" </tr>\n",
|
||||||
|
" <tr>\n",
|
||||||
|
" <th>3</th>\n",
|
||||||
|
" <td>54</td>\n",
|
||||||
|
" <td>2</td>\n",
|
||||||
|
" <td>4</td>\n",
|
||||||
|
" <td>0</td>\n",
|
||||||
|
" <td>6</td>\n",
|
||||||
|
" <td>4</td>\n",
|
||||||
|
" <td>4</td>\n",
|
||||||
|
" <td>0</td>\n",
|
||||||
|
" <td>0</td>\n",
|
||||||
|
" <td>3900</td>\n",
|
||||||
|
" <td>40</td>\n",
|
||||||
|
" <td>38</td>\n",
|
||||||
|
" <td>0</td>\n",
|
||||||
|
" </tr>\n",
|
||||||
|
" <tr>\n",
|
||||||
|
" <th>4</th>\n",
|
||||||
|
" <td>41</td>\n",
|
||||||
|
" <td>2</td>\n",
|
||||||
|
" <td>10</td>\n",
|
||||||
|
" <td>5</td>\n",
|
||||||
|
" <td>9</td>\n",
|
||||||
|
" <td>3</td>\n",
|
||||||
|
" <td>4</td>\n",
|
||||||
|
" <td>0</td>\n",
|
||||||
|
" <td>0</td>\n",
|
||||||
|
" <td>3900</td>\n",
|
||||||
|
" <td>40</td>\n",
|
||||||
|
" <td>38</td>\n",
|
||||||
|
" <td>0</td>\n",
|
||||||
|
" </tr>\n",
|
||||||
|
" <tr>\n",
|
||||||
|
" <th>5</th>\n",
|
||||||
|
" <td>34</td>\n",
|
||||||
|
" <td>2</td>\n",
|
||||||
|
" <td>9</td>\n",
|
||||||
|
" <td>0</td>\n",
|
||||||
|
" <td>7</td>\n",
|
||||||
|
" <td>4</td>\n",
|
||||||
|
" <td>4</td>\n",
|
||||||
|
" <td>0</td>\n",
|
||||||
|
" <td>0</td>\n",
|
||||||
|
" <td>3770</td>\n",
|
||||||
|
" <td>45</td>\n",
|
||||||
|
" <td>38</td>\n",
|
||||||
|
" <td>0</td>\n",
|
||||||
|
" </tr>\n",
|
||||||
|
" <tr>\n",
|
||||||
|
" <th>6</th>\n",
|
||||||
|
" <td>38</td>\n",
|
||||||
|
" <td>2</td>\n",
|
||||||
|
" <td>6</td>\n",
|
||||||
|
" <td>5</td>\n",
|
||||||
|
" <td>0</td>\n",
|
||||||
|
" <td>4</td>\n",
|
||||||
|
" <td>4</td>\n",
|
||||||
|
" <td>1</td>\n",
|
||||||
|
" <td>0</td>\n",
|
||||||
|
" <td>3770</td>\n",
|
||||||
|
" <td>40</td>\n",
|
||||||
|
" <td>38</td>\n",
|
||||||
|
" <td>0</td>\n",
|
||||||
|
" </tr>\n",
|
||||||
|
" <tr>\n",
|
||||||
|
" <th>7</th>\n",
|
||||||
|
" <td>74</td>\n",
|
||||||
|
" <td>5</td>\n",
|
||||||
|
" <td>16</td>\n",
|
||||||
|
" <td>4</td>\n",
|
||||||
|
" <td>9</td>\n",
|
||||||
|
" <td>2</td>\n",
|
||||||
|
" <td>4</td>\n",
|
||||||
|
" <td>0</td>\n",
|
||||||
|
" <td>0</td>\n",
|
||||||
|
" <td>3683</td>\n",
|
||||||
|
" <td>20</td>\n",
|
||||||
|
" <td>38</td>\n",
|
||||||
|
" <td>1</td>\n",
|
||||||
|
" </tr>\n",
|
||||||
|
" <tr>\n",
|
||||||
|
" <th>8</th>\n",
|
||||||
|
" <td>68</td>\n",
|
||||||
|
" <td>0</td>\n",
|
||||||
|
" <td>9</td>\n",
|
||||||
|
" <td>0</td>\n",
|
||||||
|
" <td>9</td>\n",
|
||||||
|
" <td>1</td>\n",
|
||||||
|
" <td>4</td>\n",
|
||||||
|
" <td>0</td>\n",
|
||||||
|
" <td>0</td>\n",
|
||||||
|
" <td>3683</td>\n",
|
||||||
|
" <td>40</td>\n",
|
||||||
|
" <td>38</td>\n",
|
||||||
|
" <td>0</td>\n",
|
||||||
|
" </tr>\n",
|
||||||
|
" <tr>\n",
|
||||||
|
" <th>10</th>\n",
|
||||||
|
" <td>45</td>\n",
|
||||||
|
" <td>2</td>\n",
|
||||||
|
" <td>16</td>\n",
|
||||||
|
" <td>0</td>\n",
|
||||||
|
" <td>9</td>\n",
|
||||||
|
" <td>4</td>\n",
|
||||||
|
" <td>2</td>\n",
|
||||||
|
" <td>0</td>\n",
|
||||||
|
" <td>0</td>\n",
|
||||||
|
" <td>3004</td>\n",
|
||||||
|
" <td>35</td>\n",
|
||||||
|
" <td>38</td>\n",
|
||||||
|
" <td>1</td>\n",
|
||||||
|
" </tr>\n",
|
||||||
|
" <tr>\n",
|
||||||
|
" <th>11</th>\n",
|
||||||
|
" <td>38</td>\n",
|
||||||
|
" <td>4</td>\n",
|
||||||
|
" <td>15</td>\n",
|
||||||
|
" <td>4</td>\n",
|
||||||
|
" <td>9</td>\n",
|
||||||
|
" <td>1</td>\n",
|
||||||
|
" <td>4</td>\n",
|
||||||
|
" <td>1</td>\n",
|
||||||
|
" <td>0</td>\n",
|
||||||
|
" <td>2824</td>\n",
|
||||||
|
" <td>45</td>\n",
|
||||||
|
" <td>38</td>\n",
|
||||||
|
" <td>1</td>\n",
|
||||||
|
" </tr>\n",
|
||||||
|
" <tr>\n",
|
||||||
|
" <th>12</th>\n",
|
||||||
|
" <td>52</td>\n",
|
||||||
|
" <td>2</td>\n",
|
||||||
|
" <td>13</td>\n",
|
||||||
|
" <td>6</td>\n",
|
||||||
|
" <td>7</td>\n",
|
||||||
|
" <td>1</td>\n",
|
||||||
|
" <td>4</td>\n",
|
||||||
|
" <td>0</td>\n",
|
||||||
|
" <td>0</td>\n",
|
||||||
|
" <td>2824</td>\n",
|
||||||
|
" <td>20</td>\n",
|
||||||
|
" <td>38</td>\n",
|
||||||
|
" <td>1</td>\n",
|
||||||
|
" </tr>\n",
|
||||||
|
" </tbody>\n",
|
||||||
|
"</table>\n",
|
||||||
|
"</div>"
|
||||||
|
],
|
||||||
|
"text/plain": [
|
||||||
|
" age workclass education.num marital.status occupation relationship \\\n",
|
||||||
|
"1 82 2 9 6 3 1 \n",
|
||||||
|
"3 54 2 4 0 6 4 \n",
|
||||||
|
"4 41 2 10 5 9 3 \n",
|
||||||
|
"5 34 2 9 0 7 4 \n",
|
||||||
|
"6 38 2 6 5 0 4 \n",
|
||||||
|
"7 74 5 16 4 9 2 \n",
|
||||||
|
"8 68 0 9 0 9 1 \n",
|
||||||
|
"10 45 2 16 0 9 4 \n",
|
||||||
|
"11 38 4 15 4 9 1 \n",
|
||||||
|
"12 52 2 13 6 7 1 \n",
|
||||||
|
"\n",
|
||||||
|
" race sex capital.gain capital.loss hours.per.week native.country \\\n",
|
||||||
|
"1 4 0 0 4356 18 38 \n",
|
||||||
|
"3 4 0 0 3900 40 38 \n",
|
||||||
|
"4 4 0 0 3900 40 38 \n",
|
||||||
|
"5 4 0 0 3770 45 38 \n",
|
||||||
|
"6 4 1 0 3770 40 38 \n",
|
||||||
|
"7 4 0 0 3683 20 38 \n",
|
||||||
|
"8 4 0 0 3683 40 38 \n",
|
||||||
|
"10 2 0 0 3004 35 38 \n",
|
||||||
|
"11 4 1 0 2824 45 38 \n",
|
||||||
|
"12 4 0 0 2824 20 38 \n",
|
||||||
|
"\n",
|
||||||
|
" income \n",
|
||||||
|
"1 0 \n",
|
||||||
|
"3 0 \n",
|
||||||
|
"4 0 \n",
|
||||||
|
"5 0 \n",
|
||||||
|
"6 0 \n",
|
||||||
|
"7 1 \n",
|
||||||
|
"8 0 \n",
|
||||||
|
"10 1 \n",
|
||||||
|
"11 1 \n",
|
||||||
|
"12 1 "
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"execution_count": 3,
|
||||||
|
"metadata": {},
|
||||||
|
"output_type": "execute_result"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"source": [
|
||||||
|
"import pandas as pd\n",
|
||||||
|
"import numpy as np\n",
|
||||||
|
"import matplotlib.pyplot as plt\n",
|
||||||
|
"from sklearn.preprocessing import LabelEncoder\n",
|
||||||
|
"import seaborn as sns\n",
|
||||||
|
"\n",
|
||||||
|
"\n",
|
||||||
|
"df = pd.read_csv('./Datasets/adult.csv', comment = '#')\n",
|
||||||
|
"\n",
|
||||||
|
"\n",
|
||||||
|
"# First, create a copy of the dataframe to avoid modifying the original\n",
|
||||||
|
"df_encoded = df.copy()\n",
|
||||||
|
"df_encoded.drop(['fnlwgt', 'education'], axis=1, inplace=True)\n",
|
||||||
|
"\n",
|
||||||
|
"\n",
|
||||||
|
"# drop all rows that contain '?'\n",
|
||||||
|
"for column in df_encoded.columns:\n",
|
||||||
|
" df_encoded = df_encoded[df_encoded[column] != '?']\n",
|
||||||
|
"\n",
|
||||||
|
"# Apply label encoding to categorical columns\n",
|
||||||
|
"label_encoder = LabelEncoder()\n",
|
||||||
|
"categorical_columns = ['workclass', 'marital.status', 'occupation', \n",
|
||||||
|
" 'relationship', 'race', 'sex', 'native.country', 'income']\n",
|
||||||
|
"\n",
|
||||||
|
"for column in categorical_columns:\n",
|
||||||
|
" df_encoded[column] = label_encoder.fit_transform(df_encoded[column])\n",
|
||||||
|
"\n",
|
||||||
|
"\n",
|
||||||
|
"matrix = df_encoded.corr()\n",
|
||||||
|
"\n",
|
||||||
|
"plt.figure(figsize=(8,6))\n",
|
||||||
|
"sns.heatmap(matrix, annot=True, cmap=\"coolwarm\", fmt=\".2f\", linewidths=0.5)\n",
|
||||||
|
"plt.title(\"Correlation Heatmap\")\n",
|
||||||
|
"plt.show()\n",
|
||||||
|
"\n",
|
||||||
|
"#df_encoded.head(10)\n",
|
||||||
|
"\n"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"id": "e55b361b",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"### Creates a pairplot\n",
|
||||||
|
"This demonstrates that we need a model that is appropriate for discrete data (Decision Tree, Random Forest, Naive Bayes)"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 30,
|
||||||
|
"id": "8e3bd968",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"data": {
|
||||||
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAADHcAAAx3CAYAAAD0gyc5AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjcsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvTLEjVAAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzsvXmcFNW5///prXqdnhm6AUEZHe1RtkEHUYkzELfcYIQ4E0xu0FyR0XgTt3jzS0RZXBhAMDcbqPnGBIxJFO+9IRAh0SSKRsC4RCYBhkVGUFAQmGGme3qt3n5/DN10d1VXdfVUdfXyvF8vXy/pqqlz6tR5lvOc5dHE4/E4CIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCFXQql0BgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiCISoY2dxAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQagIbe4gCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIJQEdrcQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEoSK0uYMgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCEJFaHMHQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRCEitDmDoIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCBWhzR0EQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAqQps7Ckg8HofH40E8Hle7KgRBSIBklyBKF5JfgihNSHYJonQh+SWI0oRklyBKE5JdgihdSH4JojQh2SWI0oXklyBKE5JdgihdSH4JojQh2SWI4oA2dxSQgYEBVFdXY2BgQO2qEAQhAZJdgihdSH4JojQh2SWI0oXklyBKE5JdgihNSHYJonQh+SWI0oRklyBKF5JfgihNSHYJonQh+SWI0oRklyCKA9rcQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEoSK0uYMgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCEJFaHMHQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRCEitDmDoIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCBWhzR0EQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAqole7AgRBEJWG28+ix8vCEwzDbjbAaWVQbWEULfPTPj88wQg8gTCqzQZUmfQ4u9aiaJmf9PkxkFKmzaTHOQqXqRZH+wNwB8LJd7WbDRhdY1a7WkSZc9wTRJ+PhScYgd2sR62FwUi7ifdeqXpHyv1S6pEPUnSJknpHahtKrYsUPa2GHSlHyrkdy9kGF/LdCt1HlNan5UghfFypfp7UPqqkjS7UO0hF6TYClJencrYhhUJtW6V2+Wqi5rurPXYmW1ueqBHzyhe1ZaDcqGRdLjfUlsRQoP6TG3ztVGXU48RACP2BMKyMDlajHjVmQ3JswTfuCEViOOU7/ZvJAKNBC8SBYXmOScg/IojcIF1XeCj2QhQbmX3SZtTDF4rAHTjTRwGI9luxvu32s+j3h+FjI/CxUdSYDRhRZeTt/7nIScLWe0MROKwMwtE4fGwk7f5cdFwuZeUy5s1VtpXSAeWgW8rhHYqZXNqXvkFhyae9C/mNyE9UBmpXQk5KtT/R5g6CIIgCcrQ/gPnrd2LrgZ7kb9MbnFgxe5Jik7kf9/qwYMMubO/uTf7W4nJgWVsjznVYy6ZMtaikdyWKh8O9PjzE0++WtzWiLqPfSdU7Uu6XUo98kCJfSsqi1DaUWhcp96thR8qRcm7HcrZLhXy3QvcRpfVpOVKI/qCkPgeUtdGFegepKN1GgPLyVM42pFCobavULl9N1Hx3tdudbG15ona/kkIp1bUUoPaUD2pLYihQ/8mNbO20tLURH37Wh2+t2wUAaHY5cO81DTh32OACgwcyxh3TGpy466oLcPtz/4CfjSafs3jmBCzcsAsLbhgvaUxC/hFB5AbpusJDsRei2ODrky0uB25rrsd96zrhZ6OY1uDE3Ve70P6r95J2OrPfivXtY/0BfHzKj9VbDqTpnGkNTqzM6P+5yEnC1nce7seqOU348asfpD331ql1uH3a+aI6LpeyctGVucq2UjqgHHRLObxDMZNL+9I3KCz5tHchvxH5icpA7UrISSn3J63aFSAIgqgU3H6W40ACwJsHevDg+p1w+1nZy/y0z88xUACwrbsXCzfswqd9ftnL/ESkzE8UKFMtjvYHBN/1aH9ApZoR5cxxT5Az6QYM9rsFG3bhuCeY/E2q3pFyv5R65IMUXaKk3pHahlLrIkVPq2FHypFybsdytsGFfLdC9xGl9Wk5UggfV6qfJ7WPKmmjC/UOUlG6jQDl5amcbUihUNtWqV2+mqj57mqPncnWlidqxLzyRW0ZKDcqWZfLDbUlMRSo/+SGUDst2rgLE85xJH/b3t2L1VsO4I0PTuKND05yxh1bD/Tgyde70d5Sn/acjs1daJt8jqQxCflHBJEbpOsKD8VeiGIjW5/c1t2LZ7cfStrlrQd6sHrLgTQ7ndpvxfr2cU8Qb3xwkrOxI/Hs1P6fi5yk2vr2lno8u/0Q57ntLfWiOi6XsnIZ8+Yq20rpgHLQLeXwDsVMLu1L36Cw5NPehfxG5CcqA7UrISel3p9ocwdBEESB6PGyHAcywZsHetDjld/R9wQjHAOVYFt3LzzBiOxlDoiUOaBAmWrhDoQF39UdCBe4RkQl0OdjBftdn++MLpGqd6TcL6Ue+SBFlyipd6S2odS6SNHTatiRcqSc27GcbXAh363QfURpfVqOFMLHlernSe2jStroQr2DVJRuI0B5eSpnG1Io1LZVapevJmq+u9pjZ7K15YkaMa98UVsGyo1K1uVyQ21JDAXqP7kh1k7e0yd7J9je3YsRVUaMqDLy/s327l40janhPGeE3ShpTEL+EUHkBum6wkOxF6LYEOqTmXaZz04n+q1Y3+7zsRhRZcyqc1L7fy5ykmrrm8bU8D43EI6J6rhcysplzJurbCulA8pBt5TDOxQzubQvfYPCkk97F/IbkZ+oDNSuhJyUen/Sq10BojL4zB3Ezk/6EQhHcdFZVbhoZBU0Go3a1SKIguIJCk/UDohcz6tMkcnhcilTLSrpXYniQWyBSup1qXpHyv1S6pEPUuRLSVmU3IYS6yLpPVWwI+VIObdjOdulQr5bofuI0vq0HClEf1BSnwPK2ui866RwuyrdRoN/o7B/UsY2pFCobavULl9N1Hx3tdudbG15ona/kkIp1bUUoPaUD2pLYihQ/8kN0XbiuR6KxAT/hu+6Nzi4SSTXdif/iCByg3Rd4aHYC1FsiPXJTLvMZ6cHgmHERcuJiPoAif6fi5yw0TMlZntuLjrOoBM+M3ogGM6p3rk8B1BOB5SDbimHdyhmcmlfMTmmbyAv+c0RFXA+mfxERaB2JeSk1PsTbe4gFCMai+OV3Z/hV28dwnsf9aVdu+y8WqycPQnnD7epVDuCKDx2k0HwepXI9bzKNFdGmWpRSe9KFA92k7D7lnpdqt6Rcr+UeuSDFPlSUhYlt6HEukh6TxXsSDlSzu1YznapkO9W6D6itD4tRwrRH5TU54CyNjrvOincrkq30eDfKOyflLENKRRq2yq1y1cTNd9d7XYnW1ueqN2vpFBKdS0FqD3lg9qSGArUf3JDtJ14rhv1wosf+a7bTLrB5+XY7uQfEURukK4rPBR7IYoNsT6ZaZf57HQu/dZu0osuMEw8Jxc5CUfPbLjI5lvkouMYkU0ZVSYDjFHhzR25PgdQTgeUg24ph3coZuRoX/oG8pLfHFEB55PJT1QEaldCTkq9Pwl7TwSRB9FYHBs7P8V1P/ob7n5hB/xsFHdddQGeunky1sydgv/v3y7Ep30B3PjkdvzrSL/a1SWIguG0MZje4OS9Nr3BCaeNkb1Mu0mPFpeD91qLy6FIgL5KpMyqMpoUqDYbcO3Y4bjnGhfWzJ2Cp2+ZjLW3XYZ7rnHh2rHDUS3iJBBEPtRaGUEZq7We0SVS9Y6U+6XUIx+k6JIqk15QFoeid6S2oVQdKEVPO20MZjaehTVzp2DTvc1Y982p2HxvC9bMnYKZjWcpYkfKEaeNwRfGjeDtL18YN6Kk27GcbXAh363QPpvS+rQcKYSPW202CJaR6edJtUVK2uihvIOScib1+fm8s9LypMaYrtxQ21apXb6aqPnuUvWR3JCtLU/UiHnli9oyUG5Usi6XG2pLYihQ/8kNsXayMbq035pdDpwYCOHEQIj3b5pdDnRmzK22uBw44QlJGpOQf0QQuUG6rvBQ7IUoNoT6ZKZd5rPTiX4r1rdrrQxODITQnEXnpPb/XOQk1dZ3Hunnfa7ZoBXVcbmUlcuYN1fZVkoHlINuKYd3KGZyaV/6BoUln/Yu5DciP1EZqF0JOSn1/kSbOwjZiMfjeG3vcXzxJ2/i/v/5J4ZZGCxtnYhFN4zHtIbhGGZlYGH0mHLuMHS0TsSoGhPmPvsujpzyq111gigI1RYGK2ZP4jiS0xucWDl7Eqot8jv6Z9dasKytkWOoWlwOLGtrxNm1FtnLPEekzHMUKFMtRteY8fCsCeg83Ifbn/sH7np+B9p/9R7+ebgPD8+agNE1ZrWrSJQhI+0mLM8iY8vbGjHSbkr+JlXvSLlfSj3yQYouOafWIiiLQ9E7UttQqg6UoqerLQy+P2Ms1m4/hFmrt2POL97GzNXb8Oz2Q/j+jLGK2JFypNrCYPHM8bz9ZfHM8SXdjuVsgwv5boX22ZTWp+VIIXzc0TVmwTIy/TyptkhJGz2Ud1BSzqQ+P593Vlqe1BjTlRtLine truncated
|
||||||
|
"text/plain": [
|
||||||
|
"<Figure size 3250x3250 with 182 Axes>"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"metadata": {},
|
||||||
|
"output_type": "display_data"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"source": [
|
||||||
|
"sns.pairplot(df_encoded, diag_kind=\"kde\")\n",
|
||||||
|
"plt.show()"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metadata": {
|
||||||
|
"kernelspec": {
|
||||||
|
"display_name": ".venv",
|
||||||
|
"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.12.12"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nbformat": 4,
|
||||||
|
"nbformat_minor": 5
|
||||||
|
}
|
||||||
@@ -0,0 +1,159 @@
|
|||||||
|
{
|
||||||
|
"cells": [
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"id": "946e852d",
|
||||||
|
"metadata": {},
|
||||||
|
"source": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 20,
|
||||||
|
"id": "0952f099",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"data": {
|
||||||
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA7sAAAOwCAYAAAD/XWM1AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjcsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvTLEjVAAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3XmcjfX/xvHXmX03ZsXYxr7vRGQnKSmFJEUkWSOUJKENRcoWSZGdRGRnxr7v+76MbWYYZl/O8vtDpq9fKsvM3LNcz8ejx5cz97nPdeZr5pzr3PfnfZtsNpsNERERERERkWzEzugAIiIiIiIiImlNZVdERERERESyHZVdERERERERyXZUdkVERERERCTbUdkVERERERGRbEdlV0RERERERLIdlV0RERERERHJdlR2RUREREREJNtR2RUREREREZFsR2VXREREREREsh2VXREREREREcl2VHZFREREREQk21HZFRERERERkWxHZVdERERERESyHZVdERERERERyXZUdkVERERERCTbUdkVERERERGRbEdlV0RERERERLIdlV0RERERERHJdlR2RUREREREJNtR2RUREREREZFsR2VXREREREREsh2VXREREREREcl2VHZFREREREQk21HZFRERERERkWxHZVdERERERESyHZVdERERERERyXZUdkVERERERCTbUdkVERERERGRbEdlV0RERERERLIdlV0RERERERHJdlR2RUREREREJNtR2RUREREREZFsR2VXREREREREsh2VXREREREREcl2VHZFREREREQk21HZFRERERERkWxHZVdERERERESyHZVdERERERERyXZUdkVERERERCTbUdkVERERERGRbEdlV0RERERERLIdlV0RERERERHJdlR2RUREREREJNtR2RUREREREZFsR2VXREREREREsh2VXREREREREcl2VHZFREREREQk21HZFRERERERkWxHZVdERERERESyHZVdERERERERyXZUdkVERERERCTbUdkVERERERGRbEdlV0RERERERLIdlV0RERERERHJdlR2RUREREREJNtR2RUREREREZFsR2VXREREREREsh2VXREREREREcl2VHZFREREREQk21HZFRERERERkWzHwegAIiIiknESExO5fPkyVqvV6CgPzWQykS9fPtzc3IyOIiIiWYDK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 truncated
|
||||||
|
"text/plain": [
|
||||||
|
"<Figure size 1200x1200 with 1 Axes>"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"metadata": {},
|
||||||
|
"output_type": "display_data"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"data": {
|
||||||
|
"image/png": "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 truncated
|
||||||
|
"text/plain": [
|
||||||
|
"<Figure size 640x480 with 2 Axes>"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"metadata": {},
|
||||||
|
"output_type": "display_data"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "stdout",
|
||||||
|
"output_type": "stream",
|
||||||
|
"text": [
|
||||||
|
"Classification Report:\n",
|
||||||
|
" precision recall f1-score support\n",
|
||||||
|
"\n",
|
||||||
|
" Poor 0.87 0.87 0.87 4524\n",
|
||||||
|
" Rich 0.62 0.62 0.62 1509\n",
|
||||||
|
"\n",
|
||||||
|
" accuracy 0.81 6033\n",
|
||||||
|
" macro avg 0.74 0.75 0.74 6033\n",
|
||||||
|
"weighted avg 0.81 0.81 0.81 6033\n",
|
||||||
|
"\n"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"source": [
|
||||||
|
"import pandas as pd\n",
|
||||||
|
"import numpy as np\n",
|
||||||
|
"import matplotlib.pyplot as plt\n",
|
||||||
|
"from sklearn.model_selection import train_test_split\n",
|
||||||
|
"from sklearn.pipeline import Pipeline\n",
|
||||||
|
"from sklearn.tree import DecisionTreeClassifier, plot_tree\n",
|
||||||
|
"from sklearn.preprocessing import LabelEncoder\n",
|
||||||
|
"from sklearn.metrics import mean_squared_error, mean_absolute_error , r2_score\n",
|
||||||
|
"from sklearn.metrics import classification_report, confusion_matrix, ConfusionMatrixDisplay\n",
|
||||||
|
"\n",
|
||||||
|
"# Load dataset\n",
|
||||||
|
"df = pd.read_csv('./Datasets/adult.csv', comment = '#')\n",
|
||||||
|
"\n",
|
||||||
|
"# First, create a copy of the dataframe to avoid modifying the original\n",
|
||||||
|
"df_encoded = df.copy()\n",
|
||||||
|
"df_encoded.drop(['fnlwgt', 'education'], axis=1, inplace=True)\n",
|
||||||
|
"\n",
|
||||||
|
"# drop all rows that contain '?'\n",
|
||||||
|
"for column in df_encoded.columns:\n",
|
||||||
|
" df_encoded = df_encoded[df_encoded[column] != '?']\n",
|
||||||
|
"\n",
|
||||||
|
"# Apply label encoding to categorical columns\n",
|
||||||
|
"label_encoder = LabelEncoder()\n",
|
||||||
|
"categorical_columns = ['workclass', 'marital.status', 'occupation', \n",
|
||||||
|
" 'relationship', 'race', 'sex', 'native.country', 'income']\n",
|
||||||
|
"\n",
|
||||||
|
"for column in categorical_columns:\n",
|
||||||
|
" df_encoded[column] = label_encoder.fit_transform(df_encoded[column])\n",
|
||||||
|
"\n",
|
||||||
|
"# Now properly separate features and target\n",
|
||||||
|
"X = df_encoded.drop(columns=['income'])\n",
|
||||||
|
"y = df_encoded['income']\n",
|
||||||
|
"\n",
|
||||||
|
"# Split the data\n",
|
||||||
|
"X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)\n",
|
||||||
|
"X_train, X_val, y_train, y_val = train_test_split(X_train, y_train, test_size=0.25, random_state=42)\n",
|
||||||
|
"\n",
|
||||||
|
"\n",
|
||||||
|
"# Build pipeline\n",
|
||||||
|
"model = Pipeline([\n",
|
||||||
|
" ('full_dt_classifier', DecisionTreeClassifier(random_state=42)) # Train Decision Tree Regressor\n",
|
||||||
|
"])\n",
|
||||||
|
"\n",
|
||||||
|
"# Train the model\n",
|
||||||
|
"model.fit(X_train, y_train)\n",
|
||||||
|
"y_pred = model.predict(X_val)\n",
|
||||||
|
"\n",
|
||||||
|
"# Visualize the decision tree\n",
|
||||||
|
"plt.figure(figsize=(12, 12))\n",
|
||||||
|
"plot_tree(\n",
|
||||||
|
" model.named_steps['full_dt_classifier'],\n",
|
||||||
|
" feature_names=X.columns,\n",
|
||||||
|
" class_names=[\"Poor\", \"Rich\"],\n",
|
||||||
|
" filled=True,\n",
|
||||||
|
" rounded=True,\n",
|
||||||
|
" max_depth=5, # Keep tree shallow for readability\n",
|
||||||
|
" fontsize=3,\n",
|
||||||
|
" precision=2 # Limit decimals\n",
|
||||||
|
")\n",
|
||||||
|
"\n",
|
||||||
|
"plt.savefig('decision_tree.pdf', format='pdf', dpi=300)\n",
|
||||||
|
"plt.show()\n",
|
||||||
|
"\n",
|
||||||
|
"#mse = mean_squared_error(y_val, y_pred)\n",
|
||||||
|
"#print(f'Mean Squared Error: {mse}')\n",
|
||||||
|
"\n",
|
||||||
|
"CM = confusion_matrix(y_val, y_pred)\n",
|
||||||
|
"disp = ConfusionMatrixDisplay(confusion_matrix=CM, display_labels=[\"Poor\", \"Rich\"])\n",
|
||||||
|
"disp.plot(cmap=\"Blues\")\n",
|
||||||
|
"plt.title(\"Confusion Matrix\")\n",
|
||||||
|
"plt.show() \n",
|
||||||
|
"\n",
|
||||||
|
"print(\"Classification Report:\")\n",
|
||||||
|
"print(classification_report(y_val, y_pred, target_names=[\"Poor\", \"Rich\"]))"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"id": "e567e4e9",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metadata": {
|
||||||
|
"kernelspec": {
|
||||||
|
"display_name": ".venv",
|
||||||
|
"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.12.12"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nbformat": 4,
|
||||||
|
"nbformat_minor": 5
|
||||||
|
}
|
||||||
Binary file not shown.
+57
-11
@@ -2,11 +2,16 @@
|
|||||||
"cells": [
|
"cells": [
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
|
<<<<<<< HEAD
|
||||||
"execution_count": 10,
|
"execution_count": 10,
|
||||||
|
=======
|
||||||
|
"execution_count": 1,
|
||||||
|
>>>>>>> caaa71666df3f35a02848991df9e15db55aef57c
|
||||||
"id": "b6ea6c3b",
|
"id": "b6ea6c3b",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
|
<<<<<<< HEAD
|
||||||
"name": "stdout",
|
"name": "stdout",
|
||||||
"output_type": "stream",
|
"output_type": "stream",
|
||||||
"text": [
|
"text": [
|
||||||
@@ -128,7 +133,37 @@
|
|||||||
"\u001b[32m~/Documents/MLPproject/.venv/lib/python3.12/site-packages/pandas/core/generic.py\u001b[39m in \u001b[36m?\u001b[39m\u001b[34m(self, dtype, copy)\u001b[39m\n\u001b[32m 2167\u001b[39m )\n\u001b[32m 2168\u001b[39m values = self._values\n\u001b[32m 2169\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m copy \u001b[38;5;28;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[32m 2170\u001b[39m \u001b[38;5;66;03m# Note: branch avoids `copy=None` for NumPy 1.x support\u001b[39;00m\n\u001b[32m-> \u001b[39m\u001b[32m2171\u001b[39m arr = np.asarray(values, dtype=dtype)\n\u001b[32m 2172\u001b[39m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[32m 2173\u001b[39m arr = np.array(values, dtype=dtype, copy=copy)\n\u001b[32m 2174\u001b[39m \n",
|
"\u001b[32m~/Documents/MLPproject/.venv/lib/python3.12/site-packages/pandas/core/generic.py\u001b[39m in \u001b[36m?\u001b[39m\u001b[34m(self, dtype, copy)\u001b[39m\n\u001b[32m 2167\u001b[39m )\n\u001b[32m 2168\u001b[39m values = self._values\n\u001b[32m 2169\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m copy \u001b[38;5;28;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[32m 2170\u001b[39m \u001b[38;5;66;03m# Note: branch avoids `copy=None` for NumPy 1.x support\u001b[39;00m\n\u001b[32m-> \u001b[39m\u001b[32m2171\u001b[39m arr = np.asarray(values, dtype=dtype)\n\u001b[32m 2172\u001b[39m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[32m 2173\u001b[39m arr = np.array(values, dtype=dtype, copy=copy)\n\u001b[32m 2174\u001b[39m \n",
|
||||||
"\u001b[31mValueError\u001b[39m: could not convert string to float: '?'"
|
"\u001b[31mValueError\u001b[39m: could not convert string to float: '?'"
|
||||||
>>>>>>> 2ff73d660ba62540b0a320049b9314f62843e037
|
>>>>>>> 2ff73d660ba62540b0a320049b9314f62843e037
|
||||||
|
=======
|
||||||
|
"ename": "InvalidIndexError",
|
||||||
|
"evalue": "(slice(None, None, None), 0)",
|
||||||
|
"output_type": "error",
|
||||||
|
"traceback": [
|
||||||
|
"\u001b[31m---------------------------------------------------------------------------\u001b[39m",
|
||||||
|
"\u001b[31mKeyError\u001b[39m Traceback (most recent call last)",
|
||||||
|
"\u001b[36mFile \u001b[39m\u001b[32m~/Documents/MLP/Projects/MLPproject/.venv/lib/python3.12/site-packages/pandas/core/indexes/base.py:3812\u001b[39m, in \u001b[36mIndex.get_loc\u001b[39m\u001b[34m(self, key)\u001b[39m\n\u001b[32m 3811\u001b[39m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[32m-> \u001b[39m\u001b[32m3812\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43m_engine\u001b[49m\u001b[43m.\u001b[49m\u001b[43mget_loc\u001b[49m\u001b[43m(\u001b[49m\u001b[43mcasted_key\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 3813\u001b[39m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m err:\n",
|
||||||
|
"\u001b[36mFile \u001b[39m\u001b[32mpandas/_libs/index.pyx:167\u001b[39m, in \u001b[36mpandas._libs.index.IndexEngine.get_loc\u001b[39m\u001b[34m()\u001b[39m\n",
|
||||||
|
"\u001b[36mFile \u001b[39m\u001b[32mpandas/_libs/index.pyx:196\u001b[39m, in \u001b[36mpandas._libs.index.IndexEngine.get_loc\u001b[39m\u001b[34m()\u001b[39m\n",
|
||||||
|
"\u001b[36mFile \u001b[39m\u001b[32mpandas/_libs/hashtable_class_helper.pxi:7088\u001b[39m, in \u001b[36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001b[39m\u001b[34m()\u001b[39m\n",
|
||||||
|
"\u001b[36mFile \u001b[39m\u001b[32mpandas/_libs/hashtable_class_helper.pxi:7096\u001b[39m, in \u001b[36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001b[39m\u001b[34m()\u001b[39m\n",
|
||||||
|
"\u001b[31mKeyError\u001b[39m: (slice(None, None, None), 0)",
|
||||||
|
"\nDuring handling of the above exception, another exception occurred:\n",
|
||||||
|
"\u001b[31mInvalidIndexError\u001b[39m Traceback (most recent call last)",
|
||||||
|
"\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[1]\u001b[39m\u001b[32m, line 39\u001b[39m\n\u001b[32m 37\u001b[39m ax = fig.add_subplot(n_features, n_features, plt_num)\n\u001b[32m 38\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m(i == j):\n\u001b[32m---> \u001b[39m\u001b[32m39\u001b[39m ax.hist(\u001b[43mX_train\u001b[49m\u001b[43m[\u001b[49m\u001b[43m:\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mi\u001b[49m\u001b[43m]\u001b[49m, bins=\u001b[32m25\u001b[39m, color=\u001b[33m'\u001b[39m\u001b[33mgray\u001b[39m\u001b[33m'\u001b[39m)\n\u001b[32m 40\u001b[39m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[32m 41\u001b[39m ax.scatter(X_train[:, j], X_train[:, i], c=np.array(colors)[y_train], s=\u001b[32m30\u001b[39m, alpha=\u001b[32m0.3\u001b[39m)\n",
|
||||||
|
"\u001b[36mFile \u001b[39m\u001b[32m~/Documents/MLP/Projects/MLPproject/.venv/lib/python3.12/site-packages/pandas/core/frame.py:4113\u001b[39m, in \u001b[36mDataFrame.__getitem__\u001b[39m\u001b[34m(self, key)\u001b[39m\n\u001b[32m 4111\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m.columns.nlevels > \u001b[32m1\u001b[39m:\n\u001b[32m 4112\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m._getitem_multilevel(key)\n\u001b[32m-> \u001b[39m\u001b[32m4113\u001b[39m indexer = \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43mcolumns\u001b[49m\u001b[43m.\u001b[49m\u001b[43mget_loc\u001b[49m\u001b[43m(\u001b[49m\u001b[43mkey\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 4114\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m is_integer(indexer):\n\u001b[32m 4115\u001b[39m indexer = [indexer]\n",
|
||||||
|
"\u001b[36mFile \u001b[39m\u001b[32m~/Documents/MLP/Projects/MLPproject/.venv/lib/python3.12/site-packages/pandas/core/indexes/base.py:3818\u001b[39m, in \u001b[36mIndex.get_loc\u001b[39m\u001b[34m(self, key)\u001b[39m\n\u001b[32m 3813\u001b[39m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m err:\n\u001b[32m 3814\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(casted_key, \u001b[38;5;28mslice\u001b[39m) \u001b[38;5;129;01mor\u001b[39;00m (\n\u001b[32m 3815\u001b[39m \u001b[38;5;28misinstance\u001b[39m(casted_key, abc.Iterable)\n\u001b[32m 3816\u001b[39m \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;28many\u001b[39m(\u001b[38;5;28misinstance\u001b[39m(x, \u001b[38;5;28mslice\u001b[39m) \u001b[38;5;28;01mfor\u001b[39;00m x \u001b[38;5;129;01min\u001b[39;00m casted_key)\n\u001b[32m 3817\u001b[39m ):\n\u001b[32m-> \u001b[39m\u001b[32m3818\u001b[39m \u001b[38;5;28;01mraise\u001b[39;00m InvalidIndexError(key)\n\u001b[32m 3819\u001b[39m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m(key) \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01merr\u001b[39;00m\n\u001b[32m 3820\u001b[39m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mTypeError\u001b[39;00m:\n\u001b[32m 3821\u001b[39m \u001b[38;5;66;03m# If we have a listlike key, _check_indexing_error will raise\u001b[39;00m\n\u001b[32m 3822\u001b[39m \u001b[38;5;66;03m# InvalidIndexError. Otherwise we fall through and re-raise\u001b[39;00m\n\u001b[32m 3823\u001b[39m \u001b[38;5;66;03m# the TypeError.\u001b[39;00m\n",
|
||||||
|
"\u001b[31mInvalidIndexError\u001b[39m: (slice(None, None, None), 0)"
|
||||||
|
>>>>>>> caaa71666df3f35a02848991df9e15db55aef57c
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"data": {
|
||||||
|
"image/png": "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",
|
||||||
|
"text/plain": [
|
||||||
|
"<Figure size 1500x1500 with 1 Axes>"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"metadata": {},
|
||||||
|
"output_type": "display_data"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"source": [
|
"source": [
|
||||||
@@ -165,19 +200,26 @@
|
|||||||
"X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)\n",
|
"X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)\n",
|
||||||
"X_train, X_val, y_train, y_val = train_test_split(X_train, y_train, test_size=0.2, random_state=42)\n",
|
"X_train, X_val, y_train, y_val = train_test_split(X_train, y_train, test_size=0.2, random_state=42)\n",
|
||||||
"\n",
|
"\n",
|
||||||
"print(X)\n",
|
|
||||||
"\n",
|
"\n",
|
||||||
"# Create and train the decision tree classifier\n",
|
|
||||||
"clf = DecisionTreeClassifier(random_state=42)\n",
|
|
||||||
"clf.fit(X, y)\n",
|
|
||||||
"\n",
|
"\n",
|
||||||
"# Visualize the tree\n",
|
"n_features = 10\n",
|
||||||
"plt.figure(figsize=(20,10))\n",
|
"fig=plt.figure( figsize=(15, 15) )\n",
|
||||||
"plot_tree(clf, feature_names=X.columns, class_names=['No', 'Yes'], \n",
|
"plt_num = 1\n",
|
||||||
" filled=True, rounded=True, fontsize=18)\n",
|
"for i in range(n_features):\n",
|
||||||
"plt.title(\"Rod Breaking Decision Tree\",fontsize=30)\n",
|
" for j in range(n_features):\n",
|
||||||
"plt.show()\n",
|
" ax = fig.add_subplot(n_features, n_features, plt_num)\n",
|
||||||
|
" if(i == j):\n",
|
||||||
|
" ax.hist(X_train[:, i], bins=25, color='gray')\n",
|
||||||
|
" else:\n",
|
||||||
|
" ax.scatter(X_train[:, j], X_train[:, i], c=np.array(colors)[y_train], s=30, alpha=0.3)\n",
|
||||||
" \n",
|
" \n",
|
||||||
|
" if(i == n_features-1):\n",
|
||||||
|
" ax.set_xlabel(f'$x_{{{j}}}$', fontsize=22)\n",
|
||||||
|
" \n",
|
||||||
|
" if(j==0):\n",
|
||||||
|
" ax.set_ylabel(f'$x_{{{i}}}$', fontsize=22)\n",
|
||||||
|
"\n",
|
||||||
|
<<<<<<< HEAD
|
||||||
"# Print feature importances\n",
|
"# Print feature importances\n",
|
||||||
"importances = pd.DataFrame({\n",
|
"importances = pd.DataFrame({\n",
|
||||||
" 'feature': X.columns,\n",
|
" 'feature': X.columns,\n",
|
||||||
@@ -195,6 +237,10 @@
|
|||||||
"prediction = clf.predict(new_sample)\n",
|
"prediction = clf.predict(new_sample)\n",
|
||||||
"print(f\"Will the rod break? {'Yes' if prediction[0] == 1 else 'No'}\")"
|
"print(f\"Will the rod break? {'Yes' if prediction[0] == 1 else 'No'}\")"
|
||||||
>>>>>>> 2ff73d660ba62540b0a320049b9314f62843e037
|
>>>>>>> 2ff73d660ba62540b0a320049b9314f62843e037
|
||||||
|
=======
|
||||||
|
" ax.grid(True)\n",
|
||||||
|
" plt_num +=1\n"
|
||||||
|
>>>>>>> caaa71666df3f35a02848991df9e15db55aef57c
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@@ -214,7 +260,7 @@
|
|||||||
"name": "python",
|
"name": "python",
|
||||||
"nbconvert_exporter": "python",
|
"nbconvert_exporter": "python",
|
||||||
"pygments_lexer": "ipython3",
|
"pygments_lexer": "ipython3",
|
||||||
"version": "3.12.11"
|
"version": "3.12.12"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nbformat": 4,
|
"nbformat": 4,
|
||||||
|
|||||||
Reference in new issue
Block a user