Présentation des méthodes de sélection des fonctionnalités



La sélection correcte des fonctionnalités pour l'analyse des données vous permet de:

  • améliorer la qualité des modèles d'apprentissage automatique avec et sans professeur,
  • réduire le temps de formation et réduire la puissance de calcul requise,
  • et dans le cas de données d'entrée de haute dimension permet d'affaiblir la «malédiction de dimension».

Une évaluation de l'importance des attributs est nécessaire pour interpréter les résultats du modèle.

Nous examinerons les méthodes existantes pour sélectionner les traits pour les tâches d'enseignement avec et sans professeur. Chaque méthode est illustrée par une implémentation open source en Python afin que vous puissiez tester rapidement les algorithmes proposés. Cependant, ce n'est pas une sélection complète: au cours des 20 dernières années, de nombreux algorithmes ont été créés, et vous trouverez ici les plus basiques d'entre eux. Pour une étude plus approfondie, consultez cette revue .

Modèles avec et sans professeur


Il existe des algorithmes de sélection avec l'enseignant, qui vous permettent de déterminer les caractéristiques appropriées pour la meilleure qualité de travail des tâches d'enseignement avec l'enseignant (par exemple, dans les problèmes de classification et de régression). Ces algorithmes doivent avoir accès aux données balisées. Pour les données non étiquetées, il existe également un certain nombre de méthodes de sélection des entités qui évaluent toutes les entités en fonction de divers critères: variance, entropie, capacité à maintenir la similitude locale, etc. Les entités pertinentes détectées à l'aide de méthodes heuristiques sans enseignant peuvent également être utilisées dans les modèles avec enseignant, car elles peuvent détecter des modèles autres que la corrélation des entités avec la variable cible.

Les méthodes de sélection caractéristiques sont généralement divisées en 4 catégories: filtres, wrappers, intégrés et hybrides.

Wrappers


Avec cette approche, nous évaluons l'efficacité d'un sous-ensemble d'attributs, en tenant compte du résultat final de l'algorithme d'apprentissage appliqué (par exemple, quelle est l'augmentation de la précision dans la résolution du problème de classification). Dans cette combinaison de stratégie de recherche et de modélisation, n'importe quel algorithme d'apprentissage peut être utilisé.



Stratégies de sélection existantes:

  • Sélection directe (sélection directe) : nous commençons avec un ensemble vide de fonctionnalités, puis ajoutons de manière itérative des fonctionnalités qui offrent la meilleure augmentation de la qualité des modèles.
  • Sélection vers l'arrière : nous commençons par un ensemble de tous les attributs, puis à chaque itération nous supprimons l'attribut «pire».

Implémentation: ces algorithmes sont implémentés dans le package mlxtend , voici un exemple d' utilisation.

  • RFE (Élimination récursive des fonctionnalités): algorithme de recherche «gourmand» qui sélectionne les fonctionnalités en définissant de manière récursive des ensembles de fonctionnalités de plus en plus petits. Il classe les panneaux selon l'ordre dans lequel ils sont retirés.

    Implémentation: scikit-learn

Méthodes en ligne


Ce groupe comprend des algorithmes qui entraînent simultanément le modèle et sélectionnent des fonctionnalités. Ceci est généralement implémenté à l'aide du régularisateur l1 ( régularisateur à faible densité) ou d'une condition qui limite certains des signes.

  • SMLR (Sparse Multinomial Logistic Regression): Cet algorithme implémente la régularisation l1 en utilisant ARD (Automatic pertinence determination) dans le cadre de la régression logistique multinomiale classique. La régularisation détermine l'importance de chaque trait et annule ceux qui sont inutiles pour la prédiction.

    Implémentation: SMLR
  • ARD (Automatic Pertinence Determination Regression): Le modèle utilise la régression Bayesian Ridge. Il déplace le poids des coefficients vers zéro plus fortement, par rapport, par exemple, à la méthode des moindres carrés.



    ARD met à zéro le poids de certaines fonctionnalités, aidant ainsi à identifier les dimensions pertinentes.

    Implémentation: scikit-learn

