This commit is contained in:
2025-06-18 14:31:08 +00:00
parent 1c9471a8dd
commit da30481b47

View File

@@ -9284,7 +9284,8 @@ class DataProcessor:
# Feature-Liste speichern (bleibt unverändert)
self._expected_features = feature_columns_ml
try:
patterns_data = {"feature_columns": self._expected_features, "target_classes": list(rf_classifier.classes_)} # << KORRIGIERT
# Wir verwenden die .classes_ vom besten gefundenen Modell
patterns_data = {"feature_columns": self._expected_features, "target_classes": list(best_classifier.classes_)} # << KORRIGIERT
patterns_dir = os.path.dirname(patterns_out)
if patterns_dir and not os.path.exists(patterns_dir):
os.makedirs(patterns_dir, exist_ok=True)
@@ -9293,18 +9294,17 @@ class DataProcessor:
self.logger.info(f"Erwartete Feature-Spalten und Klassen erfolgreich gespeichert in '{patterns_out}'.")
except Exception as e:
self.logger.error(f"FEHLER beim Speichern der Feature-Spalten in '{patterns_out}': {e}")
self.logger.debug(traceback.format_exc())
# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# +++ ENDE FEATURE-LISTEN SPEICHERUNG +++++++++++++++++++++++++++++++++++
# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# 5. Evaluation (Optional, aber empfohlen, um die Modellleistung zu bewerten)
self.logger.info("Starte Modellevaluation...")
y_pred = rf_classifier.predict(X_test_imputed) # << KORRIGIERT
self.logger.info("Starte Evaluation des besten Modells auf dem ungesehenen Testset...")
y_pred = best_classifier.predict(X_test_imputed) # << KORRIGIERT
accuracy = accuracy_score(y_test, y_pred)
self.logger.info(f"Modell Genauigkeit auf dem Testset: {accuracy:.4f}")
self.logger.info(f"Finale Modell Genauigkeit auf dem Testset: {accuracy:.4f}")
class_report_labels = list(rf_classifier.classes_) # << KORRIGIERT
class_report_labels = list(best_classifier.classes_) # << KORRIGIERT
class_report = classification_report(y_test, y_pred, zero_division=0, labels=class_report_labels, target_names=[str(c) for c in class_report_labels])
self.logger.info(f"Klassifikationsbericht auf dem Testset:\n{class_report}")