Validation croisée en très haute dimension (pour sélectionner le nombre de variables utilisées en classification très haute dimension)

8

Ma question porte sur la validation croisée lorsqu'il y a beaucoup plus de variables que d'observations. Pour fixer les idées, je propose de me limiter au cadre de classification en très haute dimension (plus de fonctionnalités que d'observation).

Problème: Supposons que pour chaque variable vous avez une mesure d'importance que mesure exactement l'intérêt de la caractéristique pour le problème de classification. Le problème de la sélection d'un sous-ensemble d'entités pour réduire de manière optimale l'erreur de classification est alors réduit à celui de trouver le nombre d'entités.i=1,,pT[i]i

Question: Quelle est la manière la plus efficace d'exécuter la validation croisée dans ce cas (schéma de validation croisée)? Ma question n'est pas de savoir comment écrire le code mais sur la version de validation croisée à utiliser lorsque vous essayez de trouver le nombre de fonctionnalités sélectionnées (pour minimiser l'erreur de classification) mais comment gérer la dimension élevée lors de la validation croisée (d'où la problème ci-dessus peut être un peu comme un «problème de jouet» pour discuter de CV en haute dimension).

Notations: est la taille de l'ensemble d'apprentissage, p le nombre d'entités (c'est-à-dire la dimension de l'espace d'entités). Par dimension très élevée, je veux dire p >> n (par exemple et ).np=10000n=100

Robin Girard
la source
Mais encore, que voulez-vous mesurer avec CV et dans quel but? Pour obtenir une coupure du numéro d'attribut?
@mbq: merci pour les conseils. J'ai modifié la question en conséquence, j'espère qu'elle est plus claire maintenant!
robin girard

Réponses:

6

Vous manquez une question importante - il n'y a presque jamais une chose telle que T [i]. Imaginez un problème simple dans lequel la somme de deux attributs (d'une amplitude similaire) est importante; si vous supprimez l'un d'eux, l'importance de l'autre diminuera soudainement. De plus, une grande quantité d'attributs non pertinents est la précision de la plupart des classificateurs, donc leur capacité à évaluer l'importance. Enfin et surtout, les algorithmes stochastiques renverront des résultats stochastiques, et donc même le classement T [i] peut être instable. Donc, en principe, vous devez au moins recalculer T [i] après que chaque attribut (ou au moins après chaque attribut non redondant) soit supprimé.

Pour en revenir au sujet, la question de savoir quel CV choisir dépend principalement du problème; avec un très petit nombre de cas, la LOO peut être le meilleur choix car tous les autres commencent à se réduire à elle; encore petit est plutôt n = 10 pas n = 100. Je recommanderais donc simplement le sous-échantillonnage aléatoire (que j'utilise le plus) ou le K-fold (puis avec la recréation de divisions à chaque étape). Néanmoins, vous devez également collecter non seulement la moyenne mais aussi l'écart type des estimations d'erreur; ceci peut être utilisé pour (approximativement) juger quels changements de moyenne sont importants et vous aider à décider quand arrêter le processus.


la source
dit "Vous manquez un problème important - il n'y a presque jamais une chose telle que T [i]" Je voulais que la réponse se concentre sur le problème de la sélection du nombre de variables. La construction (qui je conviens n'est pas parfaite) de T [i] est discutée ici stats.stackexchange.com/questions/490/… Parfois, il est également utile de discuter du problème séparément.
robin girard
1
@robin Mais ici, vous ne pouvez pas les déchirer. La plupart des algorithmes mentionnés dans cette question ont été créés pour résoudre ce problème - la sélection vers l'avant consiste à supprimer les fonctionnalités corrélées, l'élimination vers l'arrière consiste à stabiliser la mesure d'importance, mcmc doit inclure les fonctionnalités corrélées ...
@robin l'idée de faire une mesure exacte de l'importance était une base pour les algorithmes dits de filtrage qui sont maintenant principalement abandonnés car ils étaient tout simplement trop faibles. Ils ont l'avantage d'être bon marché sur le plan des calculs, mais cela n'en vaut pas la peine.
0

C'est une bonne question, et cela a tendance à toucher plus de ce qui se réfère aux apprenants d'ensemble et à la moyenne des modèles (je fournirai des liens ci-dessous):

Lorsque vous êtes dans des paramètres dimensionnels élevés, la stabilité de votre solution (c'est-à-dire quelles fonctionnalités / variables sont sélectionnées) peut faire défaut, car les modèles individuels peuvent choisir 1 parmi de nombreuses variables colinéaires échangeables qui, dans l'ensemble, transportent le même signal ( parmi une des nombreuses raisons). Vous trouverez ci-dessous quelques stratégies pour résoudre ce problème.

Dans le modèle bayésien faisant la moyenne par exemple,

Hoeting, Jennifer A. et al. "Moyenne du modèle bayésien: un tutoriel." Science statistique (1999): 382-401.

vous construisez de nombreux modèles (disons 100), et chacun d'eux est construit avec un sous-ensemble des fonctionnalités d'origine. Ensuite, chaque modèle individuel détermine laquelle des variables qu'il a vues était significative, et chaque modèle est pondéré par la vraisemblance des données, ce qui vous donne un bon résumé de la façon de «juger» de l'efficacité des variables de manière «validation croisée». vous savez a priori que certaines caractéristiques sont fortement corrélées, vous pouvez induire un schéma d'échantillonnage de sorte qu'elles ne soient jamais sélectionnées ensemble (ou si vous avez une structure de corrélation de blocs, vous choisissez des éléments de différents blocs dans votre matrice de variance-covariance)

Dans un paramètre de type d' apprentissage automatique : regardez la «sélection de caractéristiques d'ensemble». Ce document (un exemple)

Neumann, Ursula, Nikita Genze et Dominik Heider. "EFS: un outil de sélection de fonctionnalités d'ensemble implémenté en tant que R-package et application web." BioData mining 10.1 (2017): 21.

détermine la signification des fonctionnalités dans une variété de métriques "d'importance" pour effectuer la sélection finale des fonctionnalités.

Je dirais que la route d'apprentissage automatique pourrait être de meilleurs modèles linéaires b / c (avec sélection de fonctionnalités) saturés à p = nb / c de leur reformulation d'optimisation (voir cet article Si p> n, le lasso sélectionne au plus n variables ). Mais tant que vous pouvez définir et justifier un bon critère objectif sur la façon dont vous «validez» la sélection des fonctionnalités, alors vous partez du bon pied.

J'espère que cela t'aides!

Samir Rachid Zaim
la source