Feature-engine
Feature-engine ist eine Open-Source-Python-Bibliothek für Feature Engineering, die nativ mit pandas DataFrames arbeitet und sich nahtlos in scikit-learn-Pipelines integriert.
Feature-engine ist eine leistungsfähige Open-Source-Python-Bibliothek für Feature Engineering im Machine Learning. Sie wurde entwickelt, um die Stärken von pandas und scikit-learn zu vereinen und Datenvorverarbeitung reproduzierbar, transparent und pipeline-fähig zu machen.
Im Gegensatz zu vielen scikit-learn-Standardansätzen arbeitet Feature-engine nativ mit DataFrames: Spaltennamen und -reihenfolge bleiben erhalten, was Analyse, Debugging und Deployment deutlich vereinfacht.
Warum Feature-engine?
Feature Engineering ist einer der zeitintensivsten und wichtigsten Schritte im Machine Learning. Rohdaten sind selten direkt modellfähig. Feature-engine adressiert genau dieses Problem, indem es:
pandas-Funktionalität in fit/transform-fähige Transformer kapselt
Parameter aus Trainingsdaten lernt und speichert
Transformationen vollständig scikit-learn-kompatibel macht
Damit eignet sich Feature-engine ideal für strukturierte, nachvollziehbare und produktionsreife ML-Pipelines.
Zentrale Eigenschaften
Rückgabe von DataFrames statt NumPy-Arrays
Transformation gezielter Feature-Gruppen ohne ColumnTransformer
Nahtlose Integration in scikit-learn Pipelines, Grid Search und Cross-Validation
Automatische Erkennung numerischer, kategorischer und Datetime-Variablen
Robuste Validierung und Warnungen bei ungültigen Transformationen
Umfangreichste Sammlung an Feature-Engineering-Transformern im Python-Ökosystem
Unterstützte Feature-Engineering-Bereiche
Fehlende Werte (Missing Data Imputation)
Mittelwert-, Median-, Zufalls- oder Tail-Imputation
Kategorische Imputation
Missing Indicators
Entfernen von Zeilen mit fehlenden Werten
Kategorische Kodierung
One-Hot-Encoding
Ordinal-, Frequency- und Target-Encoding
Weight of Evidence (WoE)
Decision-Tree-basierte Encoder
Gruppierung seltener Kategorien
Diskretisierung
Equal Width / Equal Frequency
Benutzerdefinierte Bins
Entscheidungsbaum-basierte Diskretisierung
Geometrische Intervalle
Outlier-Behandlung
Winsorisierung
Trimmen
Benutzerdefinierte Grenzwerte
Numerische Transformationen
Log-, Box-Cox- und Yeo-Johnson-Transformationen
Power- und Reziprok-Transformationen
Arcsin-Transformation
Feature-Erstellung
Mathematische Feature-Kombinationen
Relative Features
Zyklische Features (Sinus/Cosinus)
Entscheidungsbaum-basierte Features
Datetime-Features
Extraktion von Zeit- und Datumsbestandteilen
Differenzen zwischen Datetime-Variablen
Feature-Selektion
Entfernen konstanter, duplizierter oder korrelierter Features
PSI- und Information-Value-basierte Selektion
Rekursive Feature-Elimination und -Addition
MRMR (Maximum Relevance Minimum Redundancy)
Zeitreihen & Forecasting
Lag-Features
Rolling- und Expanding-Windows
Aggregationen über Zeitfenster
Preprocessing & Skalierung
Sicherstellung konsistenter Datentypen
Abgleich von Train- und Test-Features
Selektive Anwendung von scikit-learn-Scalern
Open Source & Community
Feature-engine ist BSD-3-Clause-lizenziert, vollständig Open Source und wird aktiv auf GitHub weiterentwickelt. Beiträge in Form von Code, Dokumentation, Bugreports oder Erfahrungsberichten sind ausdrücklich willkommen.
Das Projekt wird von einer engagierten Community getragen und durch Sponsoring unterstützt, um langfristig Qualität, Wartbarkeit und Innovation sicherzustellen.
Einsatzgebiete
Data Science & Machine Learning
Reproduzierbare ML-Pipelines
Feature Engineering für strukturierte Daten
Zeitreihenanalyse und Forecasting
Forschung, Lehre und industrielle Anwendungen