- Вопрос или проблема
- Ответ или решение
- Как обрабатывать идентификаторы при разбиении данных для машинного обучения
- 1. Понимание роли ID переменных
- 2. Исключение ID переменных перед разбиением
- 3. Как действовать с неуникальными идентификаторами
- 4. Стратегия разбиения данных
- 5. Анализ распределения данных
- Заключение
Вопрос или проблема
Я новичок в машинном обучении и работаю с данными международных спортивных соревнований. Я использовал техники создания реляционных данных в tidyverse, чтобы объединить несколько источников данных и создать набор данных на основе событий, где каждая строка – это результат уникального противостояния между двумя командами и их измеримыми характеристиками, с очевидной целью найти важность этих характеристик для результата.
Примечание = В общем, я пробую несколько различных способов организации данных, чтобы получить практический опыт в создании и анализе наборов данных эффективно, так что если то, как я это настроил, не соответствует вашему подходу, не судите меня слишком строго. В частности, у меня есть повторяющиеся переменные в зависимости от того, дома или в гостях играет команда, чтобы я мог попытаться собрать все данные об событиях в одно единственное наблюдение (пример = “average_speed_home” и “average_speed_away”). Я знаю и попробую другие конфигурации данных, но любые предложения по этому поводу были бы приятны, но это не основная причина, по которой я прошу о помощи.
Мой основной вопрос связан с тем, что мне делать с переменными ID, которые я использовал для создания набора данных в отношении разделения данных для машинного обучения. Я читал в нескольких постах, что мне следует сохранить эти переменные для разделения данных, поскольку это может создать предвзятость, если я этого не сделаю. Но переменные ID, которые у меня есть, не являются факторами, которые я хочу включить при создании своих моделей.
В частности, я использовал переменные Home и Away для определенных команд в противостоянии, чтобы я мог расширить данные и включить всю информацию для каждого события в одно наблюдение, но эти отличия команд уже показаны в других переменных, которые относятся либо к домашним, либо к гостевым для определенной характеристики, такой как “average_speed_home” и “average_speed_away”. Переменные Home и Away теперь просто указывают на национальность. Поскольку несколько ежегодных соревнований включены в набор данных, я не хотел бы анализировать влияние национальности на результаты, потому что состав команд изменяется довольно часто, и результаты могут быть предвзяты из-за недавнего успеха (и все реальные навыки и показатели производительности включены как собственные переменные).
Также я не уверен, стоит ли оставлять переменную ID матча, потому что каждая строка – это уникальное значение, которое по сути просто счёт наблюдений.
Имеет ли значение распределение данных при разделении данных, когда данные основаны на событиях и стандартизированы так, что единственными различиями являются те национальные команды, которые сталкиваются друг с другом в противостоянии? И если я ищу только числовые значения определенных навыков и их влияние на результат, следует ли мне беспокоиться об включении переменных ID при разделении данных?
Кратко: Я не хочу включать определенные переменные ID для создания модели, но я не уверен, приведет ли их удаление перед разделением данных к предвзятости, особенно в стандартизированных данных, основанных на событиях.
Какое общее правило следует применять для удаления, казалось бы, незначительных переменных ID, которые использовались только для создания реляционного набора данных? Когда лучше удалить их до разделения данных или после разделения данных?
Спасибо.
Уникальные идентификаторы (например, идентификатор матча, когда каждая запись – это матч) не нужны ни для разделения данных, ни для создания модели, так что их удаление не повредит. Удаление их может быть полезным, чтобы предотвратить “обнаружение” ложной корреляции алгоритмом обучения.
Что касается неуникальных идентификаторов (например, те, которые вы добавили для облегчения объединения источников данных), если вы включаете как идентификатор переменной источника, так и атрибуты из этого источника, будет высокая степень корреляции между ключом и этой группой атрибутов. Это может вызвать проблемы, если вы используете алгоритм обучения, который предполагает независимость между переменными, такой как линейная/логистическая регрессия.
Что касается сохранения переменных ID для разделения данных – вы не включили ссылки на посты, о которых упоминаете, поэтому не уверен, какую точку они пытаются донести. Просто включение переменных ID в ваши данные при создании разделов для обучения/тестирования ничего не даст, так что я предполагаю, что они обсуждают использование переменных ID как части стратегии разделения. Две возможные стратегии – это стратифицированное разделение (где пропорция записей с каждым значением переменной стратификации одинакова в обучающей и тестовой выборках) и групповое разделение (где записи с одинаковым значением переменной группировки находятся либо все в тестовой выборке, либо все в обучающей выборке). Если вы хотите использовать одну из этих стратегий, вам может быть полезно использовать одну из своих переменных ID для этого. Однако мне кажется, в большинстве случаев будет “реальный” атрибут, который вы можете использовать вместо этого. Это сработает так же хорошо и будет иметь преимущество в том, что вы сможете легче объяснить, если вам позже нужно будет объяснять вашу стратегию разделения.
Ответ или решение
Как обрабатывать идентификаторы при разбиении данных для машинного обучения
Вопрос обработки идентификаторов данных (ID переменных) при подготовке набора данных для машинного обучения является важным аспектом, особенно в контексте спортивных соревнований, как у вас. В данной статье мы детально рассмотрим, как следует подходить к таким идентификаторам, чтобы минимизировать возможные ошибки и предвзятости в модели.
1. Понимание роли ID переменных
ID переменные, такие как уникальные идентификаторы матчей или ID команд, часто служат для отслеживания и управления данными. Однако в контексте машинного обучения такие переменные обычно не содержат информации, значимой для предсказаний. Таким образом, их наличие может лишь усложнить анализ, вводя шум в модель.
2. Исключение ID переменных перед разбиением
Если ваши ID переменные не содержат информативной статистики, их следует удалить перед разбиением данных, поскольку они:
- Не вносят значимой информации: Уникальные идентификаторы матчей, например, просто обозначают конкретный матч и не содержат данных о его результатах или характеристиках.
- Могут создать ложные корреляции: Модели могут начать обнаруживать зависимости, там где их нет, основываясь на этих переменных.
3. Как действовать с неуникальными идентификаторами
В случае неуникальных идентификаторов, таких как те, что используются для соединения различных источников данных, может возникнуть проблема высокой корреляции между идентификатором и характеристиками, полученными из источника. В таких случаях стоит рассмотреть:
- Выбор только значимых переменных: Если переменная ID или аналогичный идентификатор коррелирует с другими независимыми переменными, лучше оставить только те, которые действительно важны для анализа.
- Переосмысление ID переменных: Например, если ID переменная используется для группировки, и вы рассматриваете разбиение именно по этой группе, возможно, есть смысл использовать другие признаки для стратифицированного разбиения.
4. Стратегия разбиения данных
При разбиении данных важно учитывать:
- Стратифицированное разбиение: Если у вас есть категориальные переменные (например, категории команд), вы можете использовать эти переменные для стратификации, чтобы поддерживать пропорции классов в наборе данных.
- Групповое разбиение: Если есть необходимость разделить данные по группам (например, по командам), убедитесь, что все записи для конкретной команды находятся либо в обучающем, либо в тестовом наборе данных.
5. Анализ распределения данных
В случае ваших данных, где основным фокусом является количественное определение влияния навыков команд на результаты матчей, очистка от ID переменных не должна приводить к предвзятости, если не нарушает распределение данных. Основной акцент следует делать на факторах, непосредственно связанных с производительностью, таких как скорость или другие метрики.
Заключение
В общем, основной принцип в отношении ID переменных в машинообучении заключается в том, что их наличие или отсутствие не должно мешать анализу. Удаление ID переменных перед разбиением данных, как правило, улучшает качество модели, а при выборе переменных для разбиения следует учитывать их значимость и влияние на результаты анализа. Важно использовать подходящие методы разбиения, учитывая структуру и распределение данных, чтобы обеспечить надежность и устойчивость вашей модели.