Commit Graph

636 Commits

Author SHA1 Message Date
8bee8ad693 bugfix 2025-06-27 09:40:07 +00:00
da71e14585 Add reindent.py script 2025-06-27 11:08:42 +02:00
2a988f4f81 bugfix 2025-06-27 09:06:32 +00:00
a8801b7017 bugfix 2025-06-27 09:05:00 +00:00
8b5b4d6be0 bugfix 2025-06-27 09:01:04 +00:00
d16318a9ab Reindented data_processor.py 2025-06-27 10:51:21 +02:00
ef413a1291 reindent.py hinzugefügt 2025-06-27 08:47:32 +00:00
6ac980f172 bugfix 2025-06-27 08:47:08 +00:00
f34223d95e bugfix 2025-06-27 08:37:23 +00:00
46d2fc77d2 bugfix 2025-06-27 08:28:40 +00:00
93624126f5 config.py aktualisiert 2025-06-27 08:23:12 +00:00
0a887af240 requirements.txt hinzugefügt 2025-06-27 08:12:27 +00:00
0751892183 brancheneinstufung2.py hinzugefügt 2025-06-27 08:11:43 +00:00
e1b51d2cc7 data_processor.py aktualisiert 2025-06-27 07:59:15 +00:00
7ee37f1fee data_processor.py hinzugefügt 2025-06-26 14:50:35 +00:00
4b92fa27a0 wikipedia_scraper.py hinzugefügt 2025-06-26 14:40:13 +00:00
667c34c259 google_sheet_handler.py hinzugefügt 2025-06-26 14:39:25 +00:00
0bafa67584 helpers.py hinzugefügt 2025-06-26 14:38:51 +00:00
ec73a6a4f4 config.py hinzugefügt 2025-06-26 14:35:40 +00:00
74c33d7239 bugfix 2025-06-20 16:20:54 +00:00
c881015346 Refactor: Reset auf v1.7.8 & Implementierung von Branchen-Gruppen für ML
- Code-Basis zurückgesetzt: Der Code wurde auf einen stabilen Stand (entsprechend der Diskussion um v1.7.8) zurückgesetzt, um persistente Initialisierungsfehler zu beheben und eine saubere Grundlage für weitere Verbesserungen zu schaffen.
- Branchen-Clustering implementiert: Um die Qualität der Features für das ML-Modell zu verbessern, wird nun nicht mehr die detaillierte Einzelbranche, sondern eine übergeordnete Branchen-Gruppe als Feature verwendet.
- Hartcodiertes Branchen-Mapping: Anstatt die Gruppen aus einer externen CSV-Datei zu laden (was zu Fehlern führte), ist das Mapping von Detail-Branche zu Branchen-Gruppe jetzt als statisches Dictionary direkt in der `Config`-Klasse hinterlegt. Dies eliminiert eine externe Abhängigkeit und erhöht die Stabilität.
- Angepasste Datenvorbereitung: Die Funktion `prepare_data_for_modeling` wurde überarbeitet. Sie führt nun das Mapping auf die Branchen-Gruppen durch und verwendet das Ergebnis für das One-Hot-Encoding. Die finale Feature-Liste wurde entsprechend angepasst.
- Code-Vereinfachung: Die Funktion `load_branch_mapping()` und zugehörige Logik wurden entfernt, da sie durch das hartcodierte Mapping obsolet geworden sind.
2025-06-20 16:16:15 +00:00
a7902ddd3e bugfix 2025-06-19 19:49:04 +00:00
46ab23db71 bugfix 2025-06-19 19:42:05 +00:00
33d035dfb3 bugfix 2025-06-19 19:27:39 +00:00
61d8610ed6 Refactor: Robuste Initialisierungs- und Konfigurationslogik in main()
- Umstrukturierung der `main()`-Funktion für eine saubere und robuste Initialisierungsreihenfolge: 1. Argumente parsen, 2. Logging einrichten, 3. Konfigurationsdaten laden, 4. Klassen initialisieren, 5. Modus ausführen.
- Fehlerbehebung `NameError`: Die Funktion `parse_arguments()` wurde außerhalb von `main()` platziert und greift für Default-Werte nun korrekt auf die zuvor definierte `Config`-Klasse zu. Alle Aufrufe im Skript sind auf die zentrale `Config`-Klasse umgestellt.
- Fehlerbehebung `TypeError`: Die Funktionen `load_target_schema()` und `load_branch_mapping()` geben jetzt in Fehlerfällen leere, aber typkorrekte Tupel/Dictionaries zurück, um Abstürze beim Entpacken der Rückgabewerte zu verhindern.
- Verbessertes Logging: Das Logging wird nun zweistufig initialisiert, um auch die interaktive Modus- und Limit-Auswahl korrekt zu protokollieren.
- Code-Konsolidierung: Die gesamte Logik zur Modus- und Parameter-Verarbeitung wurde innerhalb der neuen `main()`-Struktur bereinigt und zentralisiert.
2025-06-19 19:22:55 +00:00
e1dfa59a07 bugfix 2025-06-19 18:38:43 +00:00
4083358265 bugfix 2025-06-19 18:24:41 +00:00
3a95af017f bugfix 2025-06-19 18:12:50 +00:00
e22366ebd9 bugfix 2025-06-19 18:06:22 +00:00
5a631cca42 bugfix 2025-06-19 18:01:38 +00:00
5312debe71 bugfix 2025-06-19 17:58:23 +00:00
0c0ee7bad3 bugfix 2025-06-19 17:46:59 +00:00
e794568884 bugfix 2025-06-19 17:07:50 +00:00
7dd6867dee bugfix 2025-06-19 16:30:12 +00:00
1c5300323c bugfix 2025-06-19 14:27:34 +00:00
ac3735a7f6 bugfix 2025-06-19 14:04:15 +00:00
eba8d32ded bugfix 2025-06-19 10:13:35 +00:00
3310274a70 bugfix 2025-06-19 09:54:59 +00:00
5eaa8a1fb4 bugfix 2025-06-19 09:44:33 +00:00
b9eeec461d bugfix 2025-06-19 09:39:12 +00:00
c6d617957f bugfix 2025-06-19 09:33:22 +00:00
68bfd117b4 bugfix 2025-06-19 09:25:07 +00:00
b28ce3fabd bugfix 2025-06-19 09:07:56 +00:00
0df84f0cc0 bugfix 2025-06-19 09:00:13 +00:00
4f7f659f81 bugfix 2025-06-19 06:55:05 +00:00
ff1e3904e3 bugfix 2025-06-19 06:34:10 +00:00
5d38cb294f Umstellung auf Branchen-Gruppen für ML-Features
- Feature Engineering: Der ML-Prozess verwendet nun übergeordnete Branchen-Gruppen anstelle der detaillierten Einzelbranchen als kategoriales Feature.
- Branchen-Mapping: Eine neue Logik liest eine externe Mapping-Datei (`Branchen.csv`), um die vom KI-System vorgeschlagenen Detailbranchen (aus Spalte AL) ihren jeweiligen Branchen-Gruppen zuzuordnen.
- Reduzierte Dimensionalität: Durch das Clustering der Branchen wird die Anzahl der One-Hot-encodierten Features signifikant reduziert. Dies erhöht die statistische Aussagekraft jeder Kategorie und soll die Generalisierungsfähigkeit und Genauigkeit des Modells verbessern.
- Code-Anpassungen: Die Methode `prepare_data_for_modeling` wurde angepasst, um das Branchen-Mapping durchzuführen und das One-Hot-Encoding auf den neuen Branchen-Gruppen anzuwenden. Die Methode `_predict_technician_bucket` muss entsprechend angepasst werden, um dieselbe Logik für die Vorhersage zu spiegeln.
2025-06-19 06:23:16 +00:00
bae3c9b820 bugfix 2025-06-18 14:40:12 +00:00
da30481b47 bugfix 2025-06-18 14:31:08 +00:00
1c9471a8dd Feat: Hyperparameter-Tuning mit GridSearchCV und SMOTE-Pipeline für ML
- Implementierung von Hyperparameter-Tuning: Der Trainingsprozess (`train_technician_model`) verwendet nun `GridSearchCV` von scikit-learn, um systematisch die besten Hyperparameter für das RandomForest-Modell zu finden.
- Integration einer imblearn-Pipeline: SMOTE (zur Klassen-Balancierung) und der RandomForestClassifier wurden in eine `imblearn.pipeline.Pipeline` integriert. Dies stellt sicher, dass das Oversampling bei der Kreuzvalidierung korrekt nur auf den Trainings-Folds angewendet wird, um Datenlecks zu vermeiden.
- Erweiterte Modellevaluation: Der beste durch GridSearchCV gefundene Estimator wird nun für die finale Evaluation auf dem Testset verwendet und als finales Modell gespeichert. Die besten gefundenen Parameter und die Cross-Validation-Genauigkeit werden geloggt.
- Code-Struktur: Die `train_technician_model`-Methode wurde umfassend überarbeitet, um die neue Pipeline- und GridSearchCV-Logik zu implementieren. Entsprechende Imports (`GridSearchCV`, `ImbPipeline`) wurden hinzugefügt.
2025-06-18 14:22:35 +00:00