Feature Engineering ist der Prozess der Auswahl, Bearbeitung und Umwandlung von Rohdaten in Features, die beim maschinellen Lernen, hauptsächlich beim überwachten Lernen, verwendet werden können. Es besteht aus fünf Prozessen: Feature-Erstellung, Transformationen, Feature-Extraktion, explorative Datenanalyse und Benchmarking. In diesem Zusammenhang ist ein „Merkmal“ jede messbare Eingabe, die in einem Vorhersagemodell verwendet werden kann. Es könnte sich um den Klang eines Tieres, einer Farbe oder der Stimme einer Person handeln.
Diese Technik ermöglicht es Datenwissenschaftlern, die wertvollsten Erkenntnisse aus Daten zu extrahieren, was genauere Vorhersagen und umsetzbare Erkenntnisse gewährleistet.
Arten von Funktionen
Wie oben erwähnt ist ein Merkmal jeder messbare Punkt, der in einem Vorhersagemodell verwendet werden kann. Lassen Sie uns die Arten des Feature-Engineerings für maschinelles Lernen durchgehen –
Numerische Merkmale:Bei diesen Merkmalen handelt es sich um kontinuierliche Variablen, die auf einer Skala gemessen werden können. Zum Beispiel: Alter, Gewicht, Größe und Einkommen. Diese Funktionen können direkt beim maschinellen Lernen genutzt werden.
Kategorische Merkmale:Dies sind diskrete Werte, die in Kategorien gruppiert werden können. Dazu gehören: Geschlecht, Postleitzahl und Farbe. Kategoriale Merkmale beim maschinellen Lernen müssen normalerweise in numerische Merkmale umgewandelt werden, bevor sie in Algorithmen für maschinelles Lernen verwendet werden können. Sie können dies ganz einfach mit One-Hot-, Label- und Ordinalkodierung tun.
Zeitreihenfunktionen:Bei diesen Funktionen handelt es sich um Messungen, die über die Zeit hinweg durchgeführt werden. Zu den Zeitreihenfunktionen gehören Aktienkurse, Wetterdaten und Sensorwerte. Mit diesen Funktionen können Modelle für maschinelles Lernen trainiert werden, die zukünftige Werte vorhersagen oder Muster in den Daten erkennen können.
Textfunktionen:Dies sind Textzeichenfolgen, die Wörter, Phrasen oder Sätze darstellen können. Beispiele für Textfunktionen sind Produktbewertungen, Social-Media-Beiträge und Krankenakten. Sie können Textfunktionen verwenden, um Modelle für maschinelles Lernen zu trainieren, die die Bedeutung von Text verstehen oder Text in verschiedene Kategorien einteilen können.
Einer der wichtigsten Prozesse in der Pipeline für maschinelles Lernen ist:Feature-Auswahl, bei dem es sich um den Prozess der Auswahl der relevantesten Features in einem Datensatz handelt, um das Modelltraining zu erleichtern. Es verbessert die Vorhersageleistung und Robustheit des Modells und verringert die Wahrscheinlichkeit einer Überanpassung an die Trainingsdaten. Der Prozess ist von entscheidender Bedeutung, da er dazu beiträgt, Überanpassungen zu reduzieren, die Interpretierbarkeit des Modells zu verbessern, die Genauigkeit zu verbessern und die Trainingszeiten zu verkürzen.
Techniken im Feature Engineering
Imputation
Diese Technik befasst sich mit dem Umgang mit fehlenden Werten/Daten. Dies ist eines der Probleme, auf die Sie stoßen werden, wenn Sie Ihre Daten für die Bereinigung und sogar Standardisierung vorbereiten. Dies wird hauptsächlich durch Datenschutzbedenken, menschliches Versagen und sogar Unterbrechungen des Datenflusses verursacht. Es kann in zwei Kategorien eingeteilt werden:
# impute Graduated and Family_Size features with most_frequent values from sklearn.impute import SimpleImputer impute_mode = SimpleImputer(strategy = 'most_frequent') impute_mode.fit(df[['Graduated', 'age']]) df[['Graduated', 'age']] = impute_mode.transform(df[['Graduated', 'age']])
# Impute Work_Experience feature by its mean in our dataset df['Work_Experience'] = df['Work_Experience'].fillna(df['Work_Experience'].mean())
Kodierung
Dies ist der Prozess der Umwandlung kategorialer Daten in numerische (kontinuierliche) Daten. Im Folgenden sind einige der Techniken der Feature-Codierung aufgeführt:
Label-Codierung: Label-Codierung ist eine Methode zum Codieren von Variablen oder Features in einem Datensatz. Dabei werden kategoriale Variablen in numerische Variablen umgewandelt.
One-Hot-Codierung: One-Hot-Codierung ist der Prozess, bei dem kategoriale Variablen in eine Form umgewandelt werden, die von ML-Algorithmen verwendet werden kann.
Encodage binaire: L'encodage binaire est le processus d'encodage de données à l'aide du code binaire. En codage binaire, chaque caractère est représenté par une combinaison de 0 et de 1.
Mise à l'échelle et normalisation
La mise à l'échelle des caractéristiques est une méthode utilisée pour normaliser la plage de variables indépendantes ou de caractéristiques des données. En traitement des données, cette opération est également appelée normalisation des données et est généralement effectuée lors de l'étape de prétraitement des données. Par exemple, si vous avez plusieurs variables indépendantes comme l’âge, le salaire et la taille ; Avec leur plage de (18 à 100 ans), (25 000 à 75 000 euros) et (1 à 2 mètres) respectivement, la mise à l'échelle des caractéristiques les aiderait tous à être dans la même plage, par exemple centrés autour de 0 ou dans la plage (0,1) selon la technique de mise à l'échelle.
La normalisation est une technique de mise à l'échelle dans laquelle les valeurs sont décalées et redimensionnées afin qu'elles finissent par se situer entre 0 et 1. Elle est également connue sous le nom de mise à l'échelle Min-Max. Ici, Xmax et Xmin sont respectivement les valeurs maximale et minimale de la fonctionnalité.
Binning
Le binning (également appelé bucketing) est une technique d'ingénierie de fonctionnalités qui regroupe différentes sous-plages numériques dans des bacs ou des compartiments. Dans de nombreux cas, le regroupement transforme les données numériques en données catégorielles. Par exemple, considérons une caractéristique nommée X dont la valeur la plus basse est 15 et la valeur la plus élevée est 425. En utilisant le regroupement, vous pouvez représenter X avec les cinq catégories suivantes :
Le bac 1 s'étend sur la plage 15 à 34, donc chaque valeur de X entre 15 et 34 se retrouve dans le bac 1. Un modèle formé sur ces bacs ne réagira pas différemment aux valeurs X de 17 et 29 puisque les deux valeurs sont dans le bac 1.
Réduction de la dimensionnalité
Il s'agit d'une méthode permettant de représenter un ensemble de données donné en utilisant un nombre inférieur de caractéristiques (c'est-à-dire des dimensions) tout en capturant les propriétés significatives des données d'origine.1 Cela revient à supprimer les caractéristiques non pertinentes ou redondantes, ou simplement les données bruitées, pour créer un modèle avec un nombre inférieur de variables. Fondamentalement, transformer des données de grande dimension en données de faible dimension. Il existe deux approches principales pour la réduction de dimensionnalité :
Sélection des fonctionnalités: la sélection des fonctionnalités implique la sélection d'un sous-ensemble des fonctionnalités d'origine les plus pertinentes pour le problème en question. L’objectif est de réduire la dimensionnalité de l’ensemble de données tout en conservant les fonctionnalités les plus importantes. Il existe plusieurs méthodes de sélection de fonctionnalités, notamment les méthodes de filtrage, les méthodes wrapper et les méthodes intégrées. Les méthodes de filtrage classent les fonctionnalités en fonction de leur pertinence par rapport à la variable cible, les méthodes wrapper utilisent les performances du modèle comme critère de sélection des fonctionnalités et les méthodes intégrées combinent la sélection des fonctionnalités avec le processus de formation du modèle.
Extraction de fonctionnalités: L'extraction de fonctionnalités implique la création de nouvelles fonctionnalités en combinant ou en transformant les fonctionnalités d'origine. L’objectif est de créer un ensemble de fonctionnalités qui capturent l’essence des données originales dans un espace de dimension inférieure. Il existe plusieurs méthodes d'extraction de caractéristiques, notamment l'analyse en composantes principales (ACP), l'analyse discriminante linéaire (LDA) et l'intégration de voisins stochastiques distribués en t (t-SNE). La PCA est une technique populaire qui projette les caractéristiques originales sur un espace de dimension inférieure tout en préservant autant de variance que possible.
Outils d'ingénierie de fonctionnalités automatisés
Il existe plusieurs outils utilisés pour automatiser l'ingénierie des fonctionnalités, examinons certains d'entre eux.
FeatureTools-Il s'agit d'un framework Python open source populaire pour l'ingénierie automatisée des fonctionnalités. Il fonctionne sur plusieurs tables liées et applique diverses transformations pour la génération de fonctionnalités. L'ensemble du processus est réalisé à l'aide d'une technique appelée « Deep Feature Synthesis » (DFS) qui applique de manière récursive des transformations à travers des ensembles d'entités pour générer des fonctionnalités complexes.
Autofeat- Il s'agit d'une bibliothèque Python qui fournit une ingénierie et une sélection automatisées de fonctionnalités ainsi que des modèles tels queAutoFeatRegressoretAutoFeatClassifier. Ceux-ci sont construits avec de nombreux calculs scientifiques et nécessitent une bonne puissance de calcul. Voici quelques-unes des fonctionnalités de la bibliothèque :
AutoML- L'apprentissage automatique automatique en termes simples peut être défini comme un concept de recherche, avec des algorithmes de recherche spécialisés pour trouver les solutions optimales pour chaque composant du pipeline ML. Il comprend : l'ingénierie automatisée des fonctionnalités, l'optimisation automatisée des hyperparamètres, la recherche d'architecture neuronale (NAS
Problèmes courants et meilleures pratiques en matière d'ingénierie de fonctionnalités
Problèmes courants
Imaginez une entreprise qui souhaite utiliser l'apprentissage automatique pour prédire les ventes mensuelles. Ils saisissent des données telles que le nombre d'employés et la taille du bureau, qui n'ont aucun rapport avec le volume des ventes.
Correctif : évitez cela en effectuant une analyse approfondie des fonctionnalités pour comprendre quelles variables de données sont nécessaires et supprimez celles qui ne le sont pas.
Imaginez une application prévoyant la croissance future du nombre d'utilisateurs qui intègre 100 fonctionnalités dans son modèle, mais la plupart d'entre elles partagent des informations qui se chevauchent.
Correctif : contrez ce problème en utilisant des stratégies telles que la réduction de dimensionnalité et la sélection de fonctionnalités pour minimiser le nombre d'entrées, réduisant ainsi la complexité du modèle.
Imaginez qu'un professionnel de la santé utilise l'âge du patient et son niveau de revenu pour prédire le risque d'une certaine maladie, mais ne normalise pas ces caractéristiques, qui ont des échelles différentes.
Correctif : appliquez des techniques de mise à l'échelle des fonctionnalités pour amener toutes les variables à une échelle similaire afin d'éviter ce problème.
Par exemple, un détaillant en ligne prédisant le taux de désabonnement des clients utilise les données de l'historique des achats, mais ne traite pas les cas où les données d'achat sont absentes.
Correctif : mettez en œuvre des stratégies pour gérer les valeurs manquantes, telles que l'imputation de données, dans lesquelles vous remplacez les valeurs manquantes par des estimations statistiques.
Bonnes pratiques
Assurez-vous de gérer les données manquantes dans vos fonctionnalités de saisie : dans un cas réel où un projet vise à prédire les prix des logements, toutes les entrées de données ne peuvent pas contenir d'informations sur l'âge d'une maison. Au lieu de supprimer ces entrées, vous pouvez imputer les données manquantes en utilisant une stratégie telle que « l’imputation moyenne », où la valeur moyenne de l’âge de la maison issue de l’ensemble de données est utilisée. En gérant correctement les données manquantes au lieu de simplement les supprimer, le modèle disposera de plus de données à partir desquelles apprendre, ce qui pourrait conduire à de meilleures performances du modèle.
Utilisez un encodage ponctuel pour les données catégorielles : par exemple, si nous avons une caractéristique « couleur » dans un ensemble de données sur les voitures, avec les valeurs possibles de « rouge », « bleu » et « vert » ", nous transformerions cela en trois fonctionnalités binaires distinctes : "is_red", "is_blue" et "is_green". Cette stratégie permet au modèle d'interpréter correctement les données catégorielles, améliorant ainsi la qualité des résultats et des prédictions du modèle.
Envisagez la mise à l'échelle des fonctionnalités : à titre d'exemple réel, un ensemble de données permettant de prédire une maladie peut avoir un âge en années (1 100) et des mesures du niveau de glucose (70 180). La mise à l'échelle place ces deux caractéristiques sur la même échelle, permettant à chacune de contribuer de manière égale aux calculs de distance, comme dans l'algorithme K-plus proches voisins (KNN). La mise à l'échelle des fonctionnalités peut améliorer les performances de nombreux algorithmes d'apprentissage automatique, les rendant plus efficaces et réduisant le temps de calcul.
Créez des fonctionnalités d'interaction le cas échéant : un exemple pourrait inclure la prévision des interactions entre les prix de l'immobilier, ce qui peut être bénéfique. La création d'une nouvelle fonctionnalité qui multiplie le nombre de salles de bains par la superficie totale en pieds carrés peut donner au modèle de nouvelles informations précieuses. Les fonctionnalités d'interaction peuvent capturer des modèles dans les données que les modèles linéaires ne verraient pas autrement, améliorant potentiellement les performances du modèle.
Supprimer les fonctionnalités non pertinentes : dans un problème où nous devons prédire le prix d'un smartphone, la couleur du smartphone peut avoir peu d'impact sur la prédiction et peut être supprimée. La suppression des fonctionnalités non pertinentes peut simplifier votre modèle, le rendre plus rapide, plus interprétable et réduire le risque de surajustement.
L'ingénierie des fonctionnalités n'est pas seulement une étape de pré-traitement dans l'apprentissage automatique ; c’est un aspect fondamental qui peut faire ou défaire le succès de vos modèles. Des fonctionnalités bien conçues peuvent conduire à des prédictions plus précises et à une meilleure généralisation. Représentation des données : les fonctionnalités servent de base sur laquelle fonctionnent les algorithmes d'apprentissage automatique. En représentant efficacement les données, l'ingénierie des fonctionnalités permet aux algorithmes de discerner des modèles significatifs. Par conséquent, les data scientists en herbe, voire expérimentés, ainsi que les passionnés et ingénieurs de l'apprentissage automatique doivent reconnaître le rôle central que joue l'ingénierie des fonctionnalités dans l'extraction d'informations significatives à partir des données. En comprenant l'art de l'ingénierie des fonctionnalités et en l'appliquant correctement, on peut libérer le véritable potentiel des algorithmes d'apprentissage automatique et générer des solutions percutantes dans divers domaines.
Si vous avez des questions ou si vous souhaitez améliorer mon article, veuillez les laisser dans la section commentaires. Merci!
Das obige ist der detaillierte Inhalt vonFeature Engineering: Das Potenzial von Daten für überlegene Modelle für maschinelles Lernen nutzen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!