Est-il réellement correct d'effectuer une sélection de fonctionnalités non supervisée avant la validation croisée?

9

Dans The Elements of Statistical Learning , j'ai trouvé l'énoncé suivant:

Il y a une qualification: les étapes initiales de dépistage non supervisé peuvent être effectuées avant de laisser des échantillons. Par exemple, nous pourrions sélectionner les 1000 prédicteurs présentant la variance la plus élevée parmi les 50 échantillons, avant de commencer la validation croisée. Étant donné que ce filtrage n'implique pas les étiquettes de classe, il ne donne pas aux prédicteurs un avantage injuste.

Est-ce réellement valable? Je veux dire, en filtrant les attributs au préalable, nous n'imitons pas les données d'entraînement / le nouvel environnement de données - est-ce donc important que le filtrage que nous effectuons ne soit pas supervisé? N'est-il pas préférable de faire toutes les étapes de prétraitement dans le cadre du processus de validation croisée? Si ce n'est pas le cas, cela signifie que tout le prétraitement non supervisé peut être effectué à l'avance, y compris la normalisation des fonctionnalités / PCA, etc. Mais en faisant cela sur l'ensemble de l'ensemble de formation, nous perdons en fait certaines données dans l'ensemble de formation. Je peux convenir qu'avec un ensemble de données relativement stable, ces différences devraient très probablement être minimes - mais cela ne signifie pas qu'elles n'existent pas, non? Quelle est la bonne façon d'y penser?

Matek
la source

Réponses:

2

En tant qu'étape effectuée avant la validation croisée, la sélection non supervisée des fonctionnalités est quelque peu similaire à la normalisation des fonctionnalités:

  1. Du point de vue d'un pli spécifique dans la validation croisée, les données du train ont jeté un coup d'œil aux données de test (mais uniquement dans les variables indépendantes).

  2. Ce coup d'œil est relativement doux.

La normalisation des fonctionnalités avant validation croisée a été discutée dans cette question . Citant la réponse par Dikran Marsupial

La validation croisée est mieux perçue comme une méthode pour estimer les performances d'une procédure statistique plutôt que comme un modèle statistique. Ainsi, afin d'obtenir une estimation de performance impartiale, vous devez répéter chaque élément de cette procédure séparément dans chaque pli de la validation croisée, ce qui inclurait la normalisation.

Donc, si vous pouvez épargner les ressources, la meilleure chose serait que chaque pli de validation croisée effectue un traitement dépendant des données à partir de zéro.

Cependant, comme le disent les réponses à cette question, en pratique, inverser l'ordre ne changerait probablement pas grand-chose. Il n'y a certainement pas l'avantage indu substantiel que présente la sélection de fonctions dépendante de . À mon humble avis, c'est l'interprétation de la citation de Elements Of Statistical Learning .y

Ami Tavory
la source
Eh bien, cela coïncide essentiellement avec mes pensées, et la dernière phrase ici est en fait la réponse courte à ma question. Merci, je vais en faire une réponse acceptée.
Matek
1
L'effet peut être faible, mais il peut ne pas être aussi petit. Comme vous le dites, c'est comme une pré-mise à l'échelle de vos variables indépendantes avant CV, qui utilisera "le futur" (données de test) pour aider à mettre à l'échelle "le présent" (données de formation), ce qui ne se produira pas dans le monde réel. Si vous avez des plis aléatoires (n'utilisez pas de séries chronologiques, de stratification, etc.), c'est moins d'effet, mais pourquoi briser la barrière Train / Test et tout?
Wayne
@Wayne Je suis certainement d'accord avec vous que dans la mesure du possible, il est préférable de ne pas briser la barrière du train / test. Personnellement, je n'ai jamais rencontré de cas concrets où cela a fait une différence (par rapport à un FS non supervisé et / ou à une normalisation), mais j'ai rencontré des cas où il était absolument impossible de faire la sélection des fonctionnalités de la "bonne manière" (c'est-à-dire dans chaque plier). Cependant, je vois dans votre bonne réponse (que je vote) que vous avez rencontré le cas contraire, donc apparemment les deux scénarios existent.
Ami Tavory
Je ne suis pas sûr d'avoir rencontré des résultats de CV où la normalisation a fait une différence non plus, ce que j'attribue généralement à un CV de 10 fois, ce qui signifie que le pli de test n'est que de 10%, ce qui réduit son effet. J'ai vu une différence avec quelque chose comme une répartition non-CV 67/33 ou même 75/25.
Wayne
9

Je prie de différer dans cette question avec l'opinion de @ AmiTavory ainsi qu'avec les éléments de l'apprentissage statistique.

Venant d'un domaine appliqué avec des tailles d'échantillon très faibles, j'ai l'expérience que des étapes de prétraitement non supervisées peuvent introduire un biais sévère.

Dans mon domaine, ce serait le plus souvent l'ACP pour la réduction de la dimensionnalité avant la formation d'un classificateur. Bien que je ne puisse pas montrer les données ici, j'ai vu PCA + (cross validated LDA) vs cross validated (PCA + LDA) sous-estimer le taux d'erreur d'environ un ordre de grandeur . (Il s'agit généralement d'un indicateur que l'APC n'est pas stable.)

En ce qui concerne l'argumentation «avantage indu» des éléments, si l'on examine la variance des cas de test + test, nous nous retrouvons avec des fonctionnalités qui fonctionnent bien avec les cas de formation et de test. Ainsi, nous créons ici une prophétie auto-réalisatrice qui est la cause du parti pris trop optimiste. Ce biais est faible si vous avez des tailles d'échantillon raisonnablement confortables.

Je recommande donc une approche légèrement plus conservatrice que les Elements:

  • les calculs de prétraitement qui prennent en compte plusieurs cas doivent être inclus dans la validation: c'est-à-dire qu'ils sont calculés uniquement sur l'ensemble de formation respectif (puis appliqués aux données de test)
  • les étapes de prétraitement qui prennent en compte chaque cas individuellement (je suis spectroscopiste: des exemples seraient la correction de base et la normalisation de l'intensité, qui est une normalisation par ligne) peuvent être retirées de la validation croisée tant qu'elles sont avant la première étape qui calcule pour plusieurs cas.

Cela étant dit, la valorisation croisée n'est également qu'un raccourci pour effectuer une étude de validation appropriée. Ainsi, vous pouvez discuter de l'aspect pratique:

  • Vous pouvez vérifier si le prétraitement en question donne des résultats stables (vous pouvez le faire par exemple par validation croisée). Si vous le trouvez déjà parfaitement stable avec des échantillons de taille inférieure, à mon humble avis, vous pouvez faire valoir que peu de biais seront introduits en le retirant de la validation croisée.

  • Cependant, pour citer un superviseur précédent: Le temps de calcul n'est pas un argument scientifique.
    Je vais souvent pour un "aperçu" de quelques plis et quelques itérations pour la validation croisée pour m'assurer que tout le code (y compris le résumé / les graphiques des résultats) puis le laisse pendant la nuit ou le week-end ou ainsi de suite sur le serveur pour un validation croisée plus fine.

cbeleites mécontents de SX
la source