3

Ma question est pourquoi mon set d'entrainement devrait-il aussi être faussé (nombre d'instances de la classe positive beaucoup moins par rapport à la classe négative) lorsque mon test est également asymétrique. J'ai lu qu'il est important de maintenir la même répartition entre les classes, tant dans l'entraînement que dans l'ensemble des tests, afin d'obtenir la performance la plus réaliste possible. Par exemple, si mon ensemble de tests a une distribution de 90% à 10% d'instances de classe, mon ensemble d'entraînement devrait-il avoir les mêmes proportions?Pourquoi mon ensemble d'entraînement devrait-il aussi être biaisé en termes de nombre de classes juste parce que mon test est faussé

Je trouve difficile de comprendre pourquoi il est important de maintenir les proportions d'instances de classe dans l'ensemble d'apprentissage telles qu'elles sont présentes dans l'ensemble de test.

La raison pour laquelle je trouve difficile à comprendre est que nous ne voulons pas qu'un classificateur apprenne simplement les modèles dans les deux classes? Donc, devrait-il être important de maintenir l'asymétrie dans l'ensemble d'entraînement juste parce que l'ensemble d'essai est faussé?

Toutes les pensées seront utiles

+1

Vous donnez de bonnes raisons dans le premier paragraphe mais n'élaborez pas pourquoi vous les trouvez * difficiles * à croire. Faites cela, afin que les gens ne répondent pas à ce que vous savez déjà. – runDOSrun

+0

Les jeux de données sont faussés par rapport à * quoi *? Si c'est relatif à la vraie distribution, alors vous avez probablement une situation GIGO. Si ce n'est pas le cas, vous devez simplement vous assurer que les données du train ne sont pas faussées par rapport aux données de test (=> également les données réelles). –

+0

@AmiTavory Pouvez-vous préciser la situation de GIGO? Vouliez-vous dire la poubelle dans la situation des déchets? J'ai édité la question un peu pour expliquer ce qu'est l'asymétrie ici. Il s'agit essentiellement de la différence entre les proportions d'instances de classe dans l'ensemble d'apprentissage. –

Répondre

2

IIUC, vous demandez au sujet de la justification de l'utilisation Stratified Sampling (par exemple, utilisé dans Scikit's StratifiedKFold.

Une fois que vous avez divisé vos données en ensembles de train et de test, vous avez trois ensembles de données à considérer:

  1. le « monde réel » ensemble, sur lequel votre classificateur va vraiment fonctionner
  2. le jeu de train, sur lequel vous apprendrez les modèles
  3. l'ensemble de test, que vous utiliserez pour évaluer la performance du classificateur

(donc les utilisations de 2. + 3. sont vraiment juste Supposons que vos données aient des classes représentées loin d'être uniformes - disons qu'elles apparaissent seulement 5% des fois où elles apparaîtraient si les classes étaient générées uniformément. De plus, vous croyez que ce n'est pas un cas GIGO - dans le monde réel, la probabilité de cette classe serait d'environ 5%.

Lorsque vous divisez en 2. + 3., vous courez la chance que les choses seront biaisés par rapport à 1 .:

  • Il est très possible que la classe n'apparaîtra pas 5% du temps (dans le train ou l'ensemble de test), mais plutôt plus ou moins.

  • Il est très possible que certains des instances de fonction de la classe seront biaisés dans le jeu de train ou test, par rapport à 1.

Dans ces cas, lorsque vous prenez des décisions basées sur 2 . + 3. Combinaison, il est probable que cela n'indiquera pas bien l'effet sur 1., ce qui est vraiment ce que vous recherchez. Par ailleurs, je ne pense pas que l'accent soit mis sur l'inclinaison du train pour qu'il corresponde au test, mais plutôt sur la réalisation du train et le test de chaque correspondent à l'ensemble des données échantillonnées.

+0

Merci pour la réponse. Donc, si je comprends bien, ce que vous résumez, c'est que cela n'a pas d'importance si l'ensemble de formation a des proportions égales pour les deux classes ou non. Ce qui est plus important, c'est qu'il apprend les modèles des deux classes, n'est-ce pas? Merci d'avoir expliqué la justification du StratifiedKFold. –

+0

... et cela devrait signifier qu'il est correct d'avoir un ensemble d'entraînement équilibré et plus tard de le tester sur un ensemble de test déséquilibré. Est-ce correct? –

+2

@AbhishekShivkumar Je suis d'accord avec votre premier point, mais pas le dernier. Idéalement, chaque ensemble devrait être aussi représentatif que possible de l'ensemble du monde réel (l'échantillonnage stratifié essaie simplement d'en faire le cas lorsque vous échantillonnez un ensemble de données pour la première fois, puis le transforme en train + test). Tout le reste risque de: 1. provoquer l'erreur d'apprentissage du classificateur, 2. donner une fausse information sur la performance du classificateur projeté, ou 3. les deux. –