diff --git a/year4/semester1/CT4101: Machine Learning/assignments/assignment1/code/CT4101_A1_Hayes_Andrew_code.zip b/year4/semester1/CT4101: Machine Learning/assignments/assignment1/code/CT4101_A1_Hayes_Andrew_code.zip new file mode 100644 index 00000000..63873f0b Binary files /dev/null and b/year4/semester1/CT4101: Machine Learning/assignments/assignment1/code/CT4101_A1_Hayes_Andrew_code.zip differ diff --git a/year4/semester1/CT4101: Machine Learning/assignments/assignment1/code/assignment.ipynb b/year4/semester1/CT4101: Machine Learning/assignments/assignment1/code/assignment.ipynb new file mode 100644 index 00000000..afbda25e --- /dev/null +++ b/year4/semester1/CT4101: Machine Learning/assignments/assignment1/code/assignment.ipynb @@ -0,0 +1,464 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "provenance": [] + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "language_info": { + "name": "python" + } + }, + "cells": [ + { + "cell_type": "markdown", + "source": [ + "Set up" + ], + "metadata": { + "id": "N51l2h_JXXSK" + } + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "id": "CbtWRrEj43kP" + }, + "outputs": [], + "source": [ + "from sklearn.ensemble import RandomForestClassifier\n", + "from sklearn.metrics import accuracy_score\n", + "from sklearn.metrics import accuracy_score, classification_report\n", + "from sklearn.metrics import accuracy_score, classification_report, confusion_matrix\n", + "from sklearn.metrics import confusion_matrix\n", + "from sklearn.model_selection import train_test_split\n", + "from sklearn.preprocessing import StandardScaler, LabelEncoder\n", + "from sklearn.svm import SVC\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "import pandas as pd\n", + "import seaborn as sns\n", + "from sklearn.preprocessing import OneHotEncoder\n", + "from sklearn.compose import ColumnTransformer\n", + "\n", + "train_data = pd.read_csv('/content/drive/MyDrive/wildfires_training.csv')\n", + "test_data = pd.read_csv('/content/drive/MyDrive/wildfires_test.csv')\n", + "\n", + "X_train = train_data.drop(columns=['fire'])\n", + "y_train = train_data['fire']\n", + "\n", + "X_test = test_data.drop(columns=['fire'])\n", + "y_test = test_data['fire']" + ] + }, + { + "cell_type": "markdown", + "source": [ + "RandomForestClassifier with default parameters:" + ], + "metadata": { + "id": "BZzXcEDVXHUB" + } + }, + { + "cell_type": "code", + "source": [ + "# intialise the randomforestclassifier with a set random seed\n", + "rfc = RandomForestClassifier(random_state=0)\n", + "rfc.fit(X_train, y_train)\n", + "\n", + "# train and get accuracy\n", + "train_predictions = rfc.predict(X_train)\n", + "train_accuracy = accuracy_score(y_train, train_predictions)\n", + "train_report = classification_report(y_train, train_predictions)\n", + "\n", + "print(f\"Training Accuracy: {train_accuracy:.4f}\\n\")\n", + "print(\"Classification Report of Testing Results:\")\n", + "print(train_report)\n", + "\n", + "# test and get accuracy\n", + "test_predictions = rfc.predict(X_test)\n", + "test_accuracy = accuracy_score(y_test, test_predictions)\n", + "test_report = classification_report(y_test, test_predictions)\n", + "\n", + "print(f\"Testing Accuracy: {test_accuracy:.4f}\")\n", + "print(\"Classification Report of Testing Results:\")\n", + "print(test_report)\n", + "\n", + "# create a confusion matrix to visualise the data\n", + "cm = confusion_matrix(y_test, test_predictions)\n", + "plt.figure(figsize=(8, 6))\n", + "sns.heatmap(cm, annot=True, fmt='d', cmap='Blues',\n", + " xticklabels=np.unique(y_test), yticklabels=np.unique(y_test))\n", + "plt.ylabel('Actual')\n", + "plt.xlabel('Predicted')\n", + "plt.title('RandomForestClassifier with Default Hyperparametersk')\n", + "plt.show()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 963 + }, + "id": "1DbUwCudVrzZ", + "outputId": "aa496dbc-0fd2-4244-ab1f-01a2887cea15" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Training Accuracy: 1.0000\n", + "\n", + "Classification Report of Testing Results:\n", + " precision recall f1-score support\n", + "\n", + " no 1.00 1.00 1.00 75\n", + " yes 1.00 1.00 1.00 79\n", + "\n", + " accuracy 1.00 154\n", + " macro avg 1.00 1.00 1.00 154\n", + "weighted avg 1.00 1.00 1.00 154\n", + "\n", + "Testing Accuracy: 0.8200\n", + "Classification Report of Testing Results:\n", + " precision recall f1-score support\n", + "\n", + " no 0.76 0.86 0.81 22\n", + " yes 0.88 0.79 0.83 28\n", + "\n", + " accuracy 0.82 50\n", + " macro avg 0.82 0.82 0.82 50\n", + "weighted avg 0.83 0.82 0.82 50\n", + "\n" + ] + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAo0AAAIjCAYAAABmuyHTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABV7UlEQVR4nO3dd1yV9f//8ecB5YCg4GKl4h64V2ZpapI4MreppZhm5sjU0qK+uRqkDa3MVSbOMi23mSNnjoZZWkruvRfiAIHr94c/zscT4AXI8ZDncf/czu324TrX9T4vrnPAV8/rfb2xGIZhCAAAALgDN2cXAAAAgJyPphEAAACmaBoBAABgiqYRAAAApmgaAQAAYIqmEQAAAKZoGgEAAGCKphEAAACmaBoBAABgiqbxPtC9e3cVL17c2WW4lEOHDslisSg6OtppNRQvXlzdu3e327Z37141adJEvr6+slgsWrhwoaKjo2WxWHTo0CGn1JkRDRs2VMOGDTO8b6VKlRxb0F14//33VbJkSbm7u6tatWoOeY1169bJYrFo3bp1DhkfANJC05gJKf/4pjxy5cqlBx54QN27d9fx48edXZ5TdO/e3e6c3P5YsWKFs8tL5cSJExoxYoR27NiR7j7r1q1T27ZtFRgYKA8PD/n7+6tly5b67rvv7l2hWRQREaGdO3fqnXfe0cyZM1WrVi1nl5QlGXmfsqp48eK2z6ibm5v8/PxUuXJlPf/889q2bdtdjb1y5UoNHTpUjzzyiKZNm6Z33303m6o2N2fOHI0bNy7D+xcvXlxPPPFEms+lNKXz58/PpurgKBMmTHDqf7zCteRydgH/RaNGjVKJEiV048YNbd26VdHR0dq0aZN27dolT09PZ5d3z1mtVn3xxReptletWtUJ1dzZiRMnNHLkSBUvXjzNFGj48OEaNWqUypQpo969eyskJETnz5/X8uXL1a5dO82ePVtdunS594WnISYmRm5u//vvvuvXr2vLli1644031L9/f9v2rl27qlOnTrJarc4oM0NWrlxp97XZ+3S3qlWrppdfflmSdOXKFe3evVvz5s3T559/rkGDBumjjz7K0rg//vij3NzcNHXqVHl4eGRnyabmzJmjXbt2aeDAgff0deFcEyZMUKFChVJddQAcgaYxC5o1a2ZLcJ577jkVKlRIo0eP1uLFi9WxY0cnV3fv5cqVS88884xDxr527Zry5MnjkLH/bf78+Ro1apTat2+vOXPmKHfu3LbnhgwZoh9++EE3b968J7VkxL+bwLNnz0qS/Pz87La7u7vL3d0921736tWr8vb2zrbxJN3zBuuBBx5I9ZkdPXq0unTporFjx6pMmTLq06dPpsc9c+aMvLy87vn342oMw9CNGzfk5eV1T17PEZ/5nCwxMVHJycl8jpEKl6ezQf369SVJ+/fvt21LSEjQsGHDVLNmTfn6+srb21v169fX2rVr7Y5NmRv3wQcfaMqUKSpVqpSsVqtq166tX375JdVrLVy4UJUqVZKnp6cqVaqkBQsWpFnT1atX9fLLL6to0aKyWq0qV66cPvjgAxmGYbefxWJR//79NW/ePIWGhsrLy0t169bVzp07JUmTJ09W6dKl5enpqYYNG2Z5XtyECRNUsWJFWa1WBQcHq1+/frp06ZLdPilz1X777Tc9+uijypMnj15//XVJUnx8vIYPH67SpUvLarWqaNGiGjp0qOLj4+3GWLVqlerVqyc/Pz/5+PioXLlytjHWrVun2rVrS5KeffZZ2yXKlEs7b775pgoUKKAvv/zSrmFMER4enu7lPEn6888/1b17d5UsWVKenp4KDAxUjx49dP78ebv9rly5ooEDB6p48eKyWq3y9/fX448/ru3bt9v22bt3r9q1a6fAwEB5enqqSJEi6tSpky5fvmzb5/Y5jSNGjFBISIikWw2uxWKxzXNNb07j999/r/r168vb21t58+ZVixYt9Ndff9nt0717d/n4+Gj//v1q3ry58ubNq6effjrd799isWjx4sW2bb/99pssFotq1Khht2+zZs1Up04d29e3z2k0e59S/P3332rUqJHy5MmjBx54QGPGjEmzrozy8vLSzJkzVaBAAb3zzjt2PyvJyckaN26cKlasKE9PTwUEBKh37966ePGibR+LxaJp06bp6tWrqWqeNm2aHnvsMfn7+8tqtSo0NFQTJ05MVYPFYtGIESNSbU9r/urtGjZsqGXLlunw4cO2187Oec5r166VxWJJ8/fNnDlzZLFYtGXLFkn/+8wcOHBA4eHh8vb2VnBwsEaNGpXq909Gzqv0v0vpP/zwg2rVqiUvLy9NnjxZ0v9+h82ePVvlypWTp6enatasqQ0bNtiNcfjwYfXt21flypWTl5eXChYsqA4dOqT6uUj5eVm/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56xWa5bqAABXQdMIIEu8vb1VunTpDO1bo0YNzZ07V/7+/sqXL1+a+wQFBWnbtm169NFHJUmJiYn67bffVKNGjTT3r1y5spKTk7V+/Xrb5enbpSSdSUlJtm2hoaGyWq06cuRIugllhQoVtHjxYrttW7duNf8mAeA+x40wABzu6aefVqFChdSqVStt3LhRBw8e1Lp16zRgwAAdO3ZMkvTSSy/pvffe08KFC7Vnzx717dv3jmssFi9eXBEREerRo4cWLlxoG/Obb76RJIWEhMhisWjp0qU6e/as4uLilDdvXr3yyisaNGiQpk+frv3792v79u369NNPNX36dEnSCy+8oL1792rIkCGKiYnRnDlzFB0d7ehTBAA5Hk0jAIfLkyePNmzYoGLFiqlt27aqUKGCevbsqRs3btiSx5dfflldu3ZVRESE6tatq7x586pNmzZ3HHfixIlq3769+vbtq/Lly6tXr166evWqJOmBBx7QyJEj9dprrykgIED9+/eXJL311lt68803FRUVpQoVKqhp06ZatmyZSpQoIUkqVqyYvv32Wy1cuFBVq1bVpEmT9O677zrw7ADAf4PFSG+WOQAAAPD/kTQCAADAFE0jAAAATNE0AgAAwBRNIwAAAEzRNAIAAMAUTSMAAABM0TQCAADAFE0jAAAATNE0AgAAwBRNIwAAAEzRNAIAAMDU/wOmgYdtNuy9EQAAAABJRU5ErkJggg==\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "RandomForestClassifier with tuning:" + ], + "metadata": { + "id": "UMdZFkU_Ag6L" + } + }, + { + "cell_type": "code", + "source": [ + "# initialise a range of hyperparameters to loop over\n", + "n_estimators_range = [1, 3, 5, 10, 50, 100, 250, 500, 1000]\n", + "max_depth_range = [1, 5, 10, 20, 30, None]\n", + "\n", + "# matrix to store the accuracy of each hyperparameter pair\n", + "accuracy_matrix = np.zeros((len(max_depth_range), len(n_estimators_range)))\n", + "\n", + "# variable to track\n", + "best_accuracy = 0\n", + "best_n_estimators = None\n", + "best_max_depth = None\n", + "\n", + "# looping over each hyperparam value\n", + "for i, max_depth in enumerate(max_depth_range):\n", + " for j, n_estimators in enumerate(n_estimators_range):\n", + " rfc = RandomForestClassifier(n_estimators=n_estimators, max_depth=max_depth, random_state=0)\n", + " rfc.fit(X_train, y_train)\n", + "\n", + " y_pred = rfc.predict(X_test)\n", + " accuracy = accuracy_score(y_test, y_pred)\n", + " accuracy_matrix[i, j] = accuracy\n", + "\n", + " if accuracy > best_accuracy:\n", + " best_accuracy = accuracy\n", + " best_n_estimators = n_estimators\n", + " best_max_depth = max_depth\n", + "\n", + "# heatmap of accuracies\n", + "plt.figure(figsize=(10, 5))\n", + "sns.heatmap(accuracy_matrix, annot=True, fmt=\".3f\", cmap=\"YlGnBu\",\n", + " xticklabels=n_estimators_range,\n", + " yticklabels=[str(depth) if depth is not None else \"None\" for depth in max_depth_range])\n", + "plt.title('Accuracy for different n_estimators and max_depth values')\n", + "plt.xlabel('n_estimators')\n", + "plt.ylabel('max_depth')\n", + "plt.show()\n", + "\n", + "print(f\"Best Accuracy: {best_accuracy:.3f}\")\n", + "print(f\"Best n_estimators: {best_n_estimators}\")\n", + "print(f\"Best max_depth: {best_max_depth}\")\n" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 539 + }, + "id": "xXRRktXOBJVE", + "outputId": "2411cb09-4bd8-48a6-8853-b07593bcf9b9" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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rnHw8/ODr6+vUppMJquy8k+cOIHFixdj9erVcHNzQ3R0NKZMmYKFCxfC398fANC3b19F/hYtWsDNzQ0NGjTAzp078cUXX5R7X+w4EBERERG9JTKZrNwdBXNzc2hoaCAxMVEpPTExsdT1Cf7+/hgxYgRGjx4NAGjevDmys7MxduxYzJ49G1Kp6gQjExMTNGnSBNHR0RU6Fk5VIiIiIiIqSVqFrwrQ1taGq6srQkJCFGlyuRwhISFo37696DY5OTkqnQMNDQ0AgCAIottkZWUhJiYG1tbWFaofRxyIiIiIiEpS4+1YfX194eXlhTZt2qBt27YICgpCdna24i5LI0eORJ06dRTrJNzd3bFs2TK4uLgopir5+/vD3d1d0YGYOnUq3N3d0aBBAzx+/BgBAQHQ0NCAh4dHherGjgMRERERUQ0xfPhwPH36FHPnzkVCQgJatWqFI0eOKBZMx8fHK40wzJkzBxKJBHPmzMGjR49gYWEBd3d3LFq0SJHn4cOH8PDwwLNnz2BhYYFOnTrh3LlzsLCwqFDdJEJpYxj/w8KSDqm7CjVOe8vG6q5CjdPjz6fqrgIREdG/VkjfjuquQqmadFhbZWXdOTuuyspSN444EBERERGVxFXAohgWIiIiIiIqE0cciIiIiIhKENS4OLomY8eBiIiIiKgk9htEcaoSERERERGViSMOREREREQlSTnkIIYdByIiIiKikrjGQRSnKhERERERUZk44kBEREREVBIHHESx4/AvoVs/QN1VqHFCL32m7irUON3bbFV3FWocm26D1F0F+h9g+0lddVehxonb8VDdVaCarq+6K/AaXOMgilOViIiIiIioTBxxICIiIiIqiYujRbHjQERERERUEvsNojhViYiIiIiIysQRByIiIiKikrg4WhQ7DkREREREJbHfIIpTlYiIiIiIqEwccSAiIiIiKkHgXZVEseNARERERFQS1ziI4lQlIiIiIiIqE0cciIiIiIhK4oCDKHYciIiIiIhK4hoHUZyqREREREREZeKIAxERERFRSVwcLYodByIiIiKikthvEMWpSkREREREVCaOOBARERERlcTF0aLYcSAiIiIiKokdB1GcqkRERERERGXiiAMRERERUUm8tC6KHQciIiIiopI4VUkU+1NERERERFQmjjgQEREREZXEAQdR7DgQEREREZUg8MnRojhViYiI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27YtgoKCkJ2dDW9vbwDAyJEjUadOHcV6BXd3dyxbtgwuLi6KqUr+/v5wd3eHhoYGDA0NlX5fA4C+vj5q1aqlkl4WiSC8MoZVjebPn6/073bt2qF3796Kf0+bNg0PHz7Eb7/9VqFyw5IOVUn93iXd22xVdxVqnNBLn6m7CjUO24kqm26D1F0F+h9g+4n4ouR/s7gd4nd4Inoh5pfhZWdSk4ajd1VZWbHrh1Z4m5UrV+K7775DQkICWrVqheXLl8PNzQ0A0LVrV9ja2mLz5s0AgMLCQixatAhbtmzBo0ePYGFhAXd3dyxatAgmJiai5Xft2hWtWrVCUFBQheql1o7D28KOgyr+IFTFjoMqthNV7DhQebDjoIodBypLje44jN1dZWXFrhtSZWWpm9qnKhERERER1SiVeHDbv0GNuasSERERERHVXBxxICIiIiIqSU13Varp2HEgIiIiIiqJc3JEMSxERERERFQmjjgQEREREZXExdGi2HEgIiIiIiqJaxxEcaoSERERERGViSMOREREREQlCJyqJIodByIiIiKikjgnRxTDQkREREREZeKIAxERERFRSVwcLYodByIiIiKikrjGQRSnKhERERERUZk44kBEREREVBKnKolix4GIiIiIqCT2G0RxqhIREREREZWJIw5ERERERCUInKokih0HIiIiIqKS2HEQxalKRERERERUJo44EBERERGVxOc4iGLHgYiIiIioJM7JEcWwEBERERFRmTjiQERERERUEqcqiWLHgYiIiIioJN5VSdQ72XGYE26i7irUODbdBqm7CjXOZ9Oy1F0Fov9Jtp/UVXcVapy4HQ/VXQUiorfunew4EBERERFVGkccRLHjQERERERUgsA1DqJ4VyUiIiIiIioTRxyIiIiIiEripXVR7DgQEREREZXEqUqi2J8iIiIiIqIyccSBiIiIiKgk3lVJFDsOREREREQlseMgilOViIiIiIioTBxxICIiIiIqiQMOothxICIiIiIqQeBUJVGcqkREREREVIOsWrUKtra20NHRgZubGy5cuPDa/EFBQXBwcICuri7q1asHHx8fPH/+XPH+mjVr0KJFCxgZGcHIyAjt27fHn3/+WeF6seNARERERFSSRFJ1rwoKDg6Gr68vAgICEBERgZYtW6J3795ISkoSzb99+3bMnDkTAQEBiIqKwoYNGxAcHIxZ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48bBxMSksrshIiIiIqpWVTlVqaKGDx+Op0+fYu7cuUhISECrVq1w5MgRxYLp+Ph4pRGGOXPmQCKRYM6cOXj06BEsLCzg7u6ORYsWKfKsWbMGANC1a1elfW3atAmjRo0qd90kwosxjLfAyMgIV65cQcOGDd/WLkT1+PNMte7vf0HcjofqrgL9D3h8/Hd1V6HGsek2SN1VqHFsP6n4vNh3Hc+xRBUX88twdVehVP3/+qfKyjrUq1OVlaVub/XJ0W+xT0JERERERNWo0lOViIiIiIjeRepaHF3TseNARERERFSCOtc41GRvdaoSERERERG9GzjiQERERERUAq+si3urHYfOnTtX6N6wRERERETqxqlK4irVodq8ebNoemFhIfz8/BT/Pnz4MKytrStVMSIiIiIiqjkq1XGYPHkyhg4ditTUVEXa7du34ebmht9++63KKkdEREREVN0kEqHKXu+SSnUcLl++jIcPH6J58+Y4duwYVq1ahdatW6Np06a4evVqVdeRiIiIiKjaSCVV93qXVGqNg729Pc6cOYP//Oc/6NOnDzQ0NPDLL7/Aw8OjqutHREREREQ1QKUXjR86dAg7duxA+/btYWJigg0bNuDx48dVWTciIiIiomonrcLXu6RSx/Pll19i6NChmDFjBk6fPo1r165BW1sbzZs3x86dO6u6jkRERERE1UYqEars9S6p1FSlM2fO4Pz582jZsiUAoHbt2jh8+DBWrVqFzz//HMOGDavSShIRERERkXpVquMQHh4OmUymkj5hwgT07NnzjStFRERERKQu79qi5qpSqY6DWKfhBQcHh0pXhoiIiIhI3d61tQlVpdJPjt69ezd27tyJ+Ph45OfnK70XERHxxhUjIiIiIqKao1IdquXLl8Pb2xtWVla4fPky2rZti1q1aiE2NhZ9+/at6joSEREREVUbPsdBXKU6DqtXr8a6deuwYsUKaGtrY/r06Th27BgmT56M9PT0qq4jEREREVG14V2VxFWq4xAfH48OHToAAHR1dZGZmQkAGDFiBH777beqqx0REREREdUIleo41K5dGykpKQCA+vXr49y5cwCAe/fuQRDerZ4VEREREf27cKqSuEotju7evTsOHDgAFxcXeHt7w8fHB7t378alS5cwePDgCpd34cIFhIWFISEhAUBxx6R9+/Zo27ZtZapXZQbWr41hdnVg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hPjLGJYO7d27F0OHDoWFhQXu3buHiIgI+Pn5wd3dHUqlElFRUdi3b1+tk4d+e47XXOk5kxau/e4jRNXdOrRd6hD0jnMfH6lD0DuuI7RflPw843ssUe2lrPetuZJEYnN+r7NtdbMbXKv6mzZtwrhx47B69Wr06NEDy5Ytw+bNm3H58mU4ODjAz88PjRs3Vl1gPXfuXCxduhRr1qxRTVWaOnUqPDw8sGnTpsfa5uOSdMQhLCwMs2bNwueff47w8HCMGjUKU6dOxRdffAGg6mKSBQsWSDbqQERERETPHylvO+rr64vbt28jJCQEmZmZ6Ny5M/bu3av6gp+enq42wvDpp59CJpPh008/xc2bN2Fvb48hQ4aovk8/zjYfl6QjDlZWVoiLi0PLli2hVCohl8tx6tQpdOnSBQBw/vx5eHt7q659eFwccdDEX8PocXDEQRNHHDRxxEET32OJak+fRxzO1OGIQ9dajjjoM8mvcZD977J1AwMDmJqawsrqz9s4WlpaoqCg4GGrEhERERHVOZlMst/V9ZqkD4BzdXVFcvKftxCLjo5G06ZNVX+np6fDyclJitCIiIiI6Dklq8PlWSLpiMPUqVNRWfnng3g6dOig9vqePXt4fQMRERERkR6QNHGYMmXKI1//v//7Px1FQkRERERUpS4fAPcskfwaByIiIiIifcK8QTtJr3EgIiIiIqKnA0cciIiIiIiqMeCQg1ZMHIiIiIiIqmHeoB2nKhERERERUY044kBEREREVA3vqqQdEwciIiIiomqYN2jHqUpERERERFQjjjgQEREREVXDEQftmDgQEREREVXD27Fqx6lKRERERERUI444EBERERFVwwEH7Zg4EBERERFVI5MJqUPQS5yqRERERERENeKIAxERERFRNZyqpB0TByIiIiKiavjkaO04VYmIiIiIiGrEEQciIiIiomr4y7p2TByIiIiIiKrhVCXtmFAREREREVGNOOJARERERFQNBxy0Y+JARERERFQNpyppx6lKRERERERUI444EBERERFVwwEH7Zg4EBERERFVY8DMQStOVSIiIiIiohpxxIGIiIiIqBoOOGjHxIGIiIiIqBqZTEgdgl7iVCUiIiIiIqoRRxyIiIiIiKrhVCXtmDgQEREREVXDB8Bpx6lKRERERERUI444EBERERFVwwEH7TjiQERERERUjUEdLn/H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OgS9w/dYotpLWe9bcyWJ3Ks4WmfbMjd6uc62JTW9GHH45ptvsHLlSvj5+anKXn/9dbRv3x5z586tdeJARERERPT38Xas2uhF4pCRkYGePXtqlPfs2RMZGdovliMiIiIiqg+cqqSdXqRTLVu2xObNmzXKN23ahFatpH3qKxERERER6cmIw7x58+Dr64sjR46ornE4fvw4IiMjtSYURERERET1Req7e+orvUgc3nrrLcTExGDp0qXYvn07AKBt27Y4deoUunTpIm1wRERERPScYeKgjV4kDgDg4eGBDRs2SB0GERERERFpIWniYGBgUONQkEwmQ0VFhY4iIiIiIqLnnUw/LgPWO5ImDhEREQ99LTo6GsuXL4dSqXxoHSIiIiKiusepStpImjgMHTpUoywpKQlz5szBrl27MHr0aISFhUkQGRERERERVac34zC3bt3CpEmT0LFjR1RUVCAhIQHr16+Hi4uL1KERERER0XNEJpPV2fIskTxxKCgowOzZs9GyZUtcuHABkZGR2LVrFzp06CB1aERERET0XJLV4fLskHSq0qJFi7Bw4UI4Ojpi48aNWqcuERERERGR9CRNHObMmQMzMzO0bNkS69evx/r167XW27Ztm44jIyIiIqLnFe+qpJ2kiYOfn98zN/eLiIiIiJ52/H6qjaSJw7p166TcPRERERERPSa9eXI0EREREZE+kHHEQSsmDkRERERE1XAqvXa88oOIiIiIiGrEEQciIiIiIjX8bV0bJg5ERERERNXwGgftmE4REREREVGNOOJARERERKSGIw7aMHEgIiIiIqqGd1XSjlOViIiIiIj0yIoVK+Dq6gpTU1N4enri1KlTD63bu3dvyGQyjWXw4MGqOkVFRQgICECTJk1gZmaGdu3aYdWqVbWOiyMORERERERqpPttfdOmTQgMDMSqVavg6emJZcuWYcCAAUhKSkKjRo006m/btg1lZWWqv+/cuQN3d3cMHz5cVRYYGIiDBw/il19+gaurK/bt24f33nsPzs7OeP311x87No44EBERERFVI6vD/2pr6dKlmDRpEvz9/VUjA+bm5vjhhx+01re1tYWjo6Nq2b9/P8zNzdUShxMnTmDcuHHo3bs3XF1dMXnyZLi7uz9yJEMbJg5ERERERPWktLQUhYWFaktpaanWumVlZYiLi4O3t7eqzMDAAN7e3oiOjn6s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mDVrligoKFDbTlpamhg0aJAwMzMTdnZ24sMPPxTl5eUSHNGTq4vz5GlvD12dJ2fPnhUvvfSSkMvlonHjxmLBggW6OkTSUzIhhNDFyAYRERERET29eI0DERERERHViIkDERERERHViIkDERERERHViIkDERERERHViIkDERERERHViIkDERERERHViIkDERERERHViIkDERERERHViIkDEZGecHV1xbJly6QOg4iISCsmDkREOrZu3TpYW1trlJ8+fRqTJ0+u9/0zQSEior/DSOoAiIioir29vdQh1EpZWRlMTEykDoOIiHSEIw5E9Nzq3bs3pk+fjo8++gi2trZwdHTE3LlzH2vd/Px8TJw4Efb29lAoFOjbty/Onj2rev3s2bPo06cPLC0toVAo4OHhgdjYWBw+fBj+/v4oKCiATCaDTCZT7fOvIwEymQyrV6/GP//5T5ibm6Nt27aIjo7G1atX0bt3bzRo0AA9e/ZESkqKap2UlBQMHToUDg4OsLCwQPfu3XHgwAG1Y75+/TpmzJih2v8Dv/76K9q3bw+5XA5XV1d8+eWXasfs6uqKzz77DH5+flAoFJg8eTLKysoQEBAAJycnmJqawsXFBfPnz6/FvwIRET0tmDgQ0XNt/fr1aNCgAWJiYrBo0SKEhYVh//79Na43fPhwZGdnY8+ePYiLi0PXrl3Rr18/5ObmAgBGjx6NJk2a4PTp04iLi8OcOXNgbGyMnj17YtmyZVAoFMjIyEBGRgZmzpz50P08+KKekJCANm3aYNSoUXj33XcRFBSE2NhYCCEQEBCgql9UVIR//OMfiIyMRHx8PAYOHIghQ4YgPT0dALBt2zY0adIEYWFhqv0DQFxcHN5++22MGDEC586dw9y5cxEcHIx169apxbNkyRK4u7sjPj4ewcHBWL58OXbu3InNmzcjKSkJGzZsgKuray3/FYiI6KkgiIieU6+++qp46aWX1Mq6d+8uZs+e/cj1jh49KhQKhSgpKVErb9GihVi9erUQQghLS0uxbt06rev/+OOPwsrKSqPcxcVFfPXVV6q/AYhPP/1U9Xd0dLQAINauXasq27hxozA1NX1kvO3btxfffPPNQ/cjhBCjRo0Sr732mlrZrFmzRLt27dTW8/HxUavz/vvvi759+wqlUvnIGIiI6OnHEQcieq516tRJ7W8nJydkZ2c/cp2zZ8+iqKgIDRs2hIWFhWpJTU1VTRsKDAzExIkT4e3tjQULFqhNJ/q78Tk4OAAAOnbsqFZWUlKCwsJCAFUjDjNnzkTbtm1hbW0NCwsLXLp0STXi8DCXLl1Cr1691Mp69eqF5ORkVFZWqsq6deumVmf8+PFISEiAm5sbpk+fjn379v2t4yQiIv3Hi6OJ6LlmbGys9rdMJoNSqXzkOkVFRXBycsLhw4c1Xntwt6S5c+di1KhR+P3337Fnzx6EhoYiPDwcb7zxxt+O78H1CNrKHsQ8c+ZM7N+/H0uWLEHLli1hZmaGYcOGoaysrFb7fZgGDRqo/d21a1ekpqZiz549OHDgAN5++214e3tj69atdbI/IiLSH0wciIhqqWvXrsjMzISRkdEj5/O3bt0arVu3xowZMzBy5Ej8+OOPeOONN2BiYqL2K35dOn78OMaPH69KUIqKipCWlqZWR9v+27Zti+PHj2tsq3Xr1jA0NHzkPhUKBXx9feHr64thw4Zh4MCByM3Nha2t7ZMfEBER6Q1OVSIiqiVvb294eXnBx8cH+/btQ1paGk6cOIFPPvkEsbGxuH//PgICAnD48GFcv34dx48fx+nTp9G2bVsAVXcnKioqQmRkJHJycnDv3r06i61Vq1bYtm0bEhIScPbsWYwaNUpjBMXV1RVHjhzBzZs3kZOTAwD48MMPERkZic8++wxXrlzB+vXr8e233z7ywm0AWLp0KTZu3IjLly/jypUr2LJlCxwdHbU+p4KIiJ5uTByIiGpJJpNh9+7deOWVV+Dv74/WrVtjxIgRuH79OhwcHGBoaIg7d+7Az88PrVu3xttvv41BgwZh3rx5AICePXtiypQp8PX1hb29PRYtWlRnsS1duhQ2Njbo2bMnhgwZggEDBqBr165qdcLCwpCWloYWLVqonh3RtWtXbN68GeHh4ejQoQNCQkIQFhaG8ePHP3J/lpaWWLRoEbp164bu3bsjLS0Nu3fvhoEBP16IiJ41MiGEkDoIIiIiIiLSb/xJiIiIiIiIasTEgYjoLzZs2KB2m9XqS/v27aUOj4iISBKcqkRE9Bd3795FVlaW1teMjY3h4uKi44iIiIikx8SBiIiIiIhqxKlKRERERERUIyYORERERERUIyYORERERERUIyYORERERERUIyYORERERERUIyYORERERERUIyYORERERERUo/8H0wiLbrHi4S4AAAAASUVORK5CYII=\n" + }, + "metadata": {} + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Best Accuracy: 0.860\n", + "Best n_estimators: 3\n", + "Best max_depth: 5\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "Pre-process: encode categorical variables" + ], + "metadata": { + "id": "3QRK2tBj_EUI" + } + }, + { + "cell_type": "code", + "source": [ + "encoder = OneHotEncoder(drop='first', sparse_output=False)\n", + "\n", + "y_train_encoded = encoder.fit_transform(y_train.values.reshape(-1, 1)).ravel()\n", + "y_test_encoded = encoder.transform(y_test.values.reshape(-1, 1)).ravel()\n", + "\n", + "# rename y_train and y_test for convenience\n", + "y_train = y_train_encoded\n", + "y_test = y_test_encoded" + ], + "metadata": { + "id": "oRu7kR48BnF4" + }, + "execution_count": 13, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "SVC classifier with default params" + ], + "metadata": { + "id": "mUYkdx6o4edT" + } + }, + { + "cell_type": "code", + "source": [ + "# svc with default params\n", + "svc = SVC()\n", + "svc.fit(X_train, y_train)\n", + "\n", + "# get training accuracy\n", + "svc_train_predictions = svc.predict(X_train)\n", + "svc_train_accuracy = accuracy_score(y_train, svc_train_predictions)\n", + "svc_train_report = classification_report(y_train, svc_train_predictions)\n", + "\n", + "print(f\"Training Accuracy: {svc_train_accuracy:.4f}\\n\")\n", + "print(\"Classification Report of Training Results:\")\n", + "print(svc_train_report)\n", + "\n", + "# get testing accuracy\n", + "svc_test_predictions = svc.predict(X_test)\n", + "svc_test_accuracy = accuracy_score(y_test, svc_test_predictions)\n", + "svc_test_report = classification_report(y_test, svc_test_predictions)\n", + "\n", + "print(f\"Testing Accuracy: {svc_test_accuracy:.4f}\")\n", + "print(\"Classification Report of Testing Results:\")\n", + "print(svc_test_report)\n", + "\n", + "# confusino matrix of the testing accuracy\n", + "cm = confusion_matrix(y_test, svc_test_predictions)\n", + "plt.figure(figsize=(8, 6))\n", + "sns.heatmap(cm, annot=True, fmt='d', cmap='Blues',\n", + " xticklabels=['No', 'Yes'],\n", + " yticklabels=['No', 'Yes'])\n", + "plt.xlabel('Predicted Label')\n", + "plt.ylabel('True Label')\n", + "plt.title('Confusion Matrix for Testing Results')\n", + "plt.show()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 + }, + "id": "aDKZXhKd4mAj", + "outputId": "98e68bd9-1b61-4137-935e-6e00b61b22a3" + }, + "execution_count": 14, + "outputs": [ + { + "output_type": "stream", + "name": "stderr", + "text": [ + "/usr/local/lib/python3.10/dist-packages/sklearn/metrics/_classification.py:1531: UndefinedMetricWarning: Precision is ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.\n", + " _warn_prf(average, modifier, f\"{metric.capitalize()} is\", len(result))\n", + "/usr/local/lib/python3.10/dist-packages/sklearn/metrics/_classification.py:1531: UndefinedMetricWarning: Precision is ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.\n", + " _warn_prf(average, modifier, f\"{metric.capitalize()} is\", len(result))\n", + "/usr/local/lib/python3.10/dist-packages/sklearn/metrics/_classification.py:1531: UndefinedMetricWarning: Precision is ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.\n", + " _warn_prf(average, modifier, f\"{metric.capitalize()} is\", len(result))\n", + "/usr/local/lib/python3.10/dist-packages/sklearn/metrics/_classification.py:1531: UndefinedMetricWarning: Precision is ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.\n", + " _warn_prf(average, modifier, f\"{metric.capitalize()} is\", len(result))\n", + "/usr/local/lib/python3.10/dist-packages/sklearn/metrics/_classification.py:1531: UndefinedMetricWarning: Precision is ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.\n", + " _warn_prf(average, modifier, f\"{metric.capitalize()} is\", len(result))\n", + "/usr/local/lib/python3.10/dist-packages/sklearn/metrics/_classification.py:1531: UndefinedMetricWarning: Precision is ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.\n", + " _warn_prf(average, modifier, f\"{metric.capitalize()} is\", len(result))\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Training Accuracy: 0.5130\n", + "\n", + "Classification Report of Training Results:\n", + " precision recall f1-score support\n", + "\n", + " 0.0 0.00 0.00 0.00 75\n", + " 1.0 0.51 1.00 0.68 79\n", + "\n", + " accuracy 0.51 154\n", + " macro avg 0.26 0.50 0.34 154\n", + "weighted avg 0.26 0.51 0.35 154\n", + "\n", + "Testing Accuracy: 0.5600\n", + "Classification Report of Testing Results:\n", + " precision recall f1-score support\n", + "\n", + " 0.0 0.00 0.00 0.00 22\n", + " 1.0 0.56 1.00 0.72 28\n", + "\n", + " accuracy 0.56 50\n", + " macro avg 0.28 0.50 0.36 50\n", + "weighted avg 0.31 0.56 0.40 50\n", + "\n" + ] + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAoAAAAIjCAYAAACTRapjAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABH3UlEQVR4nO3deVxU5fv/8feAMqBs4oak4oK7uFam5G6iZrmVaZbgnmGluJSf3LMoy6XMpU/lkmlllvZJyyXXMrXU1FIzQdRK3EMDERXO7w9/zLcRTAYZBjmvZ4/zeDT3OXPu6xyGurju+9xjMQzDEAAAAEzDzdUBAAAAIG+RAAIAAJgMCSAAAIDJkAACAACYDAkgAACAyZAAAgAAmAwJIAAAgMmQAAIAAJgMCSAAAIDJkADCNA4fPqy2bdvKz89PFotFK1asyNXzHz16VBaLRQsWLMjV897JWrRooRYtWuTa+ZKSktS/f38FBgbKYrFo6NChuXbu/MpisWjChAmuDiNfyu3PF2AmJIDIU3FxcRo0aJAqVaokT09P+fr6KiwsTG+++aZSUlKc2ndERIR+/vlnvfzyy1q0aJHuvvtup/aXlyIjI2WxWOTr65vlfTx8+LAsFossFoveeOMNh89/4sQJTZgwQXv27MmFaHPulVde0YIFCzR48GAtWrRITz75pFP6mTBhgu1+/duWW8nHV199le+SvIw/aDI2Nzc3BQQEqH379tq2bZurw8tSfvmcAneCQq4OAOaxatUqPfroo7Jarerdu7dq166tK1eu6LvvvtPIkSO1f/9+/fe//3VK3ykpKdq2bZtefPFFDRkyxCl9BAcHKyUlRYULF3bK+W+lUKFCunTpkr788kt1797dbt/ixYvl6empy5cv5+jcJ06c0MSJE1WhQgXVq1cv2+9bu3Ztjvq7mQ0bNui+++7T+PHjc/W8N+ratatCQkJsr5OSkjR48GB16dJFXbt2tbWXLl06V/r76quvNGvWrCyTwJSUFBUq5Lr/VPfs2VMdOnRQWlqafvvtN82ePVstW7bUjz/+qNDQUJfFlZWcfk4BMyIBRJ6Ij49Xjx49FBwcrA0bNqhMmTK2fVFRUYqNjdWqVauc1v+ZM2ckSf7+/k7rw2KxyNPT02nnvxWr1aqwsDB99NFHmRLAJUuW6MEHH9Rnn32WJ7FcunRJRYoUkYeHR66e9/Tp06pZs2aune/atWtKT0/PFGedOnVUp04d2+uzZ89q8ODBqlOnjp544olc6z87XPmZkqQGDRrYXXPTpk3Vvn17zZkzR7Nnz3ZhZABuB0PAyBNTpkxRUlKS3n//fbvkL0NISIiee+452+tr167ppZdeUuXKlWW1WlWhQgX95z//UWpqqt37KlSooI4dO+q7777TvffeK09PT1WqVEkffPCB7ZgJEyYoODhYkjRy5EhZLBZVqFBB0vWh04x//6eMIcB/Wrdune6//375+/vL29tb1apV03/+8x/b/pvNAdywYYOaNm2qokWLyt/fX506ddLBgwez7C82NlaRkZHy9/eXn5+f+vTpo0uXLt38xt7g8ccf19dff63ExERb248//qjDhw/r8ccfz3T8+fPnNWLECIWGhsrb21u+vr5q37699u7daztm06ZNuueeeyRJffr0sQ0JZlxnixYtVLt2be3atUvNmjVTkSJFbPflxjlaERER8vT0zHT94eHhKlasmE6cOJHldW3atEkWi0Xx8fFatWqVLYajR49Kup4Y9uvXT6VLl5anp6fq1q2rhQsX2p0j4+fzxhtvaMaMGbbP1oEDB7J1b7Py66+/6pFHHlFAQIA8PT11991363//+5/dMVevXtXEiRNVpUoVeXp6qnjx4rr//vu1bt06Sdc/g7NmzZIkuyHXDDfOAXTks5KSkqJnn31WJUqUkI+Pjx5++GH9+eeftzWvsGnTppKuT+f4p8TERA0dOlTlypWT1WpVSEiIXnvtNaWnp9sd9/HHH6thw4by8fGRr6+vQkND9eabb2a6vhstWLDA7md+o1t9Tg8fPqxu3bopMDBQnp6eKlu2rHr06KELFy7k6D4AdzoqgMgTX375pSpVqqQmTZpk6/j+/ftr4cKFeuSRRzR8+HDt2LFDMTExOnjwoJYvX253bGxsrB555BH169dPERERmjdvniIjI9WwYUPVqlVLXbt2lb+/v4YNG2YbzvL29nYo/v3796tjx46qU6eOJk2aJKvVqtjYWG3duvVf3/fNN9+offv2qlSpkiZMmKCUlBTNnDlTYWFh2r17d6bks3v37qpYsaJiYmK0e/duvffeeypVqpRee+21bMXZtWtXPfXUU/r888/Vt29fSderf9WrV1eDBg0yHX/kyBGtWLFCjz76qCpWrKhTp07pnXfeUfPmzXXgwAEF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\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "SVC with hyperparameter tuning" + ], + "metadata": { + "id": "KQ8Qd6px7YCl" + } + }, + { + "cell_type": "code", + "source": [ + "# initialise a range of hyperparameters to loop over\n", + "C_values = [0.001, 0.01, 0.1, 1, 10, 100, 1000, 10000]\n", + "kernel_types = ['linear', 'poly', 'rbf', 'sigmoid']\n", + "\n", + "# matrix to store the accuracy of each hyperparameter pair\n", + "accuracy_matrix = np.zeros((len(kernel_types), len(C_values)))\n", + "\n", + "# variables to track the best accuracy and corresponding hyperparameters\n", + "best_accuracy = 0\n", + "best_C = None\n", + "best_kernel = None\n", + "\n", + "# looping over each hyperparameter value\n", + "for i, kernel in enumerate(kernel_types):\n", + " for j, C in enumerate(C_values):\n", + " svc = SVC(C=C, kernel=kernel)\n", + " svc.fit(X_train, y_train)\n", + "\n", + " svc_test_predictions = svc.predict(X_test)\n", + " accuracy = accuracy_score(y_test, svc_test_predictions)\n", + " accuracy_matrix[i, j] = accuracy\n", + "\n", + " if accuracy > best_accuracy:\n", + " best_accuracy = accuracy\n", + " best_C = C\n", + " best_kernel = kernel\n", + "\n", + "# heatmap of accuracies\n", + "plt.figure(figsize=(10, 6))\n", + "sns.heatmap(accuracy_matrix, annot=True, fmt=\".2f\", cmap='Blues',\n", + " xticklabels=[f\"{C:.3f}\" for C in C_values],\n", + " yticklabels=kernel_types)\n", + "plt.title('Accuracy for different C values and kernel types')\n", + "plt.xlabel('C Value')\n", + "plt.ylabel('Kernel Type')\n", + "plt.show()\n", + "\n", + "print(f\"Best Accuracy: {best_accuracy:.3f}\")\n", + "print(f\"Best C: {best_C:.3f}\")\n", + "print(f\"Best Kernel: {best_kernel}\")" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 616 + }, + "id": "Go2iJS6045OA", + "outputId": "000ce619-442a-435f-c906-0e509f702e34" + }, + "execution_count": 15, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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eKxEEBERERGRUliJICIiIiIqhJWI4rESQURERERESmElgoiIiIioEFYiisdKBBERERERKYWVCCIiIiKiQliJKB6TCCIiIiKiwphDFIvTmYiIiIiISCmVshIRtLibukMgIipT225EqDuECmlfUIy6Q6iAnNUdQIWUlpKl7hCoDHE6U/FYiSAiIiIiIqVUykoEEREREVFpsRJRPFYiiIiIiIhIKaxEEBEREREVwkJE8ViJICIiIiIipbASQURERERUCNdEFI9JBBERERFRIcwhisfpTEREREREpBRWIoiIiIiICuF0puKxEkFEREREREphJYKIiIiIqBAWIorHSgQRERERESmFlQgiIiIiokK0tFiKKA4rEUREREREpBRWIoiIiIiICuGaiOIxiSAiIiIiKoRbvBaP05mIiIiIiEgprEQQERERERXCQkTxWIkgIiIiIiKlsBJBRERERFQI10QUj5UIIiIiIiJSCisRRERERESFsBJRPFYiiIiIiIhIKaxEEBEREREVwkJE8ZhEEBEREREVwulMxeN0JiIiIiIiUgorEUREREREhbAQUTxWIoiIiIiISCmsRBARERERFcI1EcVjJYKIiIiIiJTCSgQRERERUSEsRBSPlQgiIiIiIlIKKxFERERERIVwTUTxWIkgIiIiIiKlMIkgIiIiIipEJFLdozR++uknODg4QF9fH15eXrh27do7+69atQqurq4wMDBAzZo1MX36dGRnZ/+nc76NSQQRERERUSEikUhlD2Xt2rULfn5+WLBgAYKCgtCwYUN4e3sjLi5OYf/ff/8ds2bNwoIFC/Do0SNs3LgRu3btwpw5c0p9TkWYRBARERERaagVK1ZgwoQJGDNmDOrWrYt169bB0NAQmzZtUtj/0qVLaN26NT788EM4ODigW7duGD58uEylQdlzKsIkgoiIiIioEFVOZ8rJyUFaWprMIycnR2Ecubm5uHnzJrp06SJt09LSQpcuXXD58mWFx7Rq1Qo3b96UJg3h4eE4evQoevbsWepzKsIkgoiIiIionCxbtgympqYyj2XLlinsm5CQgIKCAtjY2Mi029jYICYmRuExH374IRYvXow2bdpAV1cXzs7O6NChg3Q6U2nOqQiTCCIiIiKiQlS5JmL27NlITU2VecyePbvMYj9z5gyWLl2KtWvXIigoCPv378eRI0ewZMmSMvse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IlavXg1nZ2e0bNkS+vr60NfXR6tWreDi4oIffvhB3eERERER0XtES6S6R2WhEWsizMzMcPDgQYSGhuLhw9eLgerWrQuXQnORiYiIiIhIM2hEEgEAGzduxMqVKxESEgIAqF27Nj777DOMHz9ezZERERER0fuksmynrEoakUT4+/tjxYoVmDJlClq2bAkAuHz5MqZPn47IyEgsXrxYzRESEREREdEbGpFE/Pzzz9iwYQOGDx8ubevbty8aNGiAKVOmMIkgIiIionLDQkTxNGJhdV5eHpo2ld9n3dPTE/n53K+ViIiIiEiTaEQSMWrUKPz8889y7evXr8eIESPUEBERERERva9EKvyvstCI6UzA64XVx48fR4sWLQAAV69eRWRkJHx8fODn5yftt2LFCnWFSERERETvgcq0FauqaEQScf/+fTRp0gQAEBYWBgCwtLSEpaUl7t+/L+3HlfJEREREROqnEUnE6dOn1R0CEREREREAfnBdEhqxJoKIiIiIiCoOjahEEBERERFpChYiivefKhHZ2dllFQcREREREVUQSicREokES5YsQfXq1WFsbIzw8HAAwPz587Fx48YyD5CIiIiIqDxpiUQqe1QWSicRX375JbZs2YJvv/0Wenp60vb69evj119/LdPgiIiIiIhI8yidRGzbtk16EzhtbW1pe8OGDfH48eMyDY6IiIiIqLyJRKp7VBZKL6yOjo6Gi4uLXLtEIkFeXl6ZBEVEREREpC7c4rV4Slci6tati/Pnz8u17927F40bNy6ToIiIiIiISHMpXYnw9/eHr68voqOjIZFIsH//fgQHB2Pbtm04fPiwKmIkIiIiIio3LEQUT+lKRL9+/fDXX3/h5MmTMDIygr+/Px49eoS//voLXbt2VUWMRERERESkQUp1s7m2bdvixIkTZR0LEREREZHaVaatWFWl1HesvnHjBh49egTg9ToJT0/PMguKiIiIiIg0l9JJRFRUFIYPH46LFy/CzMwMAJCSkoJWrVph586dqFGjRlnHSERERERUbliHKJ7SayLGjx+PvLw8PHr0CElJSUhKSsKjR48gkUgwfvx4VcRIREREREQaROlKxNmzZ3Hp0iW4urpK21xdXbFmzRq0bdu2TIMjIiIiIipvvE9E8ZROImrWrKnwpnIFBQWoVq1amQRFRERERKQuWswhiqX0dKbvvvsOU6ZM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cgStW7dWRTxERERERKThlE4izM3NUbVqVVXEQkRERESkdkrfA+E9pPQYLVmyBP7+/sjKylJFPEREREREpOGUrkQsX74cYWFhsLGxgYODA3R1dWWeDwoKKrPgiIiIiIjKG5dEFE/pJKJ///4qCIOIiIiIiCoKpZKI/Px8iEQijB07FjVq1FBVTEREREREasPdmYqn1JoIHR0dfPfdd8jPz1dVPEREREREpOGUXljdqVMnnD17VhWxEBERERGpnUikukdlofSaiB49emDWrFm4d+8ePD09YWRkJPN83759yyw4IiIiIqLyplWJ3uyritJJxCeffAIAWLFihdxzIpEIBQUF/z0qIiIiIiLSWEonERKJRBVxEBERERFpBC6sLt5/uiFfdnZ2WcVBREREREQVhNJJREFBAZYsWYLq1avD2NgY4eHhAID58+dj48aNZR4gEREREVF54sLq4imdRHz11VfYsmULvv32W+jp6Unb69evj19//bVMgyMiIiIiIs2jdBKxbds2rF+/HiNGjIC2tra0vWHDhnj8+HGZBkdEREREVN60RKp7VBZKJxHR0dFwcXGRa5dIJMjLyyuToIiIiIiISHMpnUTUrVsX58+fl2vfu3cvGjVqVBYxERERERGpjUiF/1UWSm/x6u/vD19fX0RHR0MikWD//v0IDg7Gtm3bcPjwYVXESERERERUbirTtCNVUboS0a9fP/z11184efIkjIyM4O/vj0ePHuGvv/5Cy5YtVREjERERERFpkBInEStXrpT+f9u2bXHixAnExcUhKysLFy5cQMuWLeHt7a2SIImIiIiIygsXVhevxEnEnDlzsG3bNoXPZWZmonv37khMTCyzwIiIiIiISDOVeE3E9u3bMWrUKJiZmaFv377S9oyMDHTv3h3x8fE4e/asSoIkIiIiIiovosp0VzgVKXESMXjwYKSkpGD48OE4cuQIOnTogMzMTPTo0QOxsbE4e/Ys7OzsVBkrERERERFpAKV2Zxo/fjySkpLQr18/HDx4EP7+/njx4gXOnj2LatWqqSpGIiIiIqJyU5nWLqiK0lu8zpw5E0lJSejcuTMcHBxw5swZ1KhRQxWxERERERGRBipxEjFw4ECZr3V1dWFpaYlp06bJtO/fv79sIiMiIiIiUgMuiSheiZMIU1NTma+HDx9e5sEQEREREambFrOIYpU4idi8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deeelvicFd1fN6NhYayHGb3dYWUixsOoVIz68TIS0l9PZ6pubojCe9X8cCwYgiBgZh932JoZIDEjByfuxeDbIl539K/KUy9QHZHwrlUXKnTo0CHp/7948QL+/v744IMP0KJFCwCv10Ts2bNHejdrZWTL39uHiKhCexqv+O7H9G6f/Xm/+E4kI/Wt3X+oZKIik4vvRDKi1vZXdwhF2nZDdfcV8WlaU2XnLk9qSyIKb0UlEomKXEEuEoneud+4IkwiiKiyYRJROkwilMckonSYRChPk5OI325GFd+plEZ61lDZucuT2hZWSyQSSCQSZGdno3379nj8+LG0rfBD2QSCiIiIiIhUS+1rIvT09HDv3j25m2QQEREREakD10QUTyPeuY8cORK//vqrusMgIiIiIoJIpLpHZaH2SgQA5OfnY9OmTTh58iQ8PT1hZGQk8/yKFSvUFBkREREREb1NI5KI+/fvo0mTJgCAJ0+eyDxXmW7KQURERESaj+8/i6cRScTp06fVHQIREREREZWQRiQRRERERESaQiMWDWs4jhERERERESmFlQgiIiIiokK4JqJ4rEQQEREREZFSWIkgIiIiIiqEdYjisRJBRERERERKYSWCiIiIiKgQrokoHpMIIiIiIqJCOFWneBwjIiIiIiJSCisRRERERESFcDpT8ViJICIiIiIipbASQURERERUCOsQxWMlgoiIiIiIlMJKBBERERFRIVwSUTxWIoiIiIiISCmsRBARERERFaLFVRHFYhJBRERERFQIpzMVj9OZiIiIiIhIKaxEEBEREREVIuJ0pmKxEkFEREREREphJYKIiIiIqBCuiSgeKxFERERERKQUViKIiIiIiArhFq/FYyWCiIiIiIiUwkoEEREREVEhXBNRPCYRRERERESFMIkoHqczERERERGRUliJICIiIiIqhDebKx4rEUREREREpBRWIoiIiIiICtFiIaJYrEQQEREREZFSWIkgIiIiIiqEayKKx0oEEREREREphZUIIiIiIqJCeJ+I4jGJICIiIiIqhNOZisfpTEREREREpBRWIoiIiIiICuEWr8VjJYKIiIiIiJTCSgQRERERUSFcE1E8ViKIiIiIiEgprEQQERERERXCLV6Lx0oEEREREZEG++mnn+Dg4AB9fX14eXnh2rVr7+yfkpKCTz/9FHZ2dhCLxahTpw6OHj0qfX7hwoUQiUQyDzc3N6ViYiWCiIiIiKgQTSpE7Nq1C35+fli3bh28vLywatUqeHt7Izg4GNbW1nL9c3Nz0bVrV1hbW2Pv3r2oXr06IiIiYGZmJtOvXr16OHnypPRrHR3l0gImEUREREREhWhp0HymFStWYMKECRgzZgwAYN26dThy5Ag2bdqEWbNmyfXftGkTkpKScOnSJejq6gIAHBwc5Prp6OjA1ta21HFxOhMRERERUTnJyclBWlqazCMnJ0dh39zcXNy8eRNdunSRtmlpaaFLly64fPmywmMOHTqEli1b4tNPP4WNjQ3q16+PpUuXoqCgQKZfSEgIqlWrBicnJ4wYMQKRkZFKXQcrEUREFYCjlZG6Q6iQvujkou4QKpxvToWqO4QKKUrdAVCZUmUdYtmyZVi0aJFM24IFC7Bw4UK5vgkJCSgoKICNjY1Mu42NDR4/fqzw/OHh4Th16hRGjBiBo0ePIjQ0FJ988gny8vKwYMECAICXlxe2bNkCV1dXvHz5EosWLULbtm1x//59VKlSpUTXwSSCiIiIiKiczJ49G35+fjJtYrG4zM4vkUhgbW2N9evXQ1tbG56enoiOjsZ3330nTSJ69Ogh7d+gQQN4eXnB3t4eu3fvxrhx40r0fZhEEBEREREVpsJShFgsLnHSYGlpCW1tbcTGxsq0x8bGFrmewc7ODrq6utDW1pa2ubu7IyYmBrm5udDT05M7xszMDHXq1EFoaMkrkVwTQURERESkgfT09ODp6YnAwEBpm0QiQWBgIFq2bKnwmNatWyM0NBQSiUTa9uTJE9jZ2SlMIAAgIyMDYWFhsLOzK3FsTCKIiIiIiAoRqfA/Zfn5+WHDhg3YunUrHj16hEmTJiEzM1O6W5OPjw9mz54t7T9p0iQkJSVh2rRpePLkCY4cOYKlS5fi008/lfaZMWMGzp49i2fPnuHSpUsYMGAAtLW1MXz48BLHxelMREREREQaaujQoYiPj4e/vz9iYmLQqFEjBAQESBdbR0ZGQkvr37pAzZo18ffff2P69Olo0KABqlevjmnTpuGLL76Q9omKisLw4cORmJgIKysrtGnTBleuXIGVlVWJ4xIJgiCU3WVqhux8dUdARESa4FJoorpDqHC4O1PpPLj/Ut0hVDhRa/urO4QiXQtPVdm5mzuZquzc5YmVCCIiIiKiQjTnVnOai2siiIiIiIhIKaxEEBEREREVxlJEsViJICIiIiIipbASQURERERUSGm2Yn3fsBJBRERERERKYSWCiIiIiKgQEQsRxWIlgoiIiIiIlMJKBBERERFRISxEFI9JBBERERFRYcwiisXpTEREREREpBRWIoiIiIiICuEWr8VjJYKIiIiIiJTCSgQRERERUSHc4rV4rEQQEREREZFSWIkgIiIiIiqEhYjisRJBRERERERKYSWCiIiIiKgwliKKxSSCiIiIiKgQbvFaPE5nIiIiIiIipbASQURERERUCLd4LR4rEUREREREpBRWIoiIiIiICmEhonisRBARERERkVJYiSAiIiIiKoyliGKxEkFEREREREphJYKIiIiIqBDeJ6J4akkiDh06VOK+ffv2VWEkRERERESkLLUkEf3795f5WiQSQRAEma/fKCgoKK+wiIiIiIh4n4gSUMuaCIlEIn0cP34cjRo1wrFjx5CSkoKUlBQcPXoUTZo0QUBAgDrCIyIiIqL3mEiFj8pC7WsiPvvsM6xbtw5t2rSRtnl7e8PQ0BATJ07Eo0eP1BgdERERERG9Te1JRFhYGMzMzOTaTU1N8ezZs3KPh4iIiIjec5WpZKAiat/itVmzZvDz80NsbKy0LTY2Fp9//jmaN2+uxsiIiIiIiEgRtVciNm3ahAEDBqBWrVqoWbMmAOD58+eoXbs2Dhw4oN7giIiIiOi9wy1ei6f2JMLFxQV3797FiRMn8PjxYwCAu7s7unTpIrNLExERERERaQa1JxHA6y1du3Xrhm7duqk7FCIiIiJ6z/Fz7OKpJYlYvXo1Jk6cCH19faxevfqdfadOnVpOURERERERUUmoJYlYuXIlRowYAX19faxcubLIfiKRiEkEEREREZUrFiKKp5Yk4unTpwr/n4iIiIhI7ZhFFEvtW7wWJggCBEFQdxhERERERPQOGpFEbNu2DR4eHjAwMICBgQEaNGiA7du3qzssIiIiInoPiVT4X2Wh9t2ZVqxYgfnz52Py5Mlo3bo1AODChQv4+OOPkZCQgOnTp6s5QiIiIiIiKkztScSaNWvw888/w8fHR9rWt29f1KtXDwsXLmQSQURERETlilu8Fk/t05levnyJVq1aybW3atUKL1++VENERERERET0LmpPIlxcXLB792659l27dqF27dpqiIiIiIiI3mciFT4qC7VPZ1q0aBGGDh2K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\n" + }, + "metadata": {} + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Best Accuracy: 0.920\n", + "Best C: 10.000\n", + "Best Kernel: linear\n" + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/year4/semester1/CT4101: Machine Learning/assignments/assignment1/code/assignment.py b/year4/semester1/CT4101: Machine Learning/assignments/assignment1/code/assignment.py new file mode 100644 index 00000000..fe2bf9a5 --- /dev/null +++ b/year4/semester1/CT4101: Machine Learning/assignments/assignment1/code/assignment.py @@ -0,0 +1,187 @@ +# -*- coding: utf-8 -*- +"""assignment.ipynb + +Automatically generated by Colab. + +Original file is located at + https://colab.research.google.com/drive/1ILT6kccc8NHrY7xonz-ERej4MkGAw1Qv + +Set up +""" + +from sklearn.ensemble import RandomForestClassifier +from sklearn.metrics import accuracy_score +from sklearn.metrics import accuracy_score, classification_report +from sklearn.metrics import accuracy_score, classification_report, confusion_matrix +from sklearn.metrics import confusion_matrix +from sklearn.model_selection import train_test_split +from sklearn.preprocessing import StandardScaler, LabelEncoder +from sklearn.svm import SVC +import matplotlib.pyplot as plt +import numpy as np +import pandas as pd +import seaborn as sns + +train_data = pd.read_csv('/content/drive/MyDrive/wildfires_training.csv') +test_data = pd.read_csv('/content/drive/MyDrive/wildfires_test.csv') + +X_train = train_data.drop(columns=['fire']) +y_train = train_data['fire'] + +X_test = test_data.drop(columns=['fire']) +y_test = test_data['fire'] + +"""RandomForestClassifier with default parameters:""" + +# intialise the randomforestclassifier with a set random seed +rfc = RandomForestClassifier(random_state=0) +rfc.fit(X_train, y_train) + +# train and get accuracy +train_predictions = rfc.predict(X_train) +train_accuracy = accuracy_score(y_train, train_predictions) +train_report = classification_report(y_train, train_predictions) + +print(f"Training Accuracy: {train_accuracy:.4f}\n") +print("Classification Report of Testing Results:") +print(train_report) + +# test and get accuracy +test_predictions = rfc.predict(X_test) +test_accuracy = accuracy_score(y_test, test_predictions) +test_report = classification_report(y_test, test_predictions) + +print(f"Testing Accuracy: {test_accuracy:.4f}") +print("Classification Report of Testing Results:") +print(test_report) + +# create a confusion matrix to visualise the data +cm = confusion_matrix(y_test, test_predictions) +plt.figure(figsize=(8, 6)) +sns.heatmap(cm, annot=True, fmt='d', cmap='Blues', + xticklabels=np.unique(y_test), yticklabels=np.unique(y_test)) +plt.ylabel('Actual') +plt.xlabel('Predicted') +plt.title('Confusion Matrix') +plt.show() + +"""RandomForestClassifier with tuning:""" + +# initialise a range of hyperparameters to loop over +n_estimators_range = [1, 3, 5, 10, 50, 100, 250, 500, 1000] +max_depth_range = [1, 5, 10, 20, 30, None] + +# matrix to store the accuracy of each hyperparameter pair +accuracy_matrix = np.zeros((len(max_depth_range), len(n_estimators_range))) + +# variable to track +best_accuracy = 0 +best_n_estimators = None +best_max_depth = None + +# looping over each hyperparam value +for i, max_depth in enumerate(max_depth_range): + for j, n_estimators in enumerate(n_estimators_range): + rfc = RandomForestClassifier(n_estimators=n_estimators, max_depth=max_depth, random_state=0) + rfc.fit(X_train, y_train) + + y_pred = rfc.predict(X_test) + accuracy = accuracy_score(y_test, y_pred) + accuracy_matrix[i, j] = accuracy + + if accuracy > best_accuracy: + best_accuracy = accuracy + best_n_estimators = n_estimators + best_max_depth = max_depth + +# heatmap of accuracies +plt.figure(figsize=(10, 6)) +sns.heatmap(accuracy_matrix, annot=True, fmt=".3f", cmap="YlGnBu", + xticklabels=n_estimators_range, + yticklabels=[str(depth) if depth is not None else "None" for depth in max_depth_range]) +plt.title('Accuracy for different n_estimators and max_depth values') +plt.xlabel('n_estimators') +plt.ylabel('max_depth') +plt.show() + +print(f"Best Accuracy: {best_accuracy:.3f}") +print(f"Best n_estimators: {best_n_estimators}") +print(f"Best max_depth: {best_max_depth}") + +"""SVC classifier with default params on the unprocessed data""" + +# svc with default params +svc = SVC() +svc.fit(X_train, y_train) + +# get training accuracy +svc_train_predictions = svc.predict(X_train) +svc_train_accuracy = accuracy_score(y_train, svc_train_predictions) +svc_train_report = classification_report(y_train, svc_train_predictions) + +print(f"Training Accuracy: {svc_train_accuracy:.4f}\n") +print("Classification Report of Training Results:") +print(svc_train_report) + +# get testing accuracy +svc_test_predictions = svc.predict(X_test) +svc_test_accuracy = accuracy_score(y_test, svc_test_predictions) +svc_test_report = classification_report(y_test, svc_test_predictions) + +print(f"Testing Accuracy: {svc_test_accuracy:.4f}") +print("Classification Report of Testing Results:") +print(svc_test_report) + +# confusino matrix of the testing accuracy +cm = confusion_matrix(y_test, svc_test_predictions) +plt.figure(figsize=(8, 6)) +sns.heatmap(cm, annot=True, fmt='d', cmap='Blues', + xticklabels=['No', 'Yes'], + yticklabels=['No', 'Yes']) +plt.xlabel('Predicted Label') +plt.ylabel('True Label') +plt.title('Confusion Matrix for Testing Results') +plt.show() + +"""SVC with hyperparameter tuning""" + +# initialise a range of hyperparameters to loop over +C_values = [0.001, 0.01, 0.1, 1, 10, 100, 1000, 10000] +kernel_types = ['linear', 'poly', 'rbf', 'sigmoid'] + +# matrix to store the accuracy of each hyperparameter pair +accuracy_matrix = np.zeros((len(kernel_types), len(C_values))) + +# variables to track the best accuracy and corresponding hyperparameters +best_accuracy = 0 +best_C = None +best_kernel = None + +# looping over each hyperparameter value +for i, kernel in enumerate(kernel_types): + for j, C in enumerate(C_values): + svc = SVC(C=C, kernel=kernel) + svc.fit(X_train, y_train) + + svc_test_predictions = svc.predict(X_test) + accuracy = accuracy_score(y_test, svc_test_predictions) + accuracy_matrix[i, j] = accuracy + + if accuracy > best_accuracy: + best_accuracy = accuracy + best_C = C + best_kernel = kernel + +# heatmap of accuracies +plt.figure(figsize=(10, 6)) +sns.heatmap(accuracy_matrix, annot=True, fmt=".2f", cmap='Blues', + xticklabels=[f"{C:.3f}" for C in C_values], + yticklabels=kernel_types) +plt.title('Accuracy for different C values and kernel types') +plt.xlabel('C Value') +plt.ylabel('Kernel Type') +plt.show() + +print(f"Best Accuracy: {best_accuracy:.3f}") +print(f"Best C: {best_C:.3f}") +print(f"Best Kernel: {best_kernel}") \ No newline at end of file