Was ist Funktionsentwicklung?

20. Januar 2024

Autoren

Jacob Murel Ph.D.

Senior Technical Content Creator

Eda Kavlakoglu

Program Manager

Die Funktionsentwicklung verarbeitet Rohdaten in ein maschinenlesbares Format vor. Sie optimiert die Leistung des ML-Modells durch Transformieren und Auswählen relevanter Funktionen.

Die Funktionsentwicklung ist der Prozess der Umwandlung von Rohdaten in relevante Informationen zur Verwendung durch Modelle des maschinellen Lernens. Mit anderen Worten: Die Funktionsentwicklung ist der Prozess der Erstellung vorausschauender Modellfunktionen. Eine Funktion – auch Dimension genannt – ist eine Eingabevariable, die zur Generierung von Modellvorhersagen verwendet wird. Da die Modellleistung weitgehend von der Qualität der während des Trainings verwendeten Daten abhängt, ist die Funktionsentwicklung eine wichtige Vorverarbeitungstechnik, bei der die wichtigsten Aspekte der Trainingsrohdaten sowohl für die betrachtete Vorhersageaufgabe als auch für den betrachteten Modelltyp ausgewählt werden müssen.1

Wissenswertes zur Terminologie: Viele Quellen verwenden Funktionsentwicklung und Funktionsextraktion synonym, um den Prozess der Erstellung von Modellvariablen zu kennzeichnen.2 Manchmal verwenden Quellen auch die Funktionsextraktion, um sich auf die Neuzuordnung eines ursprünglichen Funktionsraums in einen niedrigdimensionalen Funktionsraum zu beziehen.3 Die Funktionsauswahl ist dagegen eine Form der Dimensionalitätsreduzierung. Insbesondere ist es die Verarbeitung der Auswahl einer Teilmenge von Variablen, um ein neues Modell zu erstellen, mit dem Ziel, die Multikollinearität zu reduzieren und so die Generalisierbarkeit und Optimierung des Modells zu maximieren.

3D-Design aus Kugeln, die auf einer Schiene rollen

Die neuesten Erkenntnisse und Insights zu KI

Entdecken Sie von Experten kuratierte Erkenntnisse und Neuigkeiten zu KI, Cloud und mehr im wöchentlichen Newsletter Think. 

Prozess des Funktionsentwicklung

Da ein Modell nur so gut ist wie die Daten, auf denen es basiert, verbringen Data Scientists einen großen Teil ihrer Zeit mit der data preparation und der Erstellung von Funktionen, um qualitativ hochwertige Modelle zu erstellen. Abhängig von der Komplexität der Rohdaten und dem gewünschten Vorhersagemodell kann die Funktionsentwicklung viel Versuch und Irrtum erfordern.

Manche Quellen und Online-Tutorials gliedern die Funktionsentwicklung in einzelne Schritte, deren Anzahl und Namen in der Regel variieren. Diese Schritte können das Verstehen von Funktionen, die Strukturierung oder Konstruktion, Transformation, Bewertung, Optimierung und vieles mehr umfassen.4 Eine solche Schichtung kann zwar nützlich sein, um einen allgemeinen Überblick über die mit der Funktionsentwicklung verbundenen Aufgaben zu erhalten, aber sie suggeriert, dass die Funktionsentwicklung ein linearer Prozess ist. Tatsächlich ist die Entwicklung von Funktionen ein iterativer Prozess.

Die Funktionsentwicklung ist kontextabhängig. Es erfordert umfangreiche Datenanalysen und Fachkenntnisse. Denn die effektive Codierung für Funktionen kann durch die Art des verwendeten Modells, die Beziehung zwischen Prädiktoren und Output sowie durch das Problem, das ein Modell adressieren soll, bestimmt werden.5 Weil verschiedene Arten von Datensätzen, zum Beispiel Text im Vergleich zu Bildern, möglicherweise besser für verschiedene Funktionsentwicklungs-Techniken geeignet sind.6 Daher kann es schwierig sein, konkrete Aussagen darüber zu treffen, wie die Funktionsentwicklung am besten innerhalb eines bestimmten Algorithmus für maschinelles Lernen implementiert werden kann.

Mixture of Experts | Podcast

