Поширена практика в машинному навчанні полягає в нормалізації характеристик або стандартизації даних змінних прогнозника, саме так, центрувати дані, що віднімають середнє значення, і нормалізувати його діленням на дисперсію (або стандартне відхилення теж). Для стримування самопочуття і, наскільки я розумію, ми робимо це для досягнення двох головних речей:
- Уникайте зайвих малих ваг з метою чисельної стійкості.
- Забезпечте швидку конвергенцію алгоритмів оптимізації, таких як, наприклад, кон'югатний градієнт, щоб велика величина одного розміру предиктора wrt інших не призводила до повільної конвергенції.
Ми зазвичай розбиваємо дані на навчальні, валідаційні та тестові набори. У літературі ми зазвичай бачимо, що для нормалізації ознак вони приймають середнє значення та відхилення (або стандартне відхилення) для всього набору змінних прогнозів. Великий недолік, який я бачу тут, полягає в тому, що якщо ви це зробите, ви насправді вводите майбутню інформацію в змінні прогнозувальника тренінгу, а саме в майбутню інформацію, що міститься в середньому та відхиленні.
Тому я нормалізую дані щодо тренувальних даних і зберігаю середнє значення та відхилення. Тоді я застосовую нормалізацію функції до змінних прогнозів валідаційних і тестових наборів даних, використовуючи середнє тренування та відхилення. Чи є з цим якісь принципові вади? хтось може порекомендувати кращу альтернативу?