В КУРСЕ?

Разбираемся в теме

Тестовые данные подсказывают ответ: почему чистая таблица может испортить проверку модели?

В анализе данных на Python легко подготовить красивую таблицу: заменить пропуски средним значением, привести признаки к общему масштабу и затем разделить строки для обучения и проверки. Однако порядок здесь имеет значение. Если среднее уже рассчитано по всей таблице, проверочные строки успели повлиять на подготовку обучения. Аккуратный вид данных скрывает нарушение границы, ради которой выделяли тестовую часть.

Проверка должна оставаться независимой от обучения

Тестовая выборка нужна для оценки работы уже построенной модели на отложенных примерах. Утечка возникает, когда при построении используют информацию, которая не должна быть доступна на этом этапе. Это может дать чрезмерно оптимистичную оценку качества. Ошибка бывает незаметной, потому что программа успешно выполняется и возвращает обычные числа. Граница касается не только самой модели. Заполнение пропусков, подбор масштаба или отбор признаков тоже могут извлекать сведения из данных. Если правило преобразования зависит от наблюдений, важно спросить, какие именно строки участвовали в его расчёте. Отсутствие целевого столбца в промежуточной операции ещё не доказывает отсутствие утечки.

Как одна проверочная строка меняет обучающее значение

Возьмём искусственную таблицу продолжительности сборки заказа. В обучающей части записаны два часа, четыре часа и один пропуск. В тестовой части есть отдельная строка со значением двенадцать часов. Эти числа придуманы для арифметической демонстрации и не описывают настоящую работу склада. Если рассчитывать среднее только по известным обучающим значениям, получится три часа. Именно этим числом в нашем условном правиле заполняется обучающий пропуск. Если сначала объединить обе части, среднее известных значений составит шесть часов. Теперь в обучающей строке появилось число, на которое повлиял отложенный пример. Можно усилить проверку: заменить тестовые двенадцать часов на сто двадцать. Общее среднее станет сорок два, хотя обучающие наблюдения остались прежними. Среднее обучающей части по-прежнему равно трём. Это наглядный признак зависимости подготовки от теста, а не доказательство того, насколько изменится точность конкретной модели.

Обучить правило и применить правило — разные действия

В распространённом интерфейсе преобразований метод fit вычисляет необходимые параметры по переданным данным, а transform применяет уже найденные параметры. Поэтому обучающие строки определяют правило заполнения, после чего то же правило применяют к тестовым. Отдельно пересчитывать тестовое среднее для согласования с моделью тоже не следует. Последовательность преобразования и модели удобно объединять в Pipeline. Но название инструмента само по себе не защищает эксперимент: если обучить весь конвейер на полной таблице до разделения, граница снова нарушится. В описании работы должны быть видны момент разделения и данные, переданные на обучение. Наш пример касается только заполнения пропусков; он не заменяет проверки подходящего способа разделения и других возможных источников утечки.

Попробуйте на практике

Проверьте зависимость заполнения пропуска от тестовой строки на бумаге. Установка библиотек и обучение модели не нужны.

  1. Нарисуйте две отдельные области. В обучающей укажите два, четыре и пропуск; в тестовой укажите двенадцать. Подпишите принадлежность каждой строки.
  2. Рассчитайте среднее двух известных обучающих значений и запишите его как число для заполнения пропуска.
  3. Рассчитайте среднее всех трёх известных значений при ошибочном объединении частей. Сравните два способа заполнения одной обучающей строки.
  4. Замените только тестовое значение на сто двадцать и повторите расчёты. Отметьте, какой способ изменил результат из-за данных проверки.

Как проверить результат. Правильная граница даёт три в обоих расчётах. При объединении частей получаются сначала шесть, затем сорок два. Вы можете указать конкретную тестовую строку, которая повлияла на обучающий пропуск.

Частые вопросы

Любое заполнение средним является ошибкой?

Нет. Здесь обсуждается источник данных для расчёта, а не универсальный выбор способа заполнения. Подходящий метод зависит от смысла признака и задачи.

Если оценка качества снизилась, значит, утечка устранена?

Нет. Изменение оценки не объясняет причину само по себе. Нужна проверка последовательности операций и того, какие строки использовались на каждом этапе.

Самостоятельный разбор темы. Содержание конкретной обучающей программы здесь не представлено.

Зарегистрируйтесь, чтобы уточнить возможность доступа к этому материалу

Зарегистрироваться
← К списку материалов