diff --git a/brancheneinstufung.py b/brancheneinstufung.py index 5d71c5c9..1bdcae45 100644 --- a/brancheneinstufung.py +++ b/brancheneinstufung.py @@ -9235,7 +9235,7 @@ class DataProcessor: # Definieren der Hyperparameter, die getestet werden sollen. # WICHTIG: Die Parameternamen müssen mit dem Namen des Schritts in der Pipeline beginnen (z.B. 'classifier__...') param_grid = { - 'classifier__n_estimators': [100, 200], # Anzahl der Bäume + 'classifier__n_estimators': [200, 300], # Anzahl der Bäume 'classifier__max_depth': [10, 20, None], # Maximale Tiefe der Bäume (None = unbegrenzt) 'classifier__min_samples_split': [2, 5], # Mindestanzahl Samples für einen Split 'classifier__min_samples_leaf': [1, 2] # Mindestanzahl Samples in einem Blatt @@ -9313,8 +9313,10 @@ class DataProcessor: # Block für Feature Importance try: - self.logger.info("Feature Importance (Top 15):") - importances = rf_classifier.feature_importances_ # << Hier war es schon korrekt + # Greife auf den Schritt 'classifier' in der Pipeline zu, um das finale Modell zu bekommen + final_rf_model = best_classifier.named_steps['classifier'] + self.logger.info("Feature Importance des besten Modells (Top 15):") + importances = final_rf_model.feature_importances_ # << KORRIGIERT feature_importance_df = pd.DataFrame({ 'Feature': feature_columns_ml, 'Importance': importances