L'une des méthodes pour sélectionner un sous-ensemble de vos fonctionnalités disponibles pour votre classificateur consiste à les classer en fonction d'un critère (tel que le gain d'informations), puis à calculer la précision à l'aide de votre classificateur et d'un sous-ensemble des fonctionnalités classées.
Par exemple, si vos fonctionnalités le sont A, B, C, D, E
et si elles sont classées comme suit D,B,C,E,A
, vous calculez la précision à l'aide de D
, D, B
puis D, B, C
, puis D, B, C, E
... jusqu'à ce que votre précision commence à diminuer. Une fois qu'il commence à diminuer, vous arrêtez d'ajouter des fonctionnalités.
Dans l'exemple 1 (ci-dessus), vous choisiriez des fonctionnalités F, C, D, A
et supprimeriez les autres fonctionnalités car elles diminuent votre précision.
Cette méthodologie suppose que l'ajout de fonctionnalités à votre modèle augmente la précision de votre classificateur jusqu'à un certain point après lequel l'ajout de fonctionnalités supplémentaires diminue la précision (comme illustré dans l'exemple 1)
Cependant, ma situation est différente. J'ai appliqué la méthodologie décrite ci-dessus et j'ai trouvé que l'ajout de fonctionnalités diminuait la précision jusqu'à un point après lequel elle augmentait.
Dans un scénario comme celui-ci, comment choisissez-vous vos fonctionnalités? Ne choisissez-vous que F
le reste? Avez-vous une idée de la raison pour laquelle la précision diminuerait puis augmenterait?
À propos de la question spécifique
Vous ne devez pas vous attendre à un comportement spécifique (augmentation puis diminution de la précision) lorsque vous sélectionnez un sous-ensemble de fonctionnalités, car cela dépendra totalement du problème (et de chaque modèle)
Lorsque vous calculez l'importance variable des fonctionnalités, vous tenez compte de la contribution de toutes les fonctionnalités en même temps. Une fois que vous avez sélectionné un sous-ensemble de fonctionnalités et construit un nouveau modèle, vous obtiendrez une représentation ou une modélisation différente du problème (qui ne prend pas en compte les autres fonctionnalités - informatives ou non -).
Maintenant, vous voulez sélectionner le meilleur nombre de fonctionnalités. Cela dépendra également de votre problème et des caractéristiques ou conditions que vous devez remplir. Si vous avez réellement besoin d'avoir le moins de fonctionnalités possibles tout en optimisant la précision de la prédiction, vous pouvez sélectionner le plus petit nombre de fonctionnalités qui génère l'erreur la plus faible ... et, si vous avez différents cas avec des erreurs très similaires, choisissez un seuil, observez le les top cases dont la différence d'erreurs par paire est inférieure au seuil, et sélectionnez-en une (par exemple, celle avec le moins de fonctionnalités - car les erreurs sont légèrement les mêmes -).
Envisager l'élimination des fonctionnalités récursives
La méthode que vous utilisez n'est peut-être pas l'approche la plus stable. Vous devriez envisager d'essayer quelque chose comme l'élimination des fonctionnalités récursives (RFE), une méthode d'encapsulation dans laquelle vous créez le classificateur, classe toutes les fonctionnalités, supprimez les pires et reconstruisez le modèle sur les fonctionnalités restantes. Vous répétez ensuite la méthode. Cela aura tendance à être plus stable ... et vous devriez vous attendre à un classement différent à chaque fois.
La variance est également un facteur critique
Au-delà de l'erreur réelle (ou précision) que le modèle vous donne avec chaque sous-ensemble, vous devez envisager de construire chaque modèle via une procédure de validation croisée et de prendre en compte à la fois l'erreur moyenne des plis et l'écart-type de ces erreurs. Si l'écart-type est élevé, le sous-ensemble de fonctionnalités sélectionné n'est pas stable et aura tendance à varier considérablement lors des tests avec des données invisibles. Ceci est important pour évaluer les capacités de généralisation attendues du modèle, et pourrait être utile pour décider entre les modèles (construits avec différents sous-ensembles).
la source
Vous devez supprimer les fonctionnalités redondantes et non pertinentes de votre ensemble de données. On peut voir qu'il y a des fonctionnalités non pertinentes et redondantes dans votre ensemble de données.
Je vous recommande de regarder l'algorithme de sélection de fonctionnalité de pertinence maximale de redondance minimale (MRMR). C'est un filtre très populaire et puissant avant de former le modèle.
"Cependant, ma situation est différente. J'ai appliqué la méthodologie décrite ci-dessus et j'ai constaté que l'ajout de fonctionnalités diminuait la précision jusqu'à un point après lequel elle augmentait"
C'est également possible, mais cela conduira à un modèle plus complexe.
la source
Généralement, il existe trois classes d'algorithmes de sélection de fonctionnalités.
Filtrer des méthodes qui analysent les propriétés intrinsèques des données et attribuent un score à chaque entité, n'impliquant aucun modèle. Quelques exemples sont le changement de pli, le test t des élèves.
Les méthodes d'encapsuleur qui sélectionnent différents sous-ensembles de fonctionnalités par le biais d'algorithmes spécifiques. Nous nous adaptons ensuite au modèle de classification ou de régression pour évaluer chaque sélection et choisir celle qui présente la meilleure valeur de fitness. Quelques exemples sont l'algorithme génétique pour la sélection d'entités, l'optimisation Monte Carlo pour la sélection d'entités, la sélection pas à pas avant / arrière.
Méthodes intégrées qui permettent au modèle lui-même de choisir les caractéristiques ayant la meilleure contribution à la forme physique du modèle. Les exemples typiques sont LASSO, régression de crête.
Voici un excellent article dans les détails de l' introduction à la sélection des fonctionnalités .
la source