Cet article présente trois méthodes de sélection de fonctionnalités dans l'apprentissage automatique

guide

Une théorie classique de l'apprentissage automatique est la suivante : les données et les caractéristiques déterminent la limite supérieure de l'apprentissage automatique, et les modèles et les algorithmes ne s'approchent que de cette limite supérieure. C'est pour cette raison que l'ingénierie des fonctionnalités joue un rôle important dans le processus d'apprentissage automatique. L'ingénierie de caractéristiques au sens large peut généralement être divisée en trois liens : extraction de caractéristiques, sélection de caractéristiques et dérivation de caractéristiques. Il n'y a pas d'ordre de priorité clair pour les trois liens. Cet article présente principalement trois méthodes de sélection de caractéristiques couramment utilisées.

Les fonctionnalités de l'apprentissage automatique doivent être sélectionnées, alors pourquoi pas dans la vie ?

La sélection de fonctionnalités fait référence au processus de sélection d'un sous-ensemble parmi de nombreuses fonctionnalités disponibles. Son objectif et son effet attendu sont généralement pris en compte sous les trois aspects suivants :

  • L'amélioration de l'effet du modèle est principalement obtenue en filtrant les caractéristiques invalides ou les caractéristiques de bruit ;

  • Accélérez la formation des modèles, un espace de fonctionnalités plus rationalisé peut naturellement améliorer la vitesse de formation des modèles

  • Améliorer l'interprétabilité des fonctionnalités, le rôle de cet aspect n'est généralement pas particulièrement évident. Par exemple, lorsqu'il existe un ensemble de fonctionnalités avec une colinéarité élevée, seules les fonctionnalités à haute efficacité peuvent être conservées grâce à une sélection de fonctionnalités raisonnable, améliorant ainsi l'interprétabilité du modèle.

D'autre part, pour comprendre la différence dans les méthodes de sélection des fonctionnalités, il est d'abord nécessaire de classer les fonctionnalités en fonction de leur valeur pour la tâche d'entraînement comme suit :

  • Fonctionnalités de grande valeur, ces fonctionnalités sont très utiles pour la formation du modèle, le but de la sélection des fonctionnalités est de conserver ces fonctionnalités aussi précisément que possible

  • Fonctionnalités de faible valeur, ces fonctionnalités ne sont pas très utiles pour la formation du modèle, mais ce sont également des fonctionnalités positivement corrélées, et ces fonctionnalités peuvent être ignorées lorsque le taux de sélection des fonctionnalités est faible ;

  • Fonctionnalités à corrélation élevée, ces fonctionnalités sont également très utiles pour la formation de modèles, mais la corrélation entre les fonctionnalités est souvent élevée, en d'autres termes, un ensemble de fonctionnalités peut être remplacé par un autre ensemble de fonctionnalités, il y a donc des fonctionnalités redondantes, dans la sélection des fonctionnalités. doit être filtré ;

  • Caractéristiques de bruit, ces caractéristiques n'ont non seulement aucun effet positif sur la formation du modèle, mais interfèrent avec l'effet de formation du modèle. Les méthodes de sélection de fonctionnalités efficaces doivent les filtrer de préférence.

Dans les applications pratiques, les méthodes de sélection de caractéristiques peuvent être principalement divisées en trois catégories :

Cet article présentera ces trois méthodes séparément et donnera enfin une comparaison simple d'application et d'effet avec l'ensemble de données fourni avec sklearn comme exemple.

01 Méthode de filtration

La sélection d'entités basée sur la méthode de filtrage est la méthode la plus simple et la plus couramment utilisée. Son plus grand avantage est qu'elle ne dépend pas du modèle et n'exploite sa valeur que du point de vue des entités, afin de réaliser le tri et la sélection des entités. En fait, le cœur du schéma de sélection de caractéristiques basé sur la méthode de filtrage consiste à trier les caractéristiques - après le tri en fonction de la valeur des caractéristiques, n'importe quelle proportion/nombre de caractéristiques peut être sélectionnée ou éliminée. De toute évidence, comment évaluer la valeur des fonctionnalités pour réaliser le tri est le lien clé ici.

