Подготовка данных: очистка, масштабирование и разбиение
Модель машинного обучения хороша ровно настолько, насколько хороши данные, которые вы в неё подаёте. Реальные данные приходят «грязными»: с пропусками, опечатками, повторяющимися строками, сильно различающимися диапазонами чисел и текстом там, где модель ждёт числа. Прежде чем любой алгоритм сможет учиться, вы должны превратить этот сырой беспорядок в чистые, числовые, соразмерно измеренные таблицы, а затем спрятать часть данных для честной проверки.
Иногда эту работу называют скучной. Это не так. В реальных проектах на подготовку данных обычно уходит 60–80 % всей работы, и именно она сильнее всего влияет на то, насколько хорошо будет работать модель. Гениальный алгоритм на плохих данных почти всегда проигрывает простому алгоритму на хорошо подготовленных данных. Этот урок — ваше полное руководство по такой подготовке.
Что вы научитесь делать
- Объяснять, почему сырые данные никогда не готовы для модели.
- Обрабатывать пропущенные значения, удаляя их или заполняя средним, медианой или модой — и понимать плюсы и минусы каждого способа.
- Удалять строки-дубликаты, исправлять неправильные типы данных и укрощать выбросы.
- Превращать категории (текст) в числа с помощью кодирования меток (label encoding) и one-hot кодирования.
- Приводить каждое число к справедливой шкале с помощью минимаксной нормализации (min–max) и стандартизации, вычисляя значения вручную.
- Разбивать данные на обучающую и тестовую выборки и чётко объяснять, почему нельзя оценивать модель на тех данных, которые она изучала.
- Замечать и избегать утечки данных (data leakage) — незаметной ошибки, которая заставляет вас поверить плохой модели.