Est-ce que je transforme toutes mes données ou mes plis (si CV est appliqué) en même temps? par exemple
(allData - mean(allData)) / sd(allData)
Est-ce que je transforme les trains et les tests séparément? par exemple
(trainData - mean(trainData)) / sd(trainData)
(testData - mean(testData)) / sd(testData)
Ou dois-je transformer la rame et utiliser des calculs sur la base de tests? par exemple
(trainData - mean(trainData)) / sd(trainData)
(testData - mean(trainData)) / sd(trainData)
Je crois que 3 est la bonne façon. Si 3 est correct, dois-je m'inquiéter de ce que la moyenne ne soit pas 0 ou que la plage ne soit pas comprise entre [0; 1] ou [-1; 1] (normalisation) du jeu de tests?
R
? Voir cette question: stackoverflow.com/questions/49260862/…Réponses:
La troisième voie est correcte. C’est exactement la raison pour laquelle l’on aborde de manière très détaillée les éléments de l’apprentissage statistique , voir la section "Validation croisée fausse et correcte", ainsi que le dernier chapitre de Learning From Data , dans l’exemple du marché boursier.
Essentiellement, les procédures 1 et 2 contiennent des informations sur la réponse, ou celles du futur, de votre ensemble de données de conservation dans la formation ou l'évaluation de votre modèle. Cela peut entraîner un biais d'optimisme considérable dans l'évaluation de votre modèle.
L’idée de la validation du modèle est d’imiter la situation dans laquelle vous vous trouvez lorsque votre modèle prend des décisions de production, lorsque vous n’avez pas accès à la vraie réponse. La conséquence est que vous ne pouvez pas utiliser la réponse dans l'ensemble de tests pour quoi que ce soit, sauf pour comparer vos valeurs prédites.
Une autre façon de procéder consiste à imaginer que vous n’avez accès qu’à un seul point de données de votre réserve à la fois (situation courante pour les modèles de production). Tout ce que vous ne pouvez pas faire dans cette hypothèse doit être assumé par de grands soupçons. Clairement, une chose que vous ne pouvez pas faire est d'agréger tous les nouveaux points de données passés et futurs pour normaliser votre flux de données de production. De même, faire de même pour la validation du modèle n'est pas valide.
Vous n'avez pas à vous soucier de la moyenne de votre ensemble de tests comme étant non nulle, c'est une meilleure situation que de biaiser vos estimations de performance de maintien. Bien entendu, si le test est véritablement tiré de la même distribution sous-jacente que votre train (hypothèse essentielle de l’apprentissage statistique), cette moyenne devrait être approximativement égale à zéro.
la source
Clearly, one thing you cannot do is aggregate over all new data-points past and future to normalize your production stream of data
. Pourquoi pas?