data_processor.py aktualisiert

This commit is contained in:
2025-08-04 13:43:30 +00:00
parent df24d79087
commit 95021ce680

View File

@@ -5704,23 +5704,29 @@ class DataProcessor:
"Starte Evaluation des besten Modells auf dem ungesehenen Testset...") "Starte Evaluation des besten Modells auf dem ungesehenen Testset...")
y_pred = best_classifier.predict(X_test) y_pred = best_classifier.predict(X_test)
accuracy = accuracy_score(y_test, y_pred) accuracy = accuracy_score(y_test, y_pred)
self.logger.info( self.logger.info(f"Finale Modell Genauigkeit auf dem Testset: {accuracy:.4f}")
f"Finale Modell Genauigkeit auf dem Testset: {accuracy:.4f}")
class_report_labels = list(best_classifier.classes_) # << KORRIGIERT # Erzeuge den Klassifikationsbericht als Dictionary für eine saubere Ausgabe
class_report = classification_report( report_dict = classification_report(
y_test, y_test,
y_pred, y_pred,
zero_division=0, zero_division=0,
labels=class_report_labels, labels=self.model.classes_,
target_names=[ target_names=[str(c) for c in self.model.classes_],
str(c) for c in class_report_labels]) output_dict=True
self.logger.info( )
f"Klassifikationsbericht auf dem Testset:\n{class_report}")
# Konvertiere das Dictionary in einen formatierten DataFrame für das Logging
report_df = pd.DataFrame(report_dict).transpose()
report_df['support'] = report_df['support'].astype(int) # Für saubere Darstellung
# Erstelle einen gut lesbaren String aus dem DataFrame
report_string = report_df.to_string()
self.logger.info(f"Klassifikationsbericht auf dem Testset:\n{report_string}")
cm = confusion_matrix(y_test, y_pred, labels=class_report_labels) cm = confusion_matrix(y_test, y_pred, labels=self.model.classes_)
self.logger.info( cm_df = pd.DataFrame(cm, index=self.model.classes_, columns=self.model.classes_)
f"Konfusionsmatrix auf dem Testset (Zeilen=Wahr, Spalten=Vorhersage):\n{cm}") self.logger.info(f"Konfusionsmatrix auf dem Testset (Zeilen=Wahr, Spalten=Vorhersage):\n{cm_df.to_string()}")
# Block für Feature Importance # Block für Feature Importance
try: try: