J'ai des caractéristiques clairsemées qui sont prédictives, j'ai aussi des caractéristiques denses qui sont également prédictives. J'ai besoin de combiner ces fonctionnalités pour améliorer les performances globales du classificateur.
Maintenant, le problème est que lorsque j'essaie de les combiner, les entités denses ont tendance à dominer davantage les entités clairsemées, ce qui ne donne qu'une amélioration de 1% de l'ASC par rapport au modèle avec uniquement des entités denses.
Quelqu'un a-t-il rencontré des problèmes similaires? J'apprécie vraiment les entrées, un peu coincées. J'ai déjà essayé beaucoup de classificateurs différents, une combinaison de classificateurs, des transformations de fonctionnalités et un traitement avec différents algorithmes.
Merci d'avance pour l'aide.
Modifier :
J'ai déjà essayé les suggestions qui sont données dans les commentaires. Ce que j'ai observé, c'est que pour près de 45% des données, les entités clairsemées fonctionnent très bien, j'obtiens l'ASC d'environ 0,9 avec uniquement des entités clairsemées, mais pour les autres, les entités denses fonctionnent bien avec l'ASC d'environ 0,75. J'ai en quelque sorte essayé de séparer ces ensembles de données, mais j'obtiens l'AUC de 0,6, donc je ne peux pas simplement former un modèle et décider quelles fonctionnalités utiliser.
En ce qui concerne l'extrait de code, j'ai essayé tellement de choses que je ne sais pas exactement quoi partager :(
la source
Réponses:
Cela semble être un travail pour l'analyse des composants principaux. Dans Scikit, PCA est bien implémenté et cela m'a aidé à plusieurs reprises.
PCA, d'une certaine manière, combine vos fonctionnalités. En limitant le nombre de composants, vous récupérez votre modèle avec des données sans bruit (dans le meilleur des cas). Parce que votre modèle est aussi bon que vos données.
Considérez ci-dessous un exemple simple.
Pourquoi j'ai choisi 80? Lorsque je trace la variance cumulée, je l'ai ci-dessous, ce qui me dit qu'avec ~ 80 composants, j'atteins presque toute la variance.
Je dirais donc l'essayer, l'utiliser dans vos modèles. Ça devrait aider.
la source
La meilleure façon de combiner des fonctions consiste à utiliser des méthodes d'ensemble. Fondamentalement, il existe trois méthodes différentes: l'ensachage, le boosting et l'empilage. Vous pouvez soit utiliser Adabbost augmenté avec la sélection de fonctionnalités (dans ce cas, considérer les fonctionnalités rares et denses) ou empiler (fonctionnalité aléatoire - sous-espace aléatoire) Je préfère la deuxième option, vous pouvez former un ensemble d'apprenants de base (décisions. Arbres) en utilisant aléatoire sous-ensembles et fonctionnalité aléatoire (garder les apprenants de la base de formation jusqu'à ce que vous couvriez l'ensemble des fonctionnalités) L'étape suivante consiste à tester l'ensemble de formation pour générer les métadonnées. Utilisez ces métadonnées pour former un méta classificateur. Le méta classificateur déterminera quelle caractéristique est la plus importante et quel type de relation doit être utilisé
la source
Les groupes variables peuvent être multicollinéaires ou la conversion entre clairsemée et dense peut mal tourner. Avez-vous pensé à utiliser un classificateur de vote / une classification d'ensemble? http://scikit-learn.org/stable/modules/ensemble.html De cette façon, vous pourriez traiter les deux problèmes ci-dessus.
la source
En plus de certaines des suggestions ci-dessus, je recommanderais d'utiliser une approche de modélisation en deux étapes .
la source
Essayez PCA uniquement sur des fonctionnalités rares et combinez la sortie PCA avec des fonctionnalités denses.
Ainsi, vous obtiendrez un ensemble dense de fonctionnalités (originales) + un ensemble dense de fonctionnalités (qui étaient initialement clairsemées).
+1 pour la question. Veuillez nous mettre à jour avec les résultats.
la source