data_processor.py aktualisiert

This commit is contained in:
2025-08-04 13:43:30 +00:00
parent fa882099b5
commit b5fba4d556

View File

@@ -5704,23 +5704,29 @@ class DataProcessor:
"Starte Evaluation des besten Modells auf dem ungesehenen Testset...")
y_pred = best_classifier.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
self.logger.info(
f"Finale Modell Genauigkeit auf dem Testset: {accuracy:.4f}")
self.logger.info(f"Finale Modell Genauigkeit auf dem Testset: {accuracy:.4f}")
class_report_labels = list(best_classifier.classes_) # << KORRIGIERT
class_report = classification_report(
# Erzeuge den Klassifikationsbericht als Dictionary für eine saubere Ausgabe
report_dict = 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}")
labels=self.model.classes_,
target_names=[str(c) for c in self.model.classes_],
output_dict=True
)
# 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)
self.logger.info(
f"Konfusionsmatrix auf dem Testset (Zeilen=Wahr, Spalten=Vorhersage):\n{cm}")
cm = confusion_matrix(y_test, y_pred, labels=self.model.classes_)
cm_df = pd.DataFrame(cm, index=self.model.classes_, columns=self.model.classes_)
self.logger.info(f"Konfusionsmatrix auf dem Testset (Zeilen=Wahr, Spalten=Vorhersage):\n{cm_df.to_string()}")
# Block für Feature Importance
try: