Top 6 des techniques utilisées dans l'ingénierie des fonctionnalités [Apprentissage automatique]

Publié: 2021-03-12

Table des matières

introduction

L'ingénierie des fonctionnalités est l'un des aspects les plus importants de tout projet de science des données. L'ingénierie des caractéristiques fait référence aux techniques utilisées pour extraire et affiner les caractéristiques des données brutes. Les techniques d'ingénierie des fonctionnalités sont utilisées pour créer des données d'entrée appropriées pour le modèle et pour améliorer les performances du modèle.

Les modèles sont formés et construits sur les fonctionnalités que nous dérivons des données brutes pour fournir la sortie requise. Il peut arriver que les données dont nous disposons ne soient pas assez bonnes pour que le modèle en apprenne quelque chose. Si nous sommes capables de dériver les caractéristiques qui trouvent la solution à notre problème sous-jacent, cela s'avérerait être une bonne représentation des données. Meilleure est la représentation des données, meilleur sera l'ajustement du modèle et de meilleurs résultats seront présentés par le modèle.

Le flux de travail de tout projet de science des données est un processus itératif plutôt qu'un processus ponctuel. Dans la plupart des projets de science des données, un modèle de base est créé après avoir créé et affiné les fonctionnalités à partir des données brutes. Lors de l'obtention des résultats du modèle de base, certaines fonctionnalités existantes peuvent être modifiées, et certaines nouvelles fonctionnalités sont également dérivées des données pour optimiser les résultats du modèle.

Ingénierie des fonctionnalités

Les techniques utilisées dans le processus d'ingénierie des caractéristiques peuvent fournir les résultats de la même manière pour tous les algorithmes et ensembles de données. Certaines des techniques courantes utilisées dans le processus d'ingénierie des fonctionnalités sont les suivantes :

1. Transformation de valeur

Les valeurs des caractéristiques peuvent être transformées en une autre métrique en utilisant des paramètres tels que la fonction logarithmique, la fonction racine, la fonction exponentielle, etc. Il existe certaines limitations pour ces fonctions et elles peuvent ne pas être utilisées pour tous les types d'ensembles de données. Par exemple, la transformation racine ou la transformation logarithmique ne peut pas être appliquée aux entités qui contiennent des valeurs négatives.

L'une des fonctions les plus utilisées est la fonction logarithmique. La fonction logarithmique peut aider à réduire l'asymétrie des données qui peuvent être biaisées vers une extrémité. La transformation log a tendance à normaliser les données, ce qui réduit l'effet des valeurs aberrantes sur les performances du modèle.

Cela aide également à réduire l'ampleur des valeurs d'une fonctionnalité. Ceci est utile lorsque nous utilisons certains algorithmes qui considèrent que les caractéristiques avec des valeurs plus élevées sont plus importantes que les autres.

2. Imputation des données

L'imputation des données fait référence au remplissage des valeurs manquantes dans un ensemble de données avec une certaine valeur statistique. Cette technique est importante car certains algorithmes ne fonctionnent pas sur les valeurs manquantes, ce qui nous limite à utiliser d'autres algorithmes ou impute ces valeurs manquantes. Il est préférable de l'utiliser si le pourcentage de valeurs manquantes dans une caractéristique est inférieur (environ 5 à 10 %), sinon cela conduirait à plus de distorsion dans la distribution des données. Il existe différentes méthodes pour le faire pour les caractéristiques numériques et catégorielles.

Nous pouvons imputer les valeurs manquantes dans les caractéristiques numériques avec des valeurs arbitraires dans une plage spécifiée ou avec des mesures statistiques comme la moyenne, la médiane, etc. Ces imputations doivent être faites avec précaution car les mesures statistiques sont sujettes à des valeurs aberrantes qui dégraderaient plutôt les performances du modèle. . Pour les caractéristiques catégorielles, nous pouvons imputer les valeurs manquantes avec une catégorie supplémentaire manquante dans l'ensemble de données ou simplement les imputer comme manquantes si la catégorie est inconnue.

Le premier nécessite une bonne connaissance du domaine pour pouvoir trouver la bonne catégorie, tandis que le second est davantage une alternative à la généralisation. Nous pouvons également utiliser mode pour imputer les caractéristiques catégorielles. L'imputation des données avec mode peut également entraîner une surreprésentation de l'étiquette la plus fréquente si les valeurs manquantes sont trop nombreuses.

Rejoignez les cours d'intelligence artificielle en ligne des meilleures universités du monde - Masters, Executive Post Graduate Programs et Advanced Certificate Program in ML & AI pour accélérer votre carrière.

3. Encodage catégoriel

L'une des exigences de nombreux algorithmes est que les données d'entrée doivent être de nature numérique. Cela s'avère être une contrainte pour l'utilisation de caractéristiques catégorielles dans de tels algorithmes. Pour représenter les caractéristiques catégorielles sous forme de nombres, nous devons effectuer un codage catégoriel. Certaines des méthodes pour convertir les caractéristiques catégorielles en nombres sont les suivantes :

1. Codage à chaud : – Le codage à chaud crée une nouvelle fonctionnalité qui prend une valeur (0 ou 1) pour chaque étiquette dans une fonctionnalité catégorielle. Cette nouvelle fonctionnalité indique si cette étiquette de la catégorie est présente pour chaque observation. Par exemple, supposons qu'il y ait 4 étiquettes dans une caractéristique catégorique, puis lors de l'application d'un encodage à chaud, cela créerait 4 caractéristiques booléennes.

La même quantité d'informations peut également être extraite avec 3 caractéristiques comme si toutes les caractéristiques contenaient 0, alors la valeur de la caractéristique catégorique serait la 4ème étiquette. L'application de cette méthode augmente l'espace des caractéristiques s'il existe de nombreuses caractéristiques catégorielles avec un nombre élevé d'étiquettes dans l'ensemble de données.

2. Codage de fréquence : – Cette méthode calcule le nombre ou le pourcentage de chaque étiquette dans l'entité catégorique et la met en correspondance avec la même étiquette. Cette méthode n'étend pas l'espace des caractéristiques de l'ensemble de données. Un inconvénient de cette méthode est que si les deux étiquettes ou plus ont le même nombre dans l'ensemble de données, cela donnerait à la carte le même numéro pour toutes les étiquettes. Cela conduirait à la perte d'informations cruciales.

3. Codage ordinal : – Également connue sous le nom de codage d'étiquette, cette méthode mappe les valeurs distinctes d'une caractéristique catégorique avec un nombre compris entre 0 et n-1, n étant le nombre distinct d'étiquettes dans la caractéristique. Cette méthode n'agrandit pas l'espace des caractéristiques de l'ensemble de données. Mais cela crée une relation ordinale dans les étiquettes d'une entité.

4. Traitement des valeurs aberrantes

Les valeurs aberrantes sont les points de données dont les valeurs sont très différentes du reste du lot. Pour gérer ces valeurs aberrantes, nous devons d'abord les détecter. Nous pouvons les détecter à l'aide de visualisations telles que le box-plot et le scatter-plot en Python, ou nous pouvons utiliser l'intervalle interquartile (IQR). L'écart interquartile est la différence entre le premier quart (25e centile) et le troisième quart (75e centile).

Les valeurs qui ne se situent pas dans la plage de (Q1 – 1,5*IQR) et (Q3 + 1,5*IQR) sont qualifiées de valeurs aberrantes. Après avoir détecté les valeurs aberrantes, nous pouvons les gérer en les supprimant de l'ensemble de données, en appliquant une transformation, en les traitant comme des valeurs manquantes pour les imputer à l'aide d'une méthode, etc.

5. Mise à l'échelle des fonctionnalités

La mise à l'échelle des entités est utilisée pour modifier les valeurs des entités et les ramener dans une plage. Il est important d'appliquer ce processus si nous utilisons des algorithmes tels que SVM, régression linéaire, KNN, etc. qui sont sensibles à l'ampleur des valeurs. Pour mettre à l'échelle les fonctionnalités, nous pouvons effectuer une standardisation, une normalisation, une mise à l'échelle min-max. La normalisation remet à l'échelle les valeurs d'une caractéristique comprise entre -1 et 1. Il s'agit du rapport de soustraction de chaque observation et de la moyenne à la soustraction de la valeur maximale et minimale de cette caractéristique. c'est-à-dire [X – moyenne(X)]/[max(X) – min(X)].

Dans la mise à l'échelle min-max, il utilise la valeur minimale de la caractéristique au lieu de la moyenne. Cette méthode est très sensible aux valeurs aberrantes car elle ne prend en compte que les valeurs finales de l'entité. La normalisation remet à l'échelle les valeurs d'une caractéristique de 0 à 1. Elle ne normalise pas la distribution des données alors que l'ancienne méthode le fera.

6. Gestion des variables de date et d'heure

Nous rencontrons de nombreuses variables qui indiquent la date et l'heure dans différents formats. Nous pouvons dériver plus de caractéristiques de la date comme le mois, le jour de la semaine/mois, l'année, le week-end ou non, la différence entre les dates, etc. Cela peut nous permettre d'extraire des informations plus pertinentes de l'ensemble de données. À partir des fonctions temporelles, nous pouvons également extraire des informations telles que les heures, les minutes, les secondes, etc.

