diff --git a/main.py b/main.py index 885664d..ad24fda 100644 --- a/main.py +++ b/main.py @@ -95,6 +95,7 @@ def main(): print(f"Training samples: {metrics['train_samples']}") print(f"Validation samples: {metrics['val_samples']}") print(f"Accuracy: {metrics['accuracy']:.2%}") + print(f"Cohen's Kappa: {metrics['kappa']:.4f}") print(f"Classes: {metrics['classes']}") print() diff --git a/src/classifier.py b/src/classifier.py index 901be1c..05eacf9 100644 --- a/src/classifier.py +++ b/src/classifier.py @@ -6,7 +6,7 @@ import numpy as np import rasterio from rasterio.transform import from_bounds from sklearn.model_selection import train_test_split -from sklearn.metrics import classification_report, accuracy_score, confusion_matrix +from sklearn.metrics import classification_report, accuracy_score, confusion_matrix, cohen_kappa_score from .data import RasterData, VectorData, load_raster, load_vector, extract_raster_values_by_polygons from .strategies import ClassificationStrategy @@ -80,11 +80,13 @@ class GISClassifier: # Evaluate y_pred = self.strategy.predict(X_val) accuracy = accuracy_score(y_val, y_pred) - + kappa = cohen_kappa_score(y_val, y_pred) + return { "train_samples": len(X_train), "val_samples": len(X_val), "accuracy": accuracy, + "kappa": kappa, "classes": list(self._classes), }