Je ne vous recommanderais pas d'utiliser cette procédure. Ma recommandation est: abandonner ce projet. Abandonnez et partez. Vous n'avez aucun espoir que cela fonctionne.
source pour l'image
Mis à part les problèmes standard de la sélection pas à pas (cf. ici ), dans votre cas, vous avez très probablement des prédictions parfaites en raison de la séparation dans un espace aussi dimensionnel.
Je n'ai pas de détails sur votre situation, mais vous déclarez n'avoir "que quelques dizaines d'échantillons". Soyons charitables et disons que vous en avez 90. Vous dites en outre que vous avez "plusieurs milliers de fonctionnalités". Imaginons que vous n'en ayez «que» 2 000. Par souci de simplicité, disons que toutes vos fonctionnalités sont binaires. Vous "pensez que l'étiquette de classe peut être prédite avec précision en utilisant seulement quelques fonctionnalités", disons que vous rechercherez des ensembles de 9 fonctionnalités maximum. Enfin, imaginons que la relation soit déterministe, afin que la vraie relation soit toujours parfaitement présente dans vos données. (Nous pouvons modifier ces chiffres et ces hypothèses, mais cela ne peut qu'aggraver le problème.) Maintenant, Dans quelle mesure seriez-vous en mesure de retrouver cette relation dans ces conditions (généreuses)? Autrement dit, à quelle fréquence l'ensemble correct serait-il le seul qui donne une précision parfaite? Ou, autrement dit, combien d'ensembles de neuf fonctionnalités s'adapteront également au hasard?
Quelques calculs et simulations (trop) simples devraient fournir des indices sur cette question. Tout d'abord, avec 9 variables, chacune pouvant être 0 ou 1, le nombre de modèles qu'une observation pourrait montrer est de , mais vous n'aurez que 90 observations. Ainsi, il est tout à fait possible que, pour un ensemble donné de 9 variables binaires, chaque observation ait un ensemble différent de valeurs de prédicteur - il n'y a pas de répliques. Sans répétitions avec les mêmes valeurs de prédicteur où certains ont y = 0 et certains y = 1, vous aurez une séparation complète et une prédiction parfaite de chaque observation sera possible. 29=512
Ci-dessous, j'ai une simulation (codée en R) pour voir à quelle fréquence vous pourriez ne pas avoir de modèles de valeurs x avec 0 et 1. La façon dont cela fonctionne est que j'obtiens un ensemble de nombres de 1 à 512, qui représentent les modèles possibles, et voir si l'un des modèles dans les 45 premiers (qui pourraient être les 0) correspond à l'un des modèles dans le second 45 (ce pourrait être les 1). Cela suppose que vous disposez de données de réponse parfaitement équilibrées, ce qui vous offre la meilleure protection possible contre ce problème. Notez que le fait d'avoir des vecteurs x répliqués avec des valeurs y différentes ne vous sort pas vraiment du bois, cela signifie simplement que vous ne pourriez pas prédire parfaitement chaque observation dans votre jeu de données, qui est la norme très stricte I utilise ici.
set.seed(7938) # this makes the simulation exactly reproducible
my.fun = function(){
x = sample.int(512, size=90, replace=TRUE)
return(sum(x[1:45]%in%x[46:90])==0)
}
n.unique = replicate(10000, my.fun())
mean(n.unique) # [1] 0.0181
La simulation suggère que vous auriez ce problème avec environ 1,8% des ensembles de 9 variables x. Maintenant, combien y a-t-il d'ensembles de 9? Strictement, ce serait (puisque nous avons stipulé que les 9 vraies variables causales déterministes sont dans votre ensemble). Cependant, bon nombre de ces ensembles se chevaucheront; il y aura 1991 /1991 choose 9=1.3×1024 ensembles de 9nechevauchent dans une partition spécifiée de vos variables (avec beaucoupces partitions possibles). Ainsi, à l'intérieur d'une partition donnée, on pourrait s'attendre à ce qu'il y ait 221 × 0,018 ≈ 41991/9≈221221×0.018≈4 des ensembles de 9 variables x qui prédiront parfaitement chaque observation de votre ensemble de données.
Notez que ces résultats ne concernent que les cas où vous avez un ensemble de données relativement plus grand (dans les «dizaines»), un nombre relativement plus petit de variables (dans les «milliers»), ne recherche que les cas où chaque observation unique peut être parfaitement prédite ( il y aura beaucoup plus d'ensembles qui sont presque parfaits), etc. Votre cas réel ne fonctionnera probablement pas «aussi bien». De plus, nous avons stipulé que la relation est parfaitement déterministe. Que se passerait-il s'il y avait du bruit aléatoire dans la relation? Dans ce cas, vous aurez toujours ~ 4 ensembles (nuls) qui prédisent parfaitement vos données, mais le bon ensemble pourrait bien ne pas en faire partie .
Tl; dr , le point fondamental ici est que votre ensemble de variables est beaucoup trop grand / dimensionnel élevé, et votre quantité de données est beaucoup trop petite, pour que tout soit possible. S'il est vraiment vrai que vous avez des «dizaines» d'échantillons, des «milliers» de variables et absolument aucune idée concrète des variables qui pourraient être correctes, vous n'avez aucun espoir d'aller n'importe où avec n'importe quelle procédure. Allez faire autre chose avec votre temps.