Вопрос или проблема
У меня есть следующая проблема, и я очень надеюсь, что есть ее решение. Я также подозреваю, что существует простой подход к этому. Я просто не вижу его в данный момент. Буду очень признателен за любую помощь или совет.
Итак, у меня следующая ситуация:
Я попросил людей пометить около 1000 точек данных (каждую дважды) по 5-балльной шкале, баллы которой не равномерно распределены. Тексты оценивались по нескольким качественным характеристикам (например, понятности). Как и следовало ожидать, оценщики не всегда соглашались с оценкой. Однако при анализе согласованности оценщиков удалось определить “существенную” надежность (согласно Лэндису и Коху).
Теперь я хочу использовать размеченные данные в качестве входных данных для алгоритма машинного обучения (например, SVM и Random Forest). Теперь задача состоит в том, как оптимизировать данные заранее. В настоящее время для одной и той же выборки доступны разные метки.
Среднее значение между различными метками не кажется мне разумным. Есть ли стандартные процедуры, как я могу предварительно скорректировать набор данных?
Вы бы очень мне помогли!
Заранее большое спасибо.
Если вы собираетесь использовать сводную статистику, вы должны подготовить ее так, чтобы она была хорошо подходит для вашей задачи, то есть захватывала большую часть соответствующей информации. Для таких вещей обычно нет лучшего универсального решения, все зависит от конкретной проблемы. Вы не указали, о чем ваша проблема, поэтому я не могу много помочь, возможно, используйте медианное значение.
Я бы постарался избегать любых сводных статистик. Когда я имел дело с подобными проблемами, лучшее решение заключалось в том, чтобы сохранить каждый размеченный текст как отдельный элемент. Так что если оригинальный набор данных выглядит так:
| текст | метка |
|-------|-------|
| "foo" | 0 |
| "foo" | 5 |
| "foo" | 1 |
| "bar" | 3 |
| "bar" | 3 |
| "bar" | 3 |
вместо того, чтобы делать что-то вроде
| текст | метка |
|-------|---------|
| "foo" | 3 |
| "bar" | 3 |
Я бы использовал оригинальный набор данных. С таким подходом вы оставляете модели возможность изучить, что некоторые тексты сложнее размечать, чем другие; например, “foo” имеет 3 разные метки, в то время как “bar” был размечен одинаково всеми оценщиками.
Также наличие разных меток для одного и того же ввода не является проблемой, это означает лишь то, что исходя из вашего ввода невозможно получить идеальные прогнозы, и поскольку ваша проблема связана с человеческой субъективностью, имеет смысл, что ваша модель не может достичь идеальной точности.
Ответ или решение
Обучение алгоритмов машинного обучения с несколькими метками: подробное руководство
Ваша задача по обучению алгоритма машинного обучения на основе размеченных данных, имеющих несколько меток, представляет собой интересный и непростой вызов. Рассмотрим шаги, необходимые для решения этой проблемы, чтобы максимизировать использование ваших данных и добиться наилучших результатов.
1. Понимание проблемы и данных
Ваши данные оцениваются по пятибалльной шкале, что означает, что они содержат категориальные переменные с порядковым характером. Поскольку различия в оценках могут быть значительными, важно учитывать вариативность, которую вносят разные рецензенты.
2. Сохранение исходных данных
Как было предложено, одним из лучших способов работы с разметкой, где несколько оценщиков поставили разные оценки одному и тому же объекту, является сохранение оригинальных записей. Пример:
| текст | метка |
|--------|-------|
| "foo" | 0 |
| "foo" | 5 |
| "foo" | 1 |
| "bar" | 3 |
| "bar" | 3 |
| "bar" | 3 |
Вместо усреднения меток (например, использование среднего значения), вы сохраняете каждую запись отдельной строкой. Это позволит модели учитывать различия в оценках и понимать, что некоторые тексты вызывают больше разногласий, чем другие.
3. Варианты обработки данных
Существует несколько подходов к обработке данных, которые можно рассмотреть:
-
Классификация с несколькими метками: используйте алгоритмы, которые поддерживают множественные метки, такие как метод опорных векторов с многофункциональным выходом или градиентный бустинг. Это позволит модели учитывать каждую метку отдельно и предсказывать распределение вероятностей для каждой метки.
-
Баггинг и бустинг: если вы решите использовать метод случайных лесов, попробуйте адаптировать его таким образом, чтобы он создавал несколько деревьев, основанных на ваших входных данных. Это также поможет улучшить качество предсказания.
4. Оценка и валидация модели
Оценка точности модели с использованием перекрестной проверки поможет вам получить более надежные результаты. Используйте метрики, такие как F1-меры, которые лучше подходят для задач с множественными модулями, поскольку они учитывают как точность, так и полноту.
-
Кросс-валидация: желательно использовать k-кратную перекрестную валидацию, чтобы оценить, как будет вести себя модель на новых данных.
-
Анализ ошибок: после обучения модели, проанализируйте ошибки предсказания для понимания ситуаций, где модель неудачна, и адаптируйте её в соответствии с полученными данными.
5. Итоговые рекомендации
- Сохраняйте оригинальные метки: это позволит учитывать разнообразие мнений.
- Используйте классификаторы, поддерживающие множественные метки: для адекватного учета каждой оценки отдельно.
- Проводите тщательную валидацию модели: для повышения её надежности.
- Анализируйте результаты: адаптируйте подходы на основании полученных данных.
Соблюдение этих шагов позволит вам успешно обучить машинный алгоритм на основе многошкалевых оценок и извлечь из них максимальную пользу.