Afin d'évaluer la valeur des fonctionnalités, celle-ci peut être grossièrement divisée en trois types de critères d'évaluation :

  • Basé sur la quantité d'informations contenues dans la caractéristique : il s'agit généralement de la sélection de la caractéristique basée sur la méthode de la variance, c'est-à-dire que plus la variance est élevée, plus la distinction de l'étiquette est élevée ; sinon, la caractéristique à faible variance est considérée comme ayant une distinction plus faible Dans les cas extrêmes, lorsque toutes les valeurs d'une colonne de caractéristiques sont identiques, la variance est de 0 et elle n'a aucune valeur pour l'entraînement du modèle. Bien sûr, dans les faits, il est imprécis de mesurer directement la quantité d'information contenue dans le trait par la taille de la variance.Par exemple, pour les deux groupes de traits [100, 110, 120] et [1, 5, 9 ], selon la formule de calcul de la variance du premier Larger, mais le second peut être plus discriminant du point de vue de l'apprentissage automatique. Par conséquent, il est généralement nécessaire de normaliser les caractéristiques avant d'utiliser la méthode de la variance pour la sélection des caractéristiques.

  • Basé sur la corrélation : généralement basé sur la théorie statistique, le coefficient de corrélation entre chaque colonne et la colonne d'étiquette est calculé un par un. Lorsqu'une caractéristique de colonne présente une corrélation élevée avec l'étiquette, elle est considérée comme plus utile pour l'entraînement du modèle. Il existe de nombreux indicateurs pour mesurer la corrélation entre deux colonnes de données, notamment la distance euclidienne, le test du chi carré, le test T, etc.

  • Basé sur la théorie de l'entropie de l'information : similaire à la méthode de corrélation dérivée des statistiques, le degré de corrélation entre une colonne d'entités et des colonnes d'étiquettes peut également être mesuré du point de vue de la théorie de l'information. Une méthode typique consiste à calculer les informations mutuelles des colonnes d'entités. et étiqueter les colonnes. Lorsque les informations mutuelles sont plus grandes, cela signifie que le degré de certitude des informations d'étiquette est plus élevé lorsque les caractéristiques de colonne sont fournies. Ceci est en fait similaire à l'idée de critère de division dans l'arbre de décision

Bien sûr, les inconvénients de la méthode de sélection des fonctionnalités basée sur la méthode de filtrage sont également extrêmement évidents :

  • Parce que cela ne dépend pas du modèle, il est impossible d'extraire le meilleur système de fonctionnalités qui s'adapte au modèle ;

  • Le tri et la sélection des caractéristiques sont effectués indépendamment (l'indépendance fait ici référence à l'indépendance entre les caractéristiques et les caractéristiques, à l'exclusion des calculs de corrélation entre les caractéristiques et les étiquettes, etc.), pour certaines caractéristiques qui ont une valeur faible seule et une valeur élevée en combinaison Impossible de découvrir et de retenir efficacement .

02 méthode d'emballage

La méthode de filtrage consiste à trier du point de vue de l'importance des caractéristiques, de manière à terminer le processus de sélection des caractéristiques cibles ou de filtrage des caractéristiques à faible efficacité. Comme mentionné précédemment, l'un de ses principaux inconvénients est que, comme il ne repose sur aucun modèle, il est impossible de sélectionner le système de fonctionnalités le plus approprié pour le modèle correspondant. En même temps, il y a toujours un problème caché : c'est-à-dire le problème de la proportion de rétention de la sélection de fonctionnalités.En fait, il s'agit souvent d'un hyperparamètre, qui nécessite généralement une définition manuelle ou une optimisation des hyperparamètres.

En revanche, la méthode d'enveloppement considère la sélection de caractéristiques comme un problème de boîte noire : c'est-à-dire que seule la fonction objectif doit être spécifiée (cette fonction objectif est généralement l'indicateur d'évaluation sous un modèle spécifique), et la fonction objectif est maximisée par un certaine méthode, indépendamment des problèmes liés à sa mise en œuvre interne. De plus, du point de vue de la mise en œuvre spécifique, étant donné un problème de sélection de caractéristiques avec N caractéristiques, il peut être résumé comme la sélection des K sous-ensembles de caractéristiques optimaux pour atteindre la valeur optimale de la fonction objectif. Il est facile de voir que K peut être ici n'importe quelle valeur de 1 à N, donc la complexité de recherche de ce problème est la puissance exponentielle : O(2^N).

Bien sûr, pour un tel algorithme d'une telle complexité, il est impossible pour les prédécesseurs intelligents d'essayer directement violemment, d'autant plus que la fonction objectif est souvent suffisamment coûteuse (c'est-à-dire le processus d'évaluation du modèle sur un sous-ensemble spécifique de caractéristiques Généralement, c'est un processus qui prend du temps), il existe donc généralement deux méthodes de mise en œuvre spécifiques comme suit :

  • sélection séquentielle. Le nom est sélection séquentielle, mais il s'agit en fait d'un algorithme gourmand. Le problème de recherche de sous-espace optimal contenant K caractéristiques est simplifié au processus de sélection récursive à partir de 1-> K (Sequential Feature Selection, SFS) ou d'élimination récursive à partir de N-> K (Sequential Backward Selection, SBS). sélection, et cette dernière est appelée en conséquence sélection arrière.

    Plus précisément, en prenant la sélection récursive comme exemple, le sous-espace des caractéristiques est vide dans l'état initial, essayez de sélectionner chaque caractéristique une par une pour l'ajouter au sous-espace des caractéristiques, calculez la valeur de la fonction objectif correspondante, effectuez ce processus N fois, et obtenir la meilleure première caractéristique actuelle ; de cette façon, de manière récursive, continuez à sélectionner la deuxième et la troisième, jusqu'à ce que le nombre de fonctionnalités K attendu soit terminé. Le nombre d'exécutions de la fonction objectif de ce processus est O(K^2), ce qui est acceptable par rapport à la complexité de l'algorithme de puissance exponentielle. Bien sûr, de nombreux algorithmes améliorés ont été dérivés du processus de candidature réel, comme indiqué dans l'organigramme ci-dessous :

图源:《Une enquête sur les méthodes de sélection des fonctionnalités》

  • Recherche heuristique. La recherche heuristique applique généralement des algorithmes évolutifs, tels que les algorithmes génétiques, qui sont largement utilisés dans le domaine de l'optimisation. Dans l'implémentation spécifique, il est nécessaire d'examiner comment exprimer le sous-espace de caractéristiques en tant qu'individu dans la population (par exemple, exprimer le problème de sélection contenant N caractéristiques sous la forme d'une séquence 0/1 de longueur N, où 1 signifie sélectionner la caractéristique , 0 signifie pas de sélection, le nombre de 1 dans la séquence est le nombre de caractéristiques dans le sous-espace de caractéristiques), puis l'effet du modèle dans le sous-espace de caractéristiques correspondant peut être défini comme la fitness de l'individu correspondant dans la population ; la seconde est de définir l'opération principale dans l'algorithme génétique : les processus évolutifs tels que le croisement, la mutation et la reproduction.

Le schéma de sélection de fonctionnalités basé sur la méthode d'enveloppement est un schéma de mise en œuvre orienté modèle, il a donc le meilleur effet de sélection en théorie. Mais en fait, dans le processus de mise en œuvre ci-dessus, il est généralement nécessaire de pré-spécifier le nombre de fonctionnalités que l'on s'attend à retenir, donc le problème des hyperparamètres est également impliqué. De plus, le plus gros inconvénient de la méthode d'emballage est l'énorme quantité de calcul.Bien que la mise en œuvre de la sélection séquentielle réduise la complexité de l'algorithme à l'ordre du carré, il s'agit toujours d'un grand nombre ; tandis que l'algorithme génétique et l'algorithme d'essaim de particules Heuristic Les schémas de recherche, parce qu'ils sont tous des implémentations optimisées basées sur la population, impliquent naturellement beaucoup de calculs.

03 Méthode d'intégration

C'est similaire à l'idée que la méthode du package s'appuie sur le modèle pour la sélection, mais c'est différent de l'énorme quantité de calculs impliqués : le schéma de sélection des fonctionnalités basé sur la méthode d'intégration, comme son nom l'indique, consiste à "attacher" le processus de sélection de fonctionnalités à une tâche de formation de modèle elle-même, de sorte que le processus de sélection de fonctionnalités dépend d'un modèle d'algorithme spécifique.

Personnellement, j'ai toujours pensé que le mot « intégré » était une existence très magique dans le domaine de l'apprentissage automatique. Même lorsque je suis entré en contact avec la méthode de sélection de fonctionnalités, j'ai une fois confondu la méthode d'intégration avec la méthode d'emballage et je ne pouvais pas le comprendre perceptuellement.

En fait, à ce stade du texte, le schéma de sélection de fonctionnalités basé sur la méthode d'intégration est prêt à sortir. Les plus couramment utilisés sont le modèle d'arbre et une série d'algorithmes d'intégration basés sur le modèle d'arbre. Puisque le modèle fournit l'information importante d'importance de la caractéristique, elle peut être utilisée naturellement.La valeur du modèle de réalisation est élevée ou faible, de manière à compléter le processus de sélection ou de filtrage des caractéristiques en fonction du niveau d'importance de la caractéristique. De plus, en plus des modèles de séries d'arbres de décision, des modèles linéaires généralisés tels que LR et SVM peuvent également évaluer l'importance des caractéristiques en ajustant des coefficients de pondération.

Le schéma de sélection de caractéristiques basé sur la méthode d'intégration est simple et efficace, et est généralement considéré comme intégrant les avantages des deux schémas de la méthode de filtrage et de la méthode d'enveloppement : il présente non seulement les avantages de la sélection de caractéristiques orientée modèle dans la méthode d'enveloppement méthode, mais a également la faible surcharge et la vitesse rapide de la méthode de filtrage. . Mais en fait, il a également un défaut correspondant : il ne peut pas identifier les caractéristiques hautement corrélées, par exemple, la caractéristique A et la caractéristique B ont toutes deux des coefficients d'importance de caractéristique élevés, mais en même temps, les deux sont fortement corrélés, même la caractéristique A = caractéristique B À l'heure actuelle, le schéma de sélection des fonctionnalités basé sur la méthode d'intégration est impuissant.

04 Comparaison pratique de trois schémas de sélection de fonctionnalités

Cette section prend comme exemple l'ensemble de données sur le cancer du sein dans sklearn, donne la mise en œuvre de base de trois schémas de sélection de caractéristiques et compare brièvement les résultats de la sélection de caractéristiques.

Chargez l'ensemble de données et importez les packages prérequis :

from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.feature_selection import SelectFromModel, SelectKBest, RFE
from sklearn.ensemble import RandomForestClassifier

L'ensemble de données par défaut forme le modèle et garantit que les fractionnements suivants sont cohérents en définissant une graine de nombre aléatoire dans train_test_split :

%%time
X, y = load_breast_cancer(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=3)


rf = RandomForestClassifier(max_depth=5, random_state=3)
rf.fit(X_train, y_train)
rf.score(X_test, y_test)


# 输出结果
CPU times: user 237 ms, sys: 17.5 ms, total: 254 ms
Wall time: 238 ms
0.9370629370629371

Le schéma de sélection des fonctionnalités de la méthode de filtrage est implémenté en appelant SelectKBest dans sklearn. Le test F est utilisé en interne par défaut pour mesurer la corrélation entre les fonctionnalités et les étiquettes, et la dimension de la fonctionnalité de sélection est définie sur 20 :

%%time
X_skb = SelectKBest(k=20).fit_transform(X, y)
X_skb_train, X_skb_test, y_train, y_test = train_test_split(X_skb, y, random_state=3)


rf = RandomForestClassifier(max_depth=5, random_state=3)
rf.fit(X_skb_train, y_train)
rf.score(X_skb_test, y_test)


# 输出结果
CPU times: user 204 ms, sys: 7.14 ms, total: 211 ms
Wall time: 208 ms
0.9300699300699301

Le schéma de sélection de fonctionnalités de la méthode d'emballage est implémenté en appelant RFE dans sklearn. La fonction objectif entrante, c'est-à-dire que le modèle d'algorithme est une forêt aléatoire, et la dimension de sélection de fonctionnalités est également définie sur 20 :

%%time
X_rfe = RFE(RandomForestClassifier(), n_features_to_select=20).fit_transform(X, y)
X_rfe_train, X_rfe_test, y_train, y_test = train_test_split(X_rfe, y, random_state=3)


rf = RandomForestClassifier(max_depth=5, random_state=3)
rf.fit(X_rfe_train, y_train)
rf.score(X_rfe_test, y_test)


# 输出结果
CPU times: user 2.76 s, sys: 4.57 ms, total: 2.76 s
Wall time: 2.76 s
0.9370629370629371

Le schéma de sélection de fonctionnalités de la méthode d'intégration est implémenté en appelant SelectFromModel dans sklearn, et le modèle d'algorithme dépendant est également défini sur forêt aléatoire, et la dimension de sélection de fonctionnalités est toujours de 20 :

%%time
X_sfm = SelectFromModel(RandomForestClassifier(), threshold=-1, max_features=20).fit_transform(X, y)
X_sfm_train, X_sfm_test, y_train, y_test = train_test_split(X_sfm, y, random_state=3)


rf = RandomForestClassifier(max_depth=5, random_state=3)
rf.fit(X_sfm_train, y_train)
rf.score(X_sfm_test, y_test)


# 输出结果
CPU times: user 455 ms, sys: 0 ns, total: 455 ms
Wall time: 453 ms
0.9370629370629371

Grâce aux expériences comparatives simples ci-dessus, on peut constater que par rapport au schéma de fonctionnalités complet d'origine, la méthode de filtrage entraîne une certaine perte de performances de l'algorithme lorsque seules les fonctionnalités à 20 dimensions sont conservées, tandis que la méthode d'emballage et la méthode d'intégration conservent le même effet de modèle . , mais la méthode d'intégration prend beaucoup moins de temps .

Lecture connexe :

Je suppose que tu aimes

Origine blog.csdn.net/weixin_43841688/article/details/120108696
conseillé
Classement