Вопрос или проблема
Я веду дебаты с кем-то по поводу проблемы, где есть дубликаты по признакам (т.е. $ X_1 = X_2 $, но $ Y_1 != Y_2 $).
С моей точки зрения, мы должны сохранить эти данные, так как они могут быть показательными и, следовательно, интересными для обучающих и тестовых данных. Мой оппонент считает, что это может исказить результаты.
Я пытался найти статьи/публикации на эту тему, но не нашёл никаких. Как вы думаете?
С одной стороны, вам следует удалить их, если вы не знаете, как были собраны целевые переменные (т.е. метки). Сразу видно, что любой алгоритм с обучением с учителем будет сбит с толку, пытаясь разделить такие случаи (например, подумайте о обучении на основе энтропии), предполагая, что они (все) принадлежат обучающему набору.
С другой стороны, вам следует оставить один из них, если у вас достаточно знаний о целевых переменных и у вас мало данных в обучающем наборе.
В любом случае дубликаты должны быть должным образом обработаны. Например, они должны принадлежать либо обучающему, либо тестовому набору, но не обоим; это поможет избежать путаницы в результирующей модели (после фазы обучения). По моему опыту, есть статьи, рассматривающие проблему дублирования, и открытые реализации для этого (например, dedupe на Python).
Ответ или решение
Дубликаты по признакам без целевой переменной: стоит ли их удалять?
Вопрос о том, следует ли удалять дубликаты, когда у вас есть совпадения по признакам (например, $X_1 = X_2$) без соответствующих целевых переменных (например, $Y_1 \neq Y_2$), является важной темой в области машинного обучения и анализа данных. Рассмотрим оба подхода и условия, при которых каждый из них может быть оправдан.
Подход 1: Удаление дубликатов
Ваш оппонент утверждает, что наличие дубликатов может ввести в заблуждение модель и негативно повлиять на результаты. Это действительно так, особенно если дубликаты относятся к разным целевым переменным. Когда алгоритмы машинного обучения пытаются изучить различия между классом или предсказанными значениями, смешение данных из-за дублирующихся признаков может создавать шум и уменьшать точность модели.
Особенно это верно для методов, основанных на энтропии, где алгоритму сложно выделить четкие паттерны в данных с дублирующимися объектами. Поэтому, если нет уверенности в том, как были собраны целевые переменные, разумно избавиться от дубликатов, чтобы сократить вероятность путаницы во время обучения модели.
Подход 2: Сохранение дубликатов
С другой стороны, если у вас достаточно информации о целевых переменных и ограниченное количество данных в наборе для обучения, то стоит рассмотреть возможность сохранения дубликатов. Эти дубликаты могут представлять важные вариации в данных, которые не должны быть проигнорированы. В таком случае каждое наблюдение может вносить свою лепту в обучение модели, особенно если вы хотите, чтобы модель могла обобщать информацию на новую, видимую ранее.
Если вы решили сохранить дубликаты, следите за тем, чтобы они были организованы для анализа. Например, старайтесь, чтобы дубликаты не оказались и в обучающей, и в тестовой выборках, так как это может привести к небольшому количеству информации о тестировании и завышению показателей модели.
Рекомендуемые практики
-
Анализ контекста данных: Всегда важно понимать, как были собраны данные и что они могут представлять. Если данные собраны из различных источников, и существует вероятность того, что дубликаты имеют разные тематические значения, то сохранение их может помочь в анализе.
-
Секреты управления дубликатами: Если вы все же решите сохранять дубликаты, используйте инструменты для управления данными, такие как dedupe на Python. Эти библиотеки могут помочь вам управлять дубликатами более эффективно и с минимизацией связанного с этим шума.
-
Эмпирические исследования: Несмотря на трудности поиска статьей и исследований на эту тему, стоит провести собственный анализ и проверить, как наличие дубликатов влияет на вашу конкретную задачу. Попробуйте обучить модель с дубликатами и без них и сравните результаты, чтобы получить более обоснованное решение.
Заключение
В итоге, решение о том, стоит ли удалять дубликаты по признакам без целевой переменной, должно основываться на понимании контекста данных, характеристик целевых переменных и потребностях вашего проекта. Вы можете выбрать как путь удаления, так и сохранения дубликатов, но следуйте рекомендованным практикам для минимизации рисков и повышения точности конечной модели.