Une chose qui manque à la plupart des gens est que toutes les variables de date et d'heure sont des caractéristiques cycliques. Par exemple, supposons que nous devions vérifier quel jour entre mercredi (3) et samedi (7) est le plus proche de dimanche (étant un 1). Maintenant, nous savons que le samedi est plus proche mais en termes numériques, ce sera un mercredi car la distance entre 3 et 1 est inférieure à celle de 7 et 1. La même chose peut être appliquée lorsque le format de l'heure est au format 24 heures.

Pour résoudre ce problème, nous pouvons exprimer ces variables sous la forme d'une représentation de la fonction sin et cos. Pour la fonctionnalité 'minute', nous pouvons appliquer la fonction sin et cos en utilisant NumPy pour la représenter de manière cyclique comme suit :

minute_feature_sin = np.sin(df['minute_feature']*(2*π/60))

minute_feature_cos = np.cos(df['minute_feature']*(2*π/60))

(Remarque : diviser par 60 car il y a 60 minutes dans une heure. Si vous voulez le faire pendant des mois, divisez-le par 12 et ainsi de suite)

En traçant ces caractéristiques sur un nuage de points, vous remarquerez que ces caractéristiques présentent une relation cyclique entre elles.

Lisez aussi : Idées et sujets de projets d'apprentissage automatique

Conclusion

L'article s'est concentré sur l'importance de l'ingénierie des fonctionnalités tout en citant certaines techniques courantes utilisées dans le processus d'ingénierie des fonctionnalités. Cela dépend de l'algorithme et des données disponibles pour décider quelles techniques parmi toutes celles énumérées ci-dessus fourniraient de meilleures informations.

Mais c'est vraiment un hic difficile et pas sûr à supposer car les ensembles de données peuvent être différents et les algorithmes utilisés pour les données peuvent également varier. La meilleure approche consiste à suivre une approche incrémentielle et à garder une trace des modèles qui ont été construits avec leurs résultats plutôt que d'effectuer l'ingénierie des fonctionnalités de manière imprudente.

Si vous souhaitez en savoir plus sur l'apprentissage automatique, consultez le programme Executive PG d'IIIT-B & upGrad en apprentissage automatique et IA , conçu pour les professionnels en activité et offrant plus de 450 heures de formation rigoureuse, plus de 30 études de cas et missions, IIIT -B Statut d'anciens élèves, 5+ projets de synthèse pratiques et aide à l'emploi avec les meilleures entreprises.

Quels sont les inconvénients de l'utilisation de la technique d'imputation des données basée sur la moyenne médiane ?

Lors de l'utilisation de l'imputation moyenne, les liens et les corrélations entre les variables ne sont pas conservés. Mais l'imputation de la moyenne maintient la moyenne des données observées. Par conséquent, même si toutes les données manquaient au hasard, l'estimation moyenne resterait sans biais. La variance des variables imputées est réduite à l'aide de l'imputation moyenne. L'imputation moyenne réduit les erreurs types, ce qui rend la plupart des tests d'hypothèse et des calculs d'intervalle de confiance inexacts. Ainsi, les erreurs de type I sont commises inconsciemment.

Pourquoi l'extraction de caractéristiques est-elle requise ?

L'extraction de caractéristiques est utilisée pour localiser la collection de caractéristiques la plus petite et la plus informative (modèles distincts) afin d'améliorer l'efficacité du classificateur. L'extraction de caractéristiques aide à réduire les données inutiles dans une collecte de données afin que l'accent soit mis uniquement sur les informations et les caractéristiques pertinentes. Enfin, la réduction des données permet à la machine de développer plus facilement le modèle avec moins d'effort, ainsi que d'accélérer les processus d'apprentissage et de généralisation dans le processus d'apprentissage automatique. L'application la plus importante de l'ingénierie des caractéristiques est la classification des signaux biomédicaux, où l'extraction des caractéristiques est un élément important, car si les caractéristiques ne sont pas choisies avec soin, les performances de classification pourraient en souffrir.

Y a-t-il des inconvénients à utiliser la technique d'extraction de caractéristiques ?

L'extraction de fonctionnalités a mis au point de nouvelles fonctionnalités qui ne peuvent pas être lues ou comprises par des personnes ordinaires. L'évolutivité est un autre défi rencontré lors de l'extraction de fonctionnalités. Si les jeux de données sont volumineux, certaines des techniques d'extraction de caractéristiques ne pourront pas être exécutées. Les approches complexes d'extraction de caractéristiques non linéaires, en particulier, seraient impossibles à mettre en œuvre. La plupart des techniques reposent sur une certaine forme d'approximation pour gérer efficacement le problème de sélection des caractéristiques, qui dans certaines situations est incapable de résoudre le problème précis.