Вы когда-нибудь задавались вопросом, как и когда использовать нормализацию в промышленном продукте или в исследовательской среде?
Вы когда-нибудь задумывались и исследовали потенциальное влияние различного порядка обработки на окончательный результат прогнозирования?
Вы когда-нибудь исследовали и пытались выяснить, какой метод предварительной обработки следует использовать?
Следует ли использовать разные функции для каждой отдельной функции или использовать один и тот же метод для всех функций?
Здесь я приведу вам некоторые эмпирические данные, которые я сделал, чтобы показать правильные подходы к этим вопросам. Я разделю серию статей на три части и рассмотрю их отдельно. Проблемы, которые я собираюсь решить, включают:
- Различное влияние различных методов нормализации на конечный результат — часть 1
- Потенциальный эффект от другого порядка обработки, особенно при использовании скейлера — часть 2
- Следует ли применять разные масштабаторы к разным функциям или применять один метод масштабирования ко всем функциям? И объясните разницу между проектированием признаков в исследовательской и производственной среде — часть 3.
В этой статье я решу первый вопрос с помощью полного инженерного процесса. Если вы хотите узнать подробнее. Пожалуйста, проверьте курс онлайн.
Нормализация или стандартизация — это концепция, широко используемая в машинном обучении при разработке функций. Он применяется для управления диапазоном функции, чтобы убедиться, что в любом отдельном прогнозе нет большой погрешности.
Я использовал данные на Kaggle, чтобы предсказать цену продажи домов.
Я хочу избежать описания процессов проектирования функций, включая замену отсутствующих, кодирование категориальных данных и выбор функций в этой статье, и просто сосредоточусь на различиях между различными методами масштабирования.
Всего в этой статье тестируются четыре основных метода масштабирования:
Я измерил результат прогнозирования, а также mse разными методами. MSE используется для оценки ошибки между прогнозируемым значением и реальным значением.
Из результата видно, что между окончательным прогнозируемым результатом нет большого разрыва. Основное различие заключается в mse. Между тем, первые три метода определенно лучше, чем масштабатор Normalizer. Также было подтверждено, что нет особой разницы в том, какой из них использовать в реальном производстве (первые три метода). В этой статье я не рассматривал задачу кластеризации. Но вы можете использовать другой набор данных для классификации, если хотите.
Есть одно предложение из книги Large Scale Machine Learning with Python: преобразование в диапазоне [0,1] работает особенно хорошо, если вы имеете дело с разреженной матрицей и большинство ваших значений равны нулю.
Код был опубликован на этом resp, вы можете посмотреть и поиграть сами.
Спасибо за ваше чтение. Я принесу статью, чтобы изучить второй вопрос в ближайшее время.
Рекомендации
Крупномасштабное машинное обучение с Python от Bastiaan Sjardin (2016)