KI entschlüsseln: Wöchentlicher Nachrichtenüberblick

Schließen Sie sich unserer erstklassigen Expertenrunde aus Ingenieuren, Forschern, Produktführern und anderen an, die sich durch das KI-Rauschen kämpfen, um Ihnen die neuesten KI-Nachrichten und Erkenntnisse zu liefern.

Techniken des Funktionsengineerings

Obwohl es keine allgemein bevorzugte Funktionsentwicklungs-Methode oder -Pipeline gibt, gibt es eine Handvoll allgemeiner Aufgaben, die verwendet werden, um Funktionen aus verschiedenen Datentypen für verschiedene Modelle zu erstellen. Vor der Umsetzung einer dieser Techniken muss jedoch eine gründliche Datenanalyse durchgeführt werden, um sowohl die relevanten Funktionen als auch die angemessene Anzahl von Funktionen zur Lösung eines bestimmten Problems zu bestimmen. Darüber hinaus ist es am besten, verschiedene Datenreinigungs- und Vorverarbeitungstechniken zu implementieren, wie etwa Imputation für fehlende Daten oder fehlende missing values, und gleichzeitig Ausreißer zu berücksichtigen, die sich negativ auf Modellvorhersagen auswirken können.

Transformation von Funktionen

Bei der Funktionstransformation handelt es sich um den Prozess der Umwandlung eines Funktionstyps in eine andere, besser lesbare Form für ein bestimmtes Modell. Dabei werden kontinuierliche in kategorische Daten umgewandelt oder umgekehrt.

Binning. Diese Technik wandelt im Wesentlichen fortlaufende, numerische Werte in kategorische Funktionen um. Insbesondere wird beim Binning jeder Wert mit der Nachbarschaft der ihn umgebenden Werte verglichen und dann die Datenpunkte in eine Reihe von Klassen sortiert. Ein einfaches Beispiel für Einteilung ist die Altersdemografie, bei der fortlaufende Altersgruppen in Altersgruppen unterteilt werden, zum Beispiel 18-25, 25-30 usw. Sobald Werte in Klassen eingeteilt wurden, können Sie die Klassen mit Mitteln, Medianen oder Grenzen weiter ausgleich. Durch das Ausgleichen werden die in einer Bin enthaltenen Werte durch von der Bin abgeleitete Werte ersetzt. Wenn wir beispielsweise eine Klasse mit Alterswerten zwischen 18 und 25 durch den Mittelwert ausgleichen, ersetzen wir jeden Wert in dieser Klasse durch den Mittelwert der Werte dieser Klasse. Binning erstellt kategoriale Werte aus kontinuierlichen Werten. Mit dem Ausgleichen wird lokal das Datenrauschen bei der Eingabe reduziert.7

One-Hot-Codierung. Dies ist das Gegenteil von Binning; es erstellt numerische Funktionen aus kategorialen Variablen. Bei der One-Hot-Codierung werden kategoriale Merkmale binären Darstellungen zugeordnet, die zur Abbildung des Merkmals in einer Matrix oder einem Vektorraum verwendet werden. In der Literatur wird diese binäre Darstellung oft als Dummy-Variable bezeichnet. Da bei der One-Hot-Codierung die Reihenfolge ignoriert wird, eignet sie sich am besten für nominale Kategorien. Bag-of-Words-Modelle sind ein Beispiel für One-Hot-Codierung, die häufig bei Aufgaben zur Verarbeitung natürlicher Sprache verwendet wird. Ein weiteres Beispiel für One-Hot-Encoding ist die Klassifizierung von Spamfilter, bei der die Kategorien Spam und Kein Spam in 1 bzw. 0 umgewandelt werden.8

Extraktion und Auswahl von Funktionen

Die Funktionsextraktion ist eine Technik zur Schaffung eines neuen dimensionalen Raums für ein Modell, indem Variablen zu neuen, stellvertretenden Variablen kombiniert oder um die Dimensionen des Funktionsraums des Modells zu reduzieren.9 Im Vergleich dazu bezeichnet die Funktionsauswahl Techniken zur Auswahl einer Teilmenge der relevantesten Funktionen zur Darstellung eines Modells. Sowohl die Funktionsmerkmalsextraktion als auch die -auswahl sind Formen der Dimensionsreduktion und eignen sich daher für Regressionsprobleme mit einer großen Anzahl von Merkmalen und einer begrenzten Anzahl verfügbarer Datenproben.

