From 6196523ea03000d9bfbb8af86f885d3114886d2b Mon Sep 17 00:00:00 2001 From: nuluh Date: Sat, 21 Jun 2025 01:10:03 +0700 Subject: [PATCH] feat(notebooks): Add confusion matrix plotting loop for Sensor 1 models --- code/notebooks/stft.ipynb | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/code/notebooks/stft.ipynb b/code/notebooks/stft.ipynb index ca3bd5d..14dca7d 100644 --- a/code/notebooks/stft.ipynb +++ b/code/notebooks/stft.ipynb @@ -718,6 +718,31 @@ " print(f\"{name} on sensor1: Accuracy = {res['accuracy']:.2f}%\")\n" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from joblib import load\n", + "import matplotlib.pyplot as plt\n", + "from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay\n", + "\n", + "for i in results_sensor1:\n", + " model = load(f\"D:/thesis/models/sensor1/{i['model']}.joblib\")\n", + " y_pred = model.predict(x_test1)\n", + " cm = confusion_matrix(y_test, y_pred) # -> ndarray\n", + "\n", + " # get the class labels\n", + " labels = model.classes_\n", + "\n", + " # Plot\n", + " disp = ConfusionMatrixDisplay(confusion_matrix=cm, display_labels=labels)\n", + " disp.plot(cmap=plt.cm.Blues) # You can change colormap\n", + " plt.title(f\"{i['model']} Sensor A CM Training\")\n", + " plt.show()\n" + ] + }, { "cell_type": "code", "execution_count": null, @@ -855,7 +880,8 @@ "from sklearn.metrics import accuracy_score, classification_report\n", "# 4. Validate on Dataset B\n", "from joblib import load\n", - "svm_model = load('D:/thesis/models/sensor1/SVM.joblib')\n", + "# svm_model = load('D:/thesis/models/sensor1/SVM.joblib')\n", + "svm_model = load('D:/thesis/models/sensor1/SVM with StandardScaler and PCA.joblib')\n", "y_pred_svm = svm_model.predict(X1b)\n", "\n", "# 5. Evaluate\n",