{"id":28924017,"url":"https://github.com/baris-enes/pumpen-maintenance","last_synced_at":"2026-04-28T01:32:04.374Z","repository":{"id":299130142,"uuid":"1002145934","full_name":"baris-enes/pumpen-maintenance","owner":"baris-enes","description":"Prädiktive Wartung von Pumpen in der chemischen Industrie mit Feature Engineering, Clustering und XGBoost","archived":false,"fork":false,"pushed_at":"2025-06-14T20:55:03.000Z","size":1571,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-22T10:03:26.582Z","etag":null,"topics":["chemie","clustering","engineer","industrie","maintenance","predictive","pumps","sklearn"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/baris-enes.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-14T20:15:03.000Z","updated_at":"2025-06-14T20:55:06.000Z","dependencies_parsed_at":"2025-06-14T21:38:16.417Z","dependency_job_id":null,"html_url":"https://github.com/baris-enes/pumpen-maintenance","commit_stats":null,"previous_names":["baris-enes/pumpen-maintenance"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/baris-enes/pumpen-maintenance","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baris-enes%2Fpumpen-maintenance","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baris-enes%2Fpumpen-maintenance/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baris-enes%2Fpumpen-maintenance/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baris-enes%2Fpumpen-maintenance/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/baris-enes","download_url":"https://codeload.github.com/baris-enes/pumpen-maintenance/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baris-enes%2Fpumpen-maintenance/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32362781,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-27T20:07:02.737Z","status":"ssl_error","status_checked_at":"2026-04-27T20:07:00.910Z","response_time":128,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chemie","clustering","engineer","industrie","maintenance","predictive","pumps","sklearn"],"created_at":"2025-06-22T10:02:56.774Z","updated_at":"2026-04-28T01:32:04.367Z","avatar_url":"https://github.com/baris-enes.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Predictive Maintenance für Industrie­pumpen\n\nDieses Projekt demonstriert einen vollständigen Machine-Learning-Workflow zur prädiktiven Wartung von Industrie­pumpen – mit besonderem Fokus auf die **chemische Industrie**. Durch gezieltes Feature Engineering und datengetriebenes Clustering entsteht ein belastbares Simulationsmodell zur frühzeitigen Erkennung von Wartungsbedarf.\n\n---\n\n##  Datengrundlage\n\nDie zugrundeliegenden Daten stammen aus einem synthetischen Pumpenbetriebsszenario. Jeder Datenpunkt beschreibt den Zustand einer Pumpe mit Messgrößen wie:\n\n- **Temperature** (°C)\n- **Vibration** (mm/s)\n- **Pressure** (bar)\n- **Flow Rate** (m³/h)\n- **RPM** (Drehzahl)\n- **Operational Hours** (h)\n\nZusätzlich enthält der Datensatz die Zielvariable `Maintenance_Flag` (0 = kein Wartungsbedarf, 1 = Wartung notwendig). Allerdings zeigte sich, dass dieses Label **kaum trennscharf** war (Verhältnis nahezu 50/50, kaum Korrelation zu Features). Daher wurde im Projektverlauf eine **simulierte Zielvariable** eingeführt, um ein realistisches und erklärbares Wartungsmodell zu ermöglichen.\n\n---\n\n##  Projektübersicht\n\n1. **Datenexploration \u0026 Ausgangssituation**\n2. **Physikalisch motiviertes Feature Engineering**\n3. **Clustering \u0026 Label-Simulation**\n4. **Modelltraining \u0026 Hyperparameter-Optimierung (Grid Search)**\n5. **Evaluation mit Konfusionsmatrix**\n\n---\n\n##  Verwendete Tools \u0026 Bibliotheken\n\n- **Python 3.8+**\n- **pandas** – Datenmanipulation \u0026 Einlesen (`pd.read_csv`)\n- **NumPy** – numerische Berechnungen (`np.log1p`, Arithmetik)\n- **scikit-learn**\n  - `StandardScaler`, `PCA`, `KMeans` (Clustering)\n  - `train_test_split`, `GridSearchCV` (Modell-Validierung)\n  - `classification_report`, `confusion_matrix` (Metriken)\n- **XGBoost** (`xgboost.XGBClassifier`) – Gradient Boosted Trees\n- **matplotlib** \u0026 **seaborn** – Visualisierung (Heatmaps, Scatter, Bar Charts, Confusion Matrix)\n\n\u003e **Hinweis:** TensorFlow oder andere Deep-Learning-Frameworks kamen **nicht** zum Einsatz – der Fokus liegt auf klassischer ML-Pipeline.\n\n---\n\n##  Installation\n\n```bash\n\npython -m venv venv\nsource venv/bin/activate   # Linux/macOS\nvenv\\Scripts\\activate      # Windows\n\npip install -r requirements.txt\n```\n\n*requirements.txt* sollte enthalten:\n\n```\npandas\nnumpy\nscikit-learn\nxgboost\nmatplotlib\nseaborn\n```\n\n---\n\n##  Methodik\n\n### Feature Engineering\n\nGezielt eingeführte Features mit physikalischem Bezug:\n\n| Feature                  | Formel                           | Bedeutung                            |\n|--------------------------|----------------------------------|--------------------------------------|\n| Power                    | Pressure × Flow Rate             | Hydraulische Leistung                |\n| Vibration_per_hour       | Vibration / Operational_Hours    | Belastungsrate                       |\n| Efficiency               | Power / RPM                      | Betriebseffizienz                    |\n| Cumulative_Load          | Vibration × Operational_Hours    | Gesamtbelastung über Zeit           |\n| Log_Vibration_per_hour   | log(1 + Vibration_per_hour)      | Skalierung zur Varianzreduktion     |\n\n\nDiese Features führten zu einer **deutlich erhöhten Korrelation mit dem Wartungsbedarf** (sichtbar in Korrelationsmatrizen vor/nach Feature Engineering).\n\n### Clustering \u0026 Label-Simulation\n\nDa das ursprüngliche Label unbrauchbar war, wurde ein **simuliertes Labeling durch domänengetriebene Regeln** durchgeführt:\n\n- **PCA → KMeans mit 3 Clustern**\n- Neue Zielvariable: `Maintenance_Flag_Sim_Final`\n  - **Cluster 2** = immer Wartung notwendig\n  - **Cluster 0** = nie Wartung\n  - **Cluster 1** = Regelbasiert:\n    - Hohe kumulative Belastung \u0026 niedrige Effizienz ⇒ Wartung\n\n### Modelltraining \u0026 Grid Search\n\n- Modell: `XGBClassifier`\n- Ziel: Optimierung auf **F1-Score**\n- Beste Parameter laut GridSearch:\n  ```\n  n_estimators:     200  \n  max_depth:        3  \n  learning_rate:    0.10  \n  subsample:        0.80  \n  colsample_bytree: 0.80\n  ```\n\n### Evaluation\n\nDie finale Konfusionsmatrix zeigt eine **nahezu perfekte Klassifikation** auf Basis der simulierten Labels.\n\n---\n\n##  Relevanz für die chemische Industrie\n\nIn der chemischen Industrie sind Pumpen zentrale Aggregate zur Förderung von Medien wie:\n\n- **Säuren, Laugen, Lösungsmittel, Emulsionen**\n- Stoffe mit **hoher Viskosität** oder **abrasiven Eigenschaften**\n- Medien mit **kritischen Temperatur- und Druckanforderungen**\n\nDaher sind vorausschauende Wartungsstrategien essenziell. Dieses Projekt zeigt, wie:\n\n- **Prozessdaten + domänenspezifisches Wissen**\n- zu **robusten Features** führen\n- und daraus **frühzeitige Wartungsempfehlungen** generiert werden können.\n\n---\n\n##  Lessons Learned\n\n-  **Physik schlägt Zufall:** Nur durch Feature Engineering entstand echte Korrelation\n-  **Domain-Knowledge + Clustering** helfen bei der Labelkonstruktion\n-  **ML-Modelle sind nur so gut wie ihre Eingangsdaten** – Featurequalität entscheidet\n\n---\n\n##  Nächste Schritte\n\n- Einbindung von **Medienkennwerten** wie Dichte, Korrosivität, chemischer Zusammensetzung\n- - Erweiterung um **Zeitreihenanalysen mit TensorFlow**:\n  - Gleitende Mittelwerte (Rolling Features)\n  - Differenzen (z. B. ΔVibration)\n  - Trend-Erkennung mit LSTM oder TCN-Modellen\n  - Ziel: Frühzeitige Detektion schleichender Defekte\n- Umsetzung als **API-Service** (z. B. FastAPI + Docker)\n- Integration in Dashboard (z. B. Streamlit, Dash) für Produktionsleiter\n\n---\n\n*© 2025 Enes Baris – Die Daten basieren auf einem simulierten Pumpenbetrieb mit realitätsnahen, aber synthetisch erzeugten Zustandsparametern*\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbaris-enes%2Fpumpen-maintenance","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbaris-enes%2Fpumpen-maintenance","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbaris-enes%2Fpumpen-maintenance/lists"}