Autres exemples d'algorithmes de régularisation: Lasso (implémente l1- régularisation), régression de crête (implémente l2- régularisation), Elastic Net (implémente l1 - et l2- régularisation). Si vous décrivez ces méthodes graphiquement, vous pouvez voir que la régression de Lasso limite les coefficients au carré, la régression de crête délimite le cercle et le filet élastique occupe une position intermédiaire.


https://scikit-learn.org/stable/auto_examples/linear_model/plot_sgd_penalties.html

Une description complète de ces algorithmes est fournie ici .

Filtres


Avec cette approche, nous évaluons l'importance des attributs uniquement sur la base de leurs caractéristiques inhérentes, sans impliquer des algorithmes d'apprentissage. Ces méthodes sont plus rapides et nécessitent moins de ressources de calcul par rapport aux méthodes wrapper. S'il n'y a pas suffisamment de données pour modéliser une corrélation statistique entre les fonctionnalités, les filtres peuvent produire des résultats moins bons que les wrappers. Contrairement aux wrappers, ces méthodes sont moins sujettes à un recyclage. Ils sont largement utilisés pour travailler avec des données de grande dimension, lorsque les méthodes d'encapsulation nécessitent trop de puissance de calcul.

Méthodes pédagogiques


  • Relief : cette méthode sélectionne au hasard des échantillons de l'ensemble de données et met à jour la signification de chaque attribut en fonction de la différence entre l'instance sélectionnée et les deux objets les plus proches de la même classe et de classes opposées. S'il y a une différence dans les valeurs de la caractéristique pour les deux voisins les plus proches d'une même classe, son importance diminue et si, au contraire, il y a une différence entre les valeurs de la caractéristique pour des objets de classes différentes, l'importance augmente en conséquence.

    Wi=Wi(xinearHiti)2+(xinearMissi)2



    Le poids de l'attribut diminue si sa valeur diffère davantage pour les objets les plus proches de la même classe que pour les objets les plus proches de classes différentes; sinon le poids augmente.
    L'algorithme ReliefF avancé utilise la pondération des fonctionnalités et recherche les voisins les plus proches.

    Mise en œuvre: scikit-rabais , ReliefF
  • Score de Fisher : couramment utilisé dans les problèmes de classification binaire. Le ratio de Fisher (FiR) est défini comme la distance entre les valeurs moyennes des attributs pour chaque classe divisée par leur variance:

    FiRi= frac left| barXi(0) barXi(1) right| sqrtvar(Xi)(0)+var(Xi)(1)



    Implémentation: fonction scikit , exemple d' utilisation.
  • Score chi carré : vérifie s'il existe une différence significative entre les fréquences observées et attendues de deux variables catégorielles. Ainsi, l'hypothèse nulle de l'absence de connexion entre deux variables est testée.

    X2= frac( textrmFréquenceobservée textrmFréquenceattendue)2 textrmFréquenceattendue


    Critère d'indépendance du chi carré .

    Afin d'appliquer correctement le critère du chi carré pour vérifier la relation entre les différents signes de l'ensemble de données et la variable cible, il est nécessaire de respecter les conditions: les variables doivent être catégoriques , indépendantes et doivent avoir une fréquence attendue supérieure à 5 . La dernière condition garantit que la CDF (fonction de densité cumulée) du critère statistique (statistique de test) peut être approximée à l'aide de la distribution du khi carré. Apprenez-en plus ici .

    Implémentation: sklearn , scipy
  • CFS (Correlation-based feature selection): La justification de cette méthode peut être formulée comme suit:

    Les signes sont pertinents si leurs valeurs changent systématiquement en fonction de leur appartenance à l'une ou l'autre catégorie.

    Ainsi, un bon sous-ensemble de fonctionnalités contient les fonctionnalités qui sont fortement corrélées avec la variable cible, tout en ne se corrélant pas entre elles. Le score d'un sous-ensemble de k entités est calculé comme suit :

    MeritSk= frackrcf sqrtk+k(k1) barrff



    Ici rcfEst la moyenne de toutes les corrélations entre un trait et une classe, et  barrff- la valeur moyenne de toutes les corrélations entre les caractéristiques. Le critère du CSA est défini comme suit:

    CFS= undersetSkmax left[ fracrcf1+rcf2+ cdots+rcfk sqrtk+2(rf1f2+ cdots+rfifj+ cdots+rfkf1) droite]



    Implémentation: fonction scikit , exemple d' utilisation.
  • FCBF (Fast-based correlation filter): cette méthode fonctionne plus rapidement et plus efficacement que ReliefF et CFS, et est donc plus couramment utilisée pour les entrées de grande dimension. En fait, il s'agit d'une approche typique qui prend en compte la pertinence et la redondance, dans laquelle la première incertitude symétrique est calculée pour tous les attributs (informations mutuelles entre X et YI (X, Y) divisées par la somme de leurs entropies), puis les attributs sont triés selon ce critère, et puis l'excédent est éliminé.

    Implémentation: skfeature , https://github.com/shiralkarprashant/FCBF

Méthodes sans professeur


  • Variance : Il a été démontré que l'estimation de la variance des caractères peut être un moyen efficace de sélectionner des traits. En règle générale, les signes avec une dispersion presque nulle ne sont pas significatifs et peuvent être supprimés.

    Implémentation: seuil de variance
  • Différence absolue moyenne : calculez la différence absolue moyenne entre les valeurs de l'attribut et sa valeur moyenne ( implémentation ).

    MADi= frac1n sumj=1n left|Xij barXi droite|



    Des valeurs plus élevées ont généralement un pouvoir prédictif plus élevé.
  • Rapport de dispersion : moyenne arithmétique divisée par la moyenne géométrique. Une variance plus élevée correspond à des caractéristiques plus pertinentes ( implémentation ).

    AMi= barXi= frac1n sumj=1nXij


    GMi=( prodj=1nXij)



    Depuis AMi geqslantGMisi et seulement si l'égalité est respectée Xi1=Xi2= cdots=Xinpuis:

    Ri= fracAMiGMi in left[1,+ infty right)
  • Score laplacien : il est basé sur l'observation que les données d'une classe sont souvent situées plus près les unes des autres, de sorte que vous pouvez évaluer l'importance d'une entité par sa capacité à refléter cette proximité. La méthode consiste à intégrer des données dans le graphique des voisins les plus proches en mesurant une distance arbitraire, puis en calculant la matrice de poids. Ensuite, pour chaque entité, nous calculons le critère de Laplace et obtenons une propriété telle que les plus petites valeurs correspondent aux dimensions les plus importantes. Cependant, dans la pratique, lors de la sélection d'un sous-ensemble de fonctionnalités, un algorithme de clustering différent (méthode k-means) est généralement utilisé, avec lequel le groupe le plus efficace est sélectionné.

    Implémentation: fonction scikit
  • Critère de Laplace en combinaison avec l'entropie basée sur la distance : l'algorithme est basé sur le critère de Laplace, où le clustering k-means est remplacé par l'entropie. L'algorithme démontre une stabilité plus élevée sur les ensembles de données de grande dimension ( implémentation ).
  • MCFS (Multi-Cluster Feature selection): une analyse spectrale est effectuée pour mesurer la corrélation entre différentes caractéristiques. Pour le regroupement des données et l'évaluation des caractéristiques, des vecteurs propres de l'opérateur laplacien sont utilisés. Leur calcul est décrit dans cet article .

    Implémentation: https://github.com/danilkolikov/fsfc
  • Les algorithmes LFSBSS (Localized Feature Selection ), les k-means pondérés ( k-means pondérés), SPEC et Apriori sont considérés ici et mis en œuvre dans ce package .

Méthodes hybrides


Une autre façon d'implémenter la sélection des fonctionnalités est un hybride de filtres et d'encapsuleurs combinés dans un processus en deux phases: d'abord, les fonctionnalités sont filtrées par propriétés statistiques, puis les méthodes d'encapsulation sont appliquées.

Autres sources


Beaucoup de littérature a été écrite dans laquelle le problème de la sélection des caractéristiques est considéré, et ici nous n'avons que légèrement abordé l'ensemble des recherches scientifiques.

Une liste complète d' autres algorithmes de sélection de traits que je n'ai pas mentionnés a été implémentée dans le package scikit-feature .

Les caractéristiques pertinentes peuvent également être déterminées en utilisant PLS (moindres carrés partiels, comme décrit dans cet article , ou en utilisant des méthodes de réduction de dimension linéaire, comme indiqué ici .

Infosystèmes Jet traduits

Source: https://habr.com/ru/post/fr470622/


All Articles