Compare commits

..
4 Commits
Author SHA1 Message Date
Jany 5f57761a2a Merge branch 'main' of https://gitea.jany.se/Jany/MLPproject 2025-10-22 10:48:16 +02:00
Jany 85dbd8164d test.ipynb 2025-10-22 10:47:25 +02:00
Jany b53c1dd1c6 Merge branch 'main' of https://gitea.jany.se/Jany/MLPproject 2025-10-22 10:47:20 +02:00
Jany 94c7df0712 Added desicion tree to info 2025-10-09 17:25:53 +02:00
2 changed files with 187 additions and 0 deletions

No files matched your search

+152
View File
@@ -2,11 +2,138 @@
"cells": [ "cells": [
{ {
"cell_type": "code", "cell_type": "code",
<<<<<<< HEAD
"execution_count": 10,
=======
"execution_count": 1, "execution_count": 1,
>>>>>>> caaa71666df3f35a02848991df9e15db55aef57c
"id": "b6ea6c3b", "id": "b6ea6c3b",
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
{ {
<<<<<<< HEAD
"name": "stdout",
"output_type": "stream",
"text": [
<<<<<<< HEAD
" age workclass education.num marital.status occupation \\\n",
"0 90 0 9 6 0 \n",
"1 82 4 9 6 4 \n",
"2 66 0 10 6 0 \n",
"3 54 4 4 0 7 \n",
"4 41 4 10 5 10 \n",
"... ... ... ... ... ... \n",
"32556 22 4 10 4 11 \n",
"32557 27 4 12 2 13 \n",
"32558 40 4 9 2 7 \n",
"32559 58 4 9 6 1 \n",
"32560 22 4 9 4 1 \n",
"\n",
" relationship race sex capital.gain capital.loss hours.per.week \n",
"0 1 4 0 0 4356 40 \n",
"1 1 4 0 0 4356 18 \n",
"2 4 2 0 0 4356 40 \n",
"3 4 4 0 0 3900 40 \n",
"4 3 4 0 0 3900 40 \n",
"... ... ... ... ... ... ... \n",
"32556 1 4 1 0 0 40 \n",
"32557 5 4 0 0 0 38 \n",
"32558 0 4 1 0 0 40 \n",
"32559 4 4 0 0 0 40 \n",
"32560 3 4 1 0 0 20 \n",
"\n",
"[32561 rows x 11 columns]\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAB1AAAAN8CAYAAADmrDj+AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjYsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvq6yFwwAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3XV0FNcXwPHvStyFCElwd3d3dyvSAoXS0gKlSIVfFdpSWlooBQpV3N3dAwRNgiXE3d2T3f39sWQhZDdGIAl9n3NyTrLz3szdie3OnXufRKVSqRAEQRAEQRAEQRAEQRAEQRAEQRAEQRCQl3UAgiAIgiAIgiAIgiAIr4vk5GQOHz7M2bNniY2NJT0traxDEgThP0Kup4elpSUNGzZk1KhR1KpVq6xDEgRBEIQKSyIqUAVBEARBEARBEARBEF5MTEwM786YwZGjR8jIyKRBVQccLI0x0pcjkZR1dIIg/Bdk5yhJSMvEMyCStIwsmjdrynffL6Vfv35lHZogCIIgVDgigSoIgiAIgiAIgiAIgvACYmJi6NG9GxEhgcwa1Joh7erhUsmirMMSBOE/Ki0zm9N3fPnr5B3cHoexZ89eBg0aVNZhCYIgCEKFIhKogiAIgiAIgiAIgiAIJaRQKGjZojlhQf7s/3wc9ZxtyzokQRAEALJyFExbeZBTd/04f/4C7du3L+uQBEEQBKHCkJZ1AIIgCIIgCIIgCIIgCBXVxYsXcffw5O85Q0TyVBCEckVfLuPPOUNwsTVn/fr1ZR2OIAiCIFQoIoEqCIIgCIIgCIIgCIJQQrt27cLFzor29V3KOhRBEIR89OUyhrWry/59e8nKyirrcARBEAShwhAJVEEQBEEQBEEQBEEQhBLav28vg1vXQiKRlHUogiAIWg1tV4+ExCQuXrxY1qEIgiAIQoUhEqiCIAiCIAiCIAiCIAglkJOTQ3hEJPVcROteQRDKrzpONgAEBweXcSSCIAiCUHGIBKogCIIgCIIgCIIgCEIJJCcnA2BmZFDGkQiCIOimJ5dhbKhPYmJiWYciCIIgCBWGSKAKgiAIgiAIgiAIgiCUgEqlAkAqfT3b924974HN2KU0+2DNf/L4peny/UBsxi7FZuzSMpkvCDKpVPM3SxAEQRCEwsnLOgBBEARBEARBEARBEAThvyMoKoFtFzwB+Hh05zKORvivSU7PZM1hNw5d9yYoKgGpVEpNRytGdKjP9P6t0JfLSrTfH3ZdYtnuK4WOu7FyBjUcrEp0DEEQBEEQXh2RQBUEQRAEQRAEQRAEQRBemaDoRE2iqaAEqrmxAbUqW+NobfaqQiu3jAz0qFXZuqzDqPCCoxMZ8vVWgqLVrWyNDfTIysnhrl8Ed/0i2H35Afs+fwNLU8MSH0NPJsXK1EjndvlrWrEuCIIgCK8bkUAVBEEQBEEQBEEQBEEQyp1BbeoyqE3dsg6jXGhZqzLXf3mnrMOo0HIUSsYv201QdCL2VqasmTmIbk2qoVSqOHDtER+uP4ZHQCTv/naI7Z+MLvFx2tR14uCXE0oxckEQBEEQyoJYA1UQBEEQBEEQBEEQBEEQhFL3KCSGG96hZR0GANsvePIgKBqADR8Np1uTaoB6DePhHerz8/R+AJy648sFz4AyilIQBEEQhPJCVKAKgiAIgiAIgiAIgiBUMEO+3sKVB8EsHNWRj4Z3YP2xm+xxfYh/RDxJaZkc+OINOjWsqhn/MCia9cdvcvl+EOFxyUglEqraW9K3ZS3eG9AaG3PjYh0/O0fB6bt+nLztg7t/JBFxycQlp2NhYkjjava80a0xIzrURyLJ26602QdrCI5O0nxtM3Zpnu3jujZi9cxBAGw978GstUdxqWTO3d9mao3DPyKe3w67cdEzgLDYZORyKTXsrRjQujYzBrTG3Ngg35zL9wMZ+s02AGJ3fIJfRDy/7HPlvGcAMYlp2Jgb06tZDRaO7kRlHe2DvUNjWXvEjSsPggiLTUapUmFjboyjlRmdG1VlbJdG1HGy0Xn+invM52N+1vPn6ZyHP2uP3OCubzipGdlUtbdkRIf6fDC4LYb6L/9SYHRiKnsuP2DnpXu4+0eycFRHWtdxeunHLcz2J+vudmpYRWs8IzrU59vtFwiMSmTHxXt0bVztFUcoCIIgCEJ5IhKogiAIgiAIgiAIgiAIFVRGtoIhX2/FzTsUuUyKqaE+z+Us+fXANRZvu4BSpQLU6z5mK5Q8CIrmQVA0W897sv3jUTSp7lDk4173CmHij3s0X5sZGWCgLycmKY1zHv6c8/DniJs3f84ZivSZNR9tzIxJTssiITUDADsLkzz71Zbw1GX/1YfMXH2YzGwFAKZG+mTnKPAIiMQjIJJNZz3Y9dkY6jrb6tzHpXuBTPhxD6kZWZga6aNUqQiPS2bTWXdO3fHl1Hdv5UtonvPwZ8Ky3Zrj6smkGBvqERabTFhsMrd8wtCXS3Wu71qSYxbVXydu8/E/J1GpwMLEgBylEq+QGL7feYkjbt4vvL6nLulZ2Ry78Zidl+5zzsOfHIUSAH25DCcb81I/XnGlZWZz3UtdCdurWU2tYyQSCT2a1uCfU3c47+H/KsMTBEEQBKEcEglUQRAEQRAEQRAEQRCECuqvE7cBWPXeAIZ3qI+Rvh5xyemaJOrms+58vfU8Job6fDisHRO6N8He0hSFUolnQBRfbTmnSehd/Xk6pob6RTqukYEek3s1Y3DberSo5ahJfManpLPz0n2+33GJA9ce0baeMzP6t9LMO/P95DzVlA/XzyrR83b3i+DdVYfIVihpW9eZn6b1oUEVO5RKFSfv+PDRHycIjU1iwrLdnF82VefzmvzzPjo3qsKX47tTx8mGrBwFR294M2fdMSLiU1i89TxrPxicZ86CP0+Qma2ge5PqLJ7Ug/pVKgGQkZVDQGQ8h6574WSrO2lYkmMWRWxSOos2nGZI23osntQDJ1tz0rOy2X7hHos2nMYjIJLZvx9l4/wRxd63NiqVisv3g9h56R4Hr3uRkp4FgEQC7es5M7pzI4a2q/dSErbF5R0aq7mBoL6L7oR6fRf19zIyIZX4lHSsTI2KfaxHwTF0nPcngVEJSCUSHKzN6FDfhal9mhfrJgVBEARBEMqWSKAKgiAIgiAIgiAIgiBUUKkZWWxZOJJ+LWtrHrM2Uyd9ktMz+WLzWQD+nTuMHs1qaMbIpFKa1XBg92dj6fO/jbj7RbD5jDvvDmxdpOO2rFWZlrUq53vcytSIGf1b4WhlypRf9vPHsZt5Eqil5dsdF8lWKKnhYMXuRWMxNtAD1OtZ9mtZm8rWZvRetBH/yAT+PXWHDwa31bqfRtXs2DRvpKZKVl8uY1j7+kQlpPLpv6c5dN2LVe8NRC6TAur2tP6RCQD8NnMgDlammn0Z6sup51KJek+ScLoU95hFlZaZTccGLnmqfo309ZjSuzl6Milz1h3jyA1vbvuE06KWY7H2/SyvkBh2XrrPrkv3CY192o65vkslRnVqwKhODXC2tShwH88m0Uti1XsDGN+tSZHHR8Qnaz53LKC619H66fczIi6lRAnU2OR04lMysDAxIDk9C9/wOHzD49h8zp25wzqwaFyXYu9TEARBEIRXTyRQBUEQBEEQBEEQBEEQKqh6zrZ5kqfPOnTdi8TUTJpUs8+TPH2WXCZlZIf6uPtFcNbDv8gJ1ML0bqFuk+ofmUBkQgr2lqaFzCi6xNQMzrr7AfDB4Laa5OmzmlR3YFCbOuy/+oi9Vx7oTKDOHdYhT4vhXANa1+bTf0+TnpWDb3icpg2wqZE+UokEpUpFZHxKngRqURX3mMXx0fCOWvc9vlsTfth9mbDYZPa5Pih2AjU6MZW9Vx6w49J93P0iNI9XtjFjZAd10rRRNfsi709fLsvXvrk4jPTzf88LklsdC+rqaZ37fWZbSkaWznHa1HCw5qsJ3enfqjZV7SzQk8vIylFw5X4Qi7dfwN0vgp/3uWJpYsD7On4eBUEQBEEoP0QCVRAEQRAEQRDKgFKp5OrVq+zatYuzZ88QGxtLWlp6WYclCILw0kkkEiwszHFxcWHo0GGMGjWKqlWrlnVYFVbbus46t7k9WfPROzSW+u+s0jkuPSsHgODoxGIdOzk9k39P3eXkbR+8Q2NJTM0g+8nal88Ki00u1QSqu38ET7qx0rVxNZ3jujWuzv6rj7gfFE12jgI9uSzfmJa1tScSHayeVikmpGRoPjfS16NL46qc9whgzPc7mdy7Gb2b16JJdXv0texfm+Ies6jkMint62v/eZBKJXRsUIVdl+5z95kEaFGExSXT/IO1mnVNLUwMGNymLqM6NaRTwypInl90twja1HUucfvm8mp054b5HtOXy+jetDrt67sw6Kst3PEN54fdV5jUsynmxmXf2vh1plAouHLlCrt27eL8k9fa6RnF/70SBEEobYYGBlhbW9Gxc1dGjx5N9+7dkctFqq48Et8VQRAEQRAEQXjFPDw8GDx4MEFBQTja2zGgVzccHewwNjIq0UVIQRCEikShUJCUnMIDbx8WLVrE/PnzGTp0CNu2bcfIqPjtMv/rbC2MdW6LiE8BICM7h4zEnEL3lZ6VXeTj+oTFMXzJNsJin7ZGNTbQw8LEEOmT/2VRiamAurVsaYpJTNN8/mzL1edVtlEnJHMUSuJTMrCzzF/xaGZkoHXus+1zsxWKPNtWzujPhGV7uBcYxU97XPlpjyv6chnNazrSv1VtJvZoUmDr15IcsyhszIww0NN9qS+3dW30M+evKHJyFJrkKUCvZjUZ3qEBHRuULHlaFkyNnq6Bm17Az+Oz24q6HnBRGOrL+d+4roz8djupGVlc8AxkcNu6pbZ/Ia+bN28ybOgQQsPCcbQyoVc9W+xcrDDSk1FBfmQFQXiNZWQriU7O4NT+7fzxxx/Y2lizfcdOevbsWdahCc8RCVRBEARBEARBeIU8PDzo0aMHVZwc+HflFjq0aYlUWrw1zgRBEF4XSckp7D18nDmLvmHLine truncated
"text/plain": [
"<Figure size 2000x1000 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"Feature Importances:\n",
" feature importance\n",
"5 relationship 0.218174\n",
"0 age 0.174282\n",
"2 education.num 0.147966\n",
"8 capital.gain 0.129988\n",
"10 hours.per.week 0.105884\n",
"4 occupation 0.085228\n",
"1 workclass 0.052566\n",
"9 capital.loss 0.044720\n",
"6 race 0.023650\n",
"3 marital.status 0.011255\n",
"7 sex 0.006286\n"
=======
" age workclass fnlwgt education.num marital.status \\\n",
"0 90 ? 77053 9 Widowed \n",
"1 82 Private 132870 9 Widowed \n",
"2 66 ? 186061 10 Widowed \n",
"3 54 Private 140359 4 Divorced \n",
"4 41 Private 264663 10 Separated \n",
"... ... ... ... ... ... \n",
"32556 22 Private 310152 10 Never-married \n",
"32557 27 Private 257302 12 Married-civ-spouse \n",
"32558 40 Private 154374 9 Married-civ-spouse \n",
"32559 58 Private 151910 9 Widowed \n",
"32560 22 Private 201490 9 Never-married \n",
"\n",
" occupation relationship race sex capital.gain \\\n",
"0 ? Not-in-family White Female 0 \n",
"1 Exec-managerial Not-in-family White Female 0 \n",
"2 ? Unmarried Black Female 0 \n",
"3 Machine-op-inspct Unmarried White Female 0 \n",
"4 Prof-specialty Own-child White Female 0 \n",
"... ... ... ... ... ... \n",
"32556 Protective-serv Not-in-family White Male 0 \n",
"32557 Tech-support Wife White Female 0 \n",
"32558 Machine-op-inspct Husband White Male 0 \n",
"32559 Adm-clerical Unmarried White Female 0 \n",
"32560 Adm-clerical Own-child White Male 0 \n",
"\n",
" capital.loss hours.per.week native.country income \n",
"0 4356 40 United-States <=50K \n",
"1 4356 18 United-States <=50K \n",
"2 4356 40 United-States <=50K \n",
"3 3900 40 United-States <=50K \n",
"4 3900 40 United-States <=50K \n",
"... ... ... ... ... \n",
"32556 0 40 United-States <=50K \n",
"32557 0 38 United-States <=50K \n",
"32558 0 40 United-States >50K \n",
"32559 0 40 United-States <=50K \n",
"32560 0 20 United-States <=50K \n",
"\n",
"[32561 rows x 14 columns]\n"
]
},
{
"ename": "ValueError",
"evalue": "could not convert string to float: '?'",
"output_type": "error",
"traceback": [
"\u001b[31m---------------------------------------------------------------------------\u001b[39m",
"\u001b[31mValueError\u001b[39m Traceback (most recent call last)",
"\u001b[32m/tmp/ipykernel_3669/1374041598.py\u001b[39m in \u001b[36m?\u001b[39m\u001b[34m()\u001b[39m\n\u001b[32m 37\u001b[39m print(X)\n\u001b[32m 38\u001b[39m \n\u001b[32m 39\u001b[39m \u001b[38;5;66;03m# Create and train the decision tree classifier\u001b[39;00m\n\u001b[32m 40\u001b[39m clf = DecisionTreeClassifier(random_state=\u001b[32m42\u001b[39m)\n\u001b[32m---> \u001b[39m\u001b[32m41\u001b[39m clf.fit(X, y)\n\u001b[32m 42\u001b[39m \n\u001b[32m 43\u001b[39m \u001b[38;5;66;03m# Visualize the tree\u001b[39;00m\n\u001b[32m 44\u001b[39m plt.figure(figsize=(\u001b[32m20\u001b[39m,\u001b[32m10\u001b[39m))\n",
"\u001b[32m~/Documents/MLPproject/.venv/lib/python3.12/site-packages/sklearn/base.py\u001b[39m in \u001b[36m?\u001b[39m\u001b[34m(estimator, *args, **kwargs)\u001b[39m\n\u001b[32m 1361\u001b[39m skip_parameter_validation=(\n\u001b[32m 1362\u001b[39m prefer_skip_nested_validation \u001b[38;5;28;01mor\u001b[39;00m global_skip_validation\n\u001b[32m 1363\u001b[39m )\n\u001b[32m 1364\u001b[39m ):\n\u001b[32m-> \u001b[39m\u001b[32m1365\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m fit_method(estimator, *args, **kwargs)\n",
"\u001b[32m~/Documents/MLPproject/.venv/lib/python3.12/site-packages/sklearn/tree/_classes.py\u001b[39m in \u001b[36m?\u001b[39m\u001b[34m(self, X, y, sample_weight, check_input)\u001b[39m\n\u001b[32m 1020\u001b[39m self : DecisionTreeClassifier\n\u001b[32m 1021\u001b[39m Fitted estimator.\n\u001b[32m 1022\u001b[39m \"\"\"\n\u001b[32m 1023\u001b[39m \n\u001b[32m-> \u001b[39m\u001b[32m1024\u001b[39m super()._fit(\n\u001b[32m 1025\u001b[39m X,\n\u001b[32m 1026\u001b[39m y,\n\u001b[32m 1027\u001b[39m sample_weight=sample_weight,\n",
"\u001b[32m~/Documents/MLPproject/.venv/lib/python3.12/site-packages/sklearn/tree/_classes.py\u001b[39m in \u001b[36m?\u001b[39m\u001b[34m(self, X, y, sample_weight, check_input, missing_values_in_feature_mask)\u001b[39m\n\u001b[32m 248\u001b[39m check_X_params = dict(\n\u001b[32m 249\u001b[39m dtype=DTYPE, accept_sparse=\u001b[33m\"csc\"\u001b[39m, ensure_all_finite=\u001b[38;5;28;01mFalse\u001b[39;00m\n\u001b[32m 250\u001b[39m )\n\u001b[32m 251\u001b[39m check_y_params = dict(ensure_2d=\u001b[38;5;28;01mFalse\u001b[39;00m, dtype=\u001b[38;5;28;01mNone\u001b[39;00m)\n\u001b[32m--> \u001b[39m\u001b[32m252\u001b[39m X, y = validate_data(\n\u001b[32m 253\u001b[39m self, X, y, validate_separately=(check_X_params, check_y_params)\n\u001b[32m 254\u001b[39m )\n\u001b[32m 255\u001b[39m \n",
"\u001b[32m~/Documents/MLPproject/.venv/lib/python3.12/site-packages/sklearn/utils/validation.py\u001b[39m in \u001b[36m?\u001b[39m\u001b[34m(_estimator, X, y, reset, validate_separately, skip_check_array, **check_params)\u001b[39m\n\u001b[32m 2962\u001b[39m \u001b[38;5;66;03m# :(\u001b[39;00m\n\u001b[32m 2963\u001b[39m check_X_params, check_y_params = validate_separately\n\u001b[32m 2964\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[33m\"estimator\"\u001b[39m \u001b[38;5;28;01mnot\u001b[39;00m \u001b[38;5;28;01min\u001b[39;00m check_X_params:\n\u001b[32m 2965\u001b[39m check_X_params = {**default_check_params, **check_X_params}\n\u001b[32m-> \u001b[39m\u001b[32m2966\u001b[39m X = check_array(X, input_name=\u001b[33m\"X\"\u001b[39m, **check_X_params)\n\u001b[32m 2967\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[33m\"estimator\"\u001b[39m \u001b[38;5;28;01mnot\u001b[39;00m \u001b[38;5;28;01min\u001b[39;00m check_y_params:\n\u001b[32m 2968\u001b[39m check_y_params = {**default_check_params, **check_y_params}\n\u001b[32m 2969\u001b[39m y = check_array(y, input_name=\u001b[33m\"y\"\u001b[39m, **check_y_params)\n",
"\u001b[32m~/Documents/MLPproject/.venv/lib/python3.12/site-packages/sklearn/utils/validation.py\u001b[39m in \u001b[36m?\u001b[39m\u001b[34m(array, accept_sparse, accept_large_sparse, dtype, order, copy, force_writeable, force_all_finite, ensure_all_finite, ensure_non_negative, ensure_2d, allow_nd, ensure_min_samples, ensure_min_features, estimator, input_name)\u001b[39m\n\u001b[32m 1050\u001b[39m )\n\u001b[32m 1051\u001b[39m array = xp.astype(array, dtype, copy=\u001b[38;5;28;01mFalse\u001b[39;00m)\n\u001b[32m 1052\u001b[39m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[32m 1053\u001b[39m array = _asarray_with_order(array, order=order, dtype=dtype, xp=xp)\n\u001b[32m-> \u001b[39m\u001b[32m1054\u001b[39m \u001b[38;5;28;01mexcept\u001b[39;00m ComplexWarning \u001b[38;5;28;01mas\u001b[39;00m complex_warning:\n\u001b[32m 1055\u001b[39m raise ValueError(\n\u001b[32m 1056\u001b[39m \u001b[33m\"Complex data not supported\\n{}\\n\"\u001b[39m.format(array)\n\u001b[32m 1057\u001b[39m ) \u001b[38;5;28;01mfrom\u001b[39;00m complex_warning\n",
"\u001b[32m~/Documents/MLPproject/.venv/lib/python3.12/site-packages/sklearn/utils/_array_api.py\u001b[39m in \u001b[36m?\u001b[39m\u001b[34m(array, dtype, order, copy, xp, device)\u001b[39m\n\u001b[32m 753\u001b[39m \u001b[38;5;66;03m# Use NumPy API to support order\u001b[39;00m\n\u001b[32m 754\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m copy \u001b[38;5;28;01mis\u001b[39;00m \u001b[38;5;28;01mTrue\u001b[39;00m:\n\u001b[32m 755\u001b[39m array = numpy.array(array, order=order, dtype=dtype)\n\u001b[32m 756\u001b[39m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[32m--> \u001b[39m\u001b[32m757\u001b[39m array = numpy.asarray(array, order=order, dtype=dtype)\n\u001b[32m 758\u001b[39m \n\u001b[32m 759\u001b[39m \u001b[38;5;66;03m# At this point array is a NumPy ndarray. We convert it to an array\u001b[39;00m\n\u001b[32m 760\u001b[39m \u001b[38;5;66;03m# container that is consistent with the input's namespace.\u001b[39;00m\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: '?'"
>>>>>>> 2ff73d660ba62540b0a320049b9314f62843e037
=======
"ename": "InvalidIndexError", "ename": "InvalidIndexError",
"evalue": "(slice(None, None, None), 0)", "evalue": "(slice(None, None, None), 0)",
"output_type": "error", "output_type": "error",
@@ -25,6 +152,7 @@
"\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/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[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)" "\u001b[31mInvalidIndexError\u001b[39m: (slice(None, None, None), 0)"
>>>>>>> caaa71666df3f35a02848991df9e15db55aef57c
] ]
}, },
{ {
@@ -61,7 +189,11 @@
" df_encoded[column] = label_encoder.fit_transform(df_encoded[column])\n", " df_encoded[column] = label_encoder.fit_transform(df_encoded[column])\n",
"\n", "\n",
"# Now properly separate features and target\n", "# Now properly separate features and target\n",
<<<<<<< HEAD
"X = df_encoded.drop(columns=['income', 'native.country', 'education','fnlwgt'])\n",
=======
"X = df_encoded.drop(columns=['income', 'native.country', 'education'])\n", "X = df_encoded.drop(columns=['income', 'native.country', 'education'])\n",
>>>>>>> 2ff73d660ba62540b0a320049b9314f62843e037
"y = df_encoded['income']\n", "y = df_encoded['income']\n",
"\n", "\n",
"# Split the data\n", "# Split the data\n",
@@ -87,8 +219,28 @@
" if(j==0):\n", " if(j==0):\n",
" ax.set_ylabel(f'$x_{{{i}}}$', fontsize=22)\n", " ax.set_ylabel(f'$x_{{{i}}}$', fontsize=22)\n",
"\n", "\n",
<<<<<<< HEAD
"# Print feature importances\n",
"importances = pd.DataFrame({\n",
" 'feature': X.columns,\n",
" 'importance': clf.feature_importances_\n",
"})\n",
"print(\"\\nFeature Importances:\")\n",
"print(importances.sort_values('importance', ascending=False))\n",
<<<<<<< HEAD
"\n"
=======
"\n",
"# Example prediction\n",
"print(\"\\nPrediction for a new sample:\")\n",
"new_sample = pd.DataFrame([[350, 0, 0, 0.09]], columns=X.columns) # Force=300, Coating=Yes, Defects=No, Moisture=0.05\n",
"prediction = clf.predict(new_sample)\n",
"print(f\"Will the rod break? {'Yes' if prediction[0] == 1 else 'No'}\")"
>>>>>>> 2ff73d660ba62540b0a320049b9314f62843e037
=======
" ax.grid(True)\n", " ax.grid(True)\n",
" plt_num +=1\n" " plt_num +=1\n"
>>>>>>> caaa71666df3f35a02848991df9e15db55aef57c
] ]
} }
], ],
+35
View File
@@ -0,0 +1,35 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "e144ae0f",
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd"
]
}
],
"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.11"
}
},
"nbformat": 4,
"nbformat_minor": 5
}