Hauptkomponentenanalyse. DieHauptkomponentenanalyse (PCA) ist eine gängige Methode zur Funktionsextraktion, bei der die ursprünglichen Funktionen eines Datensatzes kombiniert und transformiert werden, um neue Funktionen zu erzeugen, die als Hauptkomponenten bezeichnet werden. PCA wählt eine Teilmenge von Variablen aus einem Modell aus, die zusammen den Großteil oder die gesamte Varianz der ursprünglichen Variablengruppe des Modells ausmachen. PCA projiziert dann Daten auf einen neuen Raum, der durch diese Teilmenge von Variablen definiert wird.10

Lineare Diskriminanzanalyse. Die lineare Diskriminanzanalyse (LDA) ähnelt angeblich der PCA insofern, als sie Modelldaten auf einen neuen, niederdimensionalen Raum projiziert. Wie bei der PCA werden die Dimensionen (oder Funktionen) dieses Modellraums von den Funktionen des ursprünglichen Modells abgeleitet. LDA unterscheidet sich jedoch von PCA dadurch, dass die Klassifizierungskennzeichnungen im Originaldatensatz erhalten bleiben. Während PCA neue Komponentenvariablen erzeugt, die die Datenvarianz maximieren sollen, erzeugt LDA Komponentenvariablen, die in erster Linie dazu gedacht sind, den Klassenunterschied in den Daten zu maximieren.11

Skalierung der Funktionen

Bestimmte Funktionen haben dateninterne Ober- und Untergrenzen, die mögliche Funktionswerte einschränken, wie z. B. Zeitreihendaten oder Alter. In vielen Fällen weisen die Modellfunktionen jedoch keine Beschränkung für die möglichen Werte auf, und derart große Funktionsskalen (die Differenz zwischen den niedrigsten und höchsten Werten einer Funktion) können sich negativ auf bestimmte Modelle auswirken. Die Funktionsskalierung (manchmal auch als Funktionsnormalisierung bezeichnet) ist eine Standardisierungstechnik, um Funktionen neu zu skalieren und die Auswirkungen großer Skalen auf Modelle zu begrenzen.12 Während die Funktionstransformation Daten von einem Typ in einen anderen transformiert, transformiert die Funktionsskalierung die Daten in Bezug auf Bereich und Verteilung, wobei der ursprüngliche Datentyp beibehalten wird.13

Min-Max-Skalierung. Bei der Min-Max-Skalierung werden alle Werte für eine bestimmte Funktion so skaliert, dass sie zwischen den angegebenen Minimal- und Maximalwerten liegen, häufig 0 und 1. Der Wert jedes Datenpunktes für das ausgewählte Funktion (dargestellt durch x) wird anhand der festgelegten minimalen und maximalen Funktionswerte, min(x) und max(x), berechnet, wodurch der neue Funktionswert für diesen Datenpunkt (dargestellt durch x CI ) erzeugt wird. Die Min-Max-Skalierung wird mit der Formel berechnet:14

Z-Score-Skalierung. In der Literatur wird dies auch als Standardisierung und Varianzskalierung bezeichnet. Während die Min-Max-Skalierung die Funktionswerte so skaliert, dass sie in die festgelegten Minimal- und Maximalwerte passen, skaliert die Z-Score-Skalierung die Funktionen neu, sodass sie eine gemeinsame Standardabweichung von 1 mit einem Mittelwert von 0 aufweisen. Die Z-Score-Skalierung wird durch die Formel dargestellt:

Hier wird ein gegebener Funktionswert (x) anhand des Mittelwerts des neu skalierten Funktion berechnet und durch die standardisierte Standardabweichung (dargestellt als sqrt(var(x))) geteilt. Die Skalierung von Z-Scares kann bei der Implementierung von Verfahren zur Funktionsextraktion wie PCA und LDA nützlich sein, da diese beiden Verfahren Funktionen mit derselben Skala erfordern.15

Aktuelle Forschung

Automatisierung. Automatisierte Funktionsentwicklung ist allerdings schon seit einigen Jahrzehnten ein Forschungsgebiet in der Entwicklung.16 Python-Bibliotheken wie „tsflex“ und „featuretools“ helfen bei der Automatisierung der Funktionsextraktion und -transformation für Zeitreihendaten. Die Entwickler stellen weiterhin neue Pakete und Algorithmen bereit, um die Funktionsentwicklung für lineare Regressions-Modelle und andere Datentypen zu automatisieren, die Modellgenauigkeit erhöhen.17 In jüngerer Zeit ist die automatisierte Funktionsentwicklung Teil größerer Bemühungen, automatisierte Systeme für maschinelles Lernen (AutoML) zu entwickeln, die darauf abzielen, maschinelles Lernen für Nicht-Experten zugänglicher zu machen.18

Deep Learning. Funktionsentwicklung kann ein mühsamer und zeitaufwändiger Prozess sein, der ein erhebliches Maß an Versuch und Irrtum erfordert. Mit Deep Learning kann ein Benutzer eine kleine Gruppe grundlegender Merkmale spezifizieren, die die Architektur des neuronalen Netzes zu Funktionen, auch als Darstellungen bezeichnet, auf höherer Ebene sammelt .19 Ein solches Beispiel ist die Bildverarbeitung und Mustererkennung im Computer Vision, bei der ein Modell lernt, semantisch bedeutsame Objekte (z. B. Autos, Personen usw.) in Bezug auf einfache Konzepte (z. B. Kanten, Konturen usw.) durch Verkettung von Merkmalskarten zu identifizieren.20 Neuere Studien haben jedoch Feature Engineering mit Neural Networks und anderen Deep-Learning-Techniken kombiniert, um Aufgaben zur Klassifizierung von Aufgaben, wie z. B. Betrugserkennung, zu vielversprechenden Ergebnisse zu führen.21

Weiterführende Lösungen
IBM watsonx.ai

Trainieren, validieren, optimieren und implementieren Sie generative KI, Foundation Models und maschinelle Lernfunktionen mit IBM watsonx.ai, einem Studio der nächsten Generation für AI Builder in Unternehmen. Erstellen Sie KI-Anwendungen mit einem Bruchteil der Zeit und Daten.

Entdecken sie watsonx.ai
Lösungen im Bereich künstlicher Intelligenz

Setzen Sie KI in Ihrem Unternehmen ein – mit branchenführendem Fachwissen im Bereich KI und dem Lösungsportfolio von IBM an Ihrer Seite.

Erkunden Sie KI-Lösungen
KI-Beratung und -Services

Erfinden Sie kritische Workflows und Abläufe neu, indem Sie KI einsetzen, um Erfahrungen, Entscheidungsfindung in Echtzeit und den geschäftlichen Nutzen zu maximieren.

KI-Services entdecken
Machen Sie den nächsten Schritt

Profitieren Sie von einem einheitlichen Zugriff auf Funktionen, die den gesamten Lebenszyklus der KI-Entwicklung abdecken. Erstellen Sie leistungsstarke KI-Lösungen mit benutzerfreundlichen Oberflächen, Workflows und Zugriff auf branchenübliche APIs und SDKs.

watsonx.ai erkunden Live-Demo buchen
Fußnoten

1 Alice Zheng und Amanda Casari, Feature Engineering for Machine Learning, O’Reilly, 2018. Sinan Ozdemir und Divya Susarla, Feature Engineering Made Easy, Packt, 2018.

2 Yoav Goldberg, Neural Network Methods for Natural Language Processing, Springer, 2022.

3 Suhang Wang, Jiliang Tang und Huan Liu, „Feature Selection“, Encyclopedia of Machine Learning and Data Mining, Springer, 2017.

4 Sinan Ozdemir, Feature Engineering Bookcamp, Manning Publications, 2022. Sinan Ozdemir und Divya Susarla, Feature Engineering Made Easy, Packt, 2018.

5 Max Kuhn und Kjell Johnson, Applied Predictive Modeling, Springer, 2016.

6 Alice Zheng und Amanda Casari, Feature Engineering for Machine Learning, O’Reilly, 2018.

7 Jaiwei Han, Data Mining: Concepts and Techniques, 3. Auflage, 2012.

8 Kevin Murphy, Machine Learning: A Probabilistic Perspective, MIT Press, 2012. Soledad Galli, Python Feature Engineering Cookbook, 2. Auflage, Packt, 2022.

9 Max Kuhn und Kjell Johnson, Applied Predictive Modeling, Springer, 2016.

10 I.T. Jollife, Principal Component Analysis, Springer, 2002.

11 Chris Albon, Machine Learning with Python Cookbook, O’Reilly, 2018.

12 Alice Zheng und Amanda Casari, Feature Engineering for Machine Learning, O’Reilly, 2018.

13 Zahraa Abdallah, Lan Du und Geoffrey Webb, „Data preparation“, Encyclopedia of Machine Learning and Data Mining, Springer, 2017.

14 Alice Zheng und Amanda Casari, Feature Engineering for Machine Learning, O’Reilly, 2018.

15 Zahraa Abdallah, Lan Du und Geoffrey Webb, „Data preparation“, Encyclopedia of Machine Learning and Data Mining, Springer, 2017. Alice Zheng und Amanda Casari, Feature Engineering for Machine Learning, O’Reilly, 2018.

16 James Edger und Kalyan Veeramachaneni, „Deep Feature Synthese: Towards Automating Data Science Endeavors“, IEEE International Conference on Data Science and Advanced Analytics, 2015, https://ieeexplore.ieee.org/document/7344858.

17 Udayan Khurana, Deepak Turaga, Horst Samulowitz und Srinivasan Parthasrathy, „Cognito: Automated Feature Engineering for Supervised Learning“, IEEE 16th International Conference on Data Mining Workshops, 2016, S. 1304-130, https://ieeexplore.ieee.org/abstract/document/7836821. Franziska Horn, Robert Pack und Michael Rieger, „The autofeat Python Library for Automated Feature Engineering and Selection“, Joint European Conference on Machine Learning and Knowledge Discovery in Databases, 2019, S. 111-120, https://link.springer.com/chapter/10.1007/978-3-030-43823-4_10.

18 Ahmad Alsharef, Karan Aggarwal, Sonia, Manoj Kumar und Ashutosh Mishra, „Review of ML and AutoML Solutions to Forecast Time‑Series Data“, Archives of Computational Methods in Engineering, Band 29, 2022, S. 5297–5311, https://link.springer.com/article/10.1007/s11831-022-09765-0. Sjoerd Boeschoten, Cagatay Catal, Bedir Tekinerdogan, Arjen Lommen und Marco Blokland, „The automation of the development of classification models andimprovement of model quality using feature engineering techniques“, Expert Systems with Applications, Bd. 213, 2023, https://www.sciencedirect.com/science/article/pii/S0957417422019303. Shubhra Kanti Karmaker, Mahadi Hassan, Micah Smith, Lei Xu, Chengxiang Zhai und Kalyan Veeramachaneni, „AutoML to Date and Beyond: Challenges and Opportunities“, ACM Computing Surveys, Band 54, Nr. 8, 2022, S. 1-36, https://dl.acm.org/doi/abs/10.1145/3470918.

19 Yoav Goldberg, Neural Network Methods for Natural Language Processing, Springer, 2022.

20 Ian Goodfellow, Yoshua Bengio und Aaron Courville, Deep Learning, MIT Press, 2016, https://www.deeplearningbook.org/

21 Xinwei Zhang, Yaoci Han, Wei Xu und Qili Wang, „HOBA: A novel feature engineering methodology for credit card fraud detection with a deep learning architecture“, Information Sciences, Bd. 557, 2021, S. 302-316, https://www.sciencedirect.com/science/article/abs/pii/S002002551930427X. Daniel Gibert, Jordi Planes, Carles Mateu und Quan Le, „Fusing feature engineering and deep learning: A case study for malware classification“, Expert Systems with Applications, Bd. 207, 2022, https://www.sciencedirect.com/science/article/pii/S0957417422011927. Ebenezerm Esenogho, Ibomoiye Domor Mienye, Theo Swart, Kehinde Aruleba und George Obaido, „A Neural Network Ensemble With Feature Engineering for Improved Credit Card Fraud Detection“, IEEE Access, Band 10, 2020, S. 16400-16407, https://ieeexplore.ieee.org/abstract/document/9698195.