Г-н. Вольф ранее взломал эксперимент AB-Testing и теперь возвращается с другим злом — утечкой данных.

На протяжении многих лет я видел и был свидетелем некоторых злых практик от мистера Вольфа (эксперт по обработке данных — фиктивный персонаж). Раньше он занимался п-хакингом, а теперь придумал еще одну хитрость, чтобы обмануть команду. Чтобы остановить мистера Вольфа, я использую свою писательскую способность, чтобы разоблачить и разоблачить все его злые уловки.

Что плохого сделал мистер Вольф?

Г-н Вольф создал модель Data Science, которая оказалась слишком эффективной из-за утечки данных. Неосторожное обращение с данными может саботировать ваши модели Data Science. Метрики, которыми поделился г-н Вольф, выглядели очень привлекательно, но в процессе производства модель сломалась.

Над чем работал мистер Вольф?

Г-н Вольф работал над моделью прогнозирования CTR, в которой он использовал некоторые функции, такие как среднее время сеанса, среднее количество кликов пользователя и т. д., но при расчете среднего значения он также включал период обучающих данных, что вызвало утечку данных.

Объяснение с примером. Если вы хотите спрогнозировать CTR на X дней, вы знаете только среднее количество кликов во время вывода на X-1 дней (а не на текущую дату), но при обучении модели вы включили среднее значение, в которое также были введены X дней. вызвал утечку данных.

После обучения модели г-н Вольф поделился показателями тестовых данных: AUC-ROC выше 0,8 — это было слишком хорошо, чтобы быть правдой.

Г-н. Волк Радовался и праздновал!!! 🎊 🎉

Это счастье длилось недолго. Модельный пост мистера Вольфа сломался в производстве и работал очень плохо. Позже пост-ревью и тщательная проверка кодовой базы мистера Вольфа выявили проблему с утечкой данных и указали ему на нее. Мне было его жаль, так как раньше он был очень счастлив — это напоминает мне цитату. 😂

Соблюдение гигиены данных имеет первостепенное значение при выполнении задачи по науке о данных. Недостаток осведомленности об огромной угрозе гигиене данных: утечка данных; даже опытные специалисты по данным могут попасть в ловушку этого по незнанию.

Утечка данных — это явление, которое возникает, когда для обучения модели используется информация, не входящая в обучающие данные. Это существенно нарушает независимость обучающих данных и позволяет изменять их с помощью информации из внешних источников.

Проще говоря, утечка данных происходит, когда данные, используемые в процессе обучения, содержат информацию о том, что модель пытается предсказать. Данные обучения должны быть полностью независимы от данных тестирования. Значения в тестовом наборе не должны иметь никакого отношения к значениям в обучающем наборе.

Если вы не сможете определить утечку данных в таких ситуациях, вы можете быть обмануты, думая, что ваша модель надежна, только после ее развертывания вы обнаружите, что она полностью ненадежна, как в случае с мистером Вольфом.

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

Дополнительный бонус: еще один классический случай утечки данных, с которым я столкнулся, — это неправильная реализация StandardScaler.

Неправильный метод:

from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
sc.fit_transform(X)
X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.33)

Правильный метод:

from sklearn.preprocessing import StandardScaler
X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.33)
sc = StandardScaler()
sc.fit_transform(X_train)
sc.transform(X_test)

Чтобы понять разницу между fit_transform(), transform() и fit(): обратитесь к моему ответу StackOverFlow (изображение добавлено ниже).

Надеюсь, вы узнали что-то новое. Если вам понравилось, подпишитесь, нажмите 👍 или ❤️ и поделитесь этим с другими. Оставайтесь с нами для следующего!

Присоединяйтесь, следите за мной или поддержите меня в LinkedIn, если вы нашли это чтение полезным. Чтобы узнать больше обо мне посетите: Здесь

Для связи со мной (разговор 1:1): Заблокировать мой календарь для консультации/совета.