Вопрос или проблема
Я работаю над проектом мульти-классовой текстовой классификации.
Моя цель проста: с учетом “баг”, я хочу предсказать, к какому конечному владельцу группы он будет отнесен.
Мне удалось собрать ~15000 образцов багов с релевантным статусом (т.е. статусом, из которого я могу неявно вывести метку ==> владелец группы)
Мой список признаков:
- Тема
- Описание
- Комментарии <== могу ли я вообще их использовать (есть большая вероятность, что они не будут доступны на этапе прогнозирования)?
- Ошибки (извлекаются с помощью регулярных выражений из вышеуказанных характеристик)
- Паники (извлекаются с помощью регулярных выражений из вышеуказанных характеристик)
- Наличие изображений (логическое поле) ==> (‘да’ или ‘нет’)
- Задействованные группы ==> не уверен, что могу использовать это, так как оно выводится из комментариев
- Группы коммиттеров
- Группа репортеров
- Группа исполнителей
Мои метки – это название конечной группы.
У меня есть 6 различных классов/меток
На данный момент я получаю оценку около 80%
Мои вопросы:
- Могу ли я использовать признаки, которые содержатся/извлекаются из других (например, ошибки, извлекаемые из комментариев/описания)?
- Как мне справляться с отсутствующими признаками? Например, Паника и Ошибки не всегда существуют, следует ли мне пропустить этот признак? стоит ли его заменить логическим признаком, таким как (есть ошибки – да/нет)?
- Для
группы коммиттеров
я использую существующие значения, чтобы предсказать новые и добавить их в dataframe, но хоть я и могу как-то понять, как это можно сделать для такого признака, я не вижу, как это может быть сделано для других.
- Да, извлечение новых признаков из существующих является распространенной концепцией – частью процесса инженерии признаков.
- Существуют различные методы обработки отсутствующих значений. В общем, вы не хотите терять доступную информацию. Есть различные методы импутации для отсутствующих значений, которые имеют различную эффективность, в зависимости от:
модели, которую вы используете, типа признака (категориальный, числовой), количества различных значений и так далее. - Не уверен, что вы имели в виду; вам надо дать больше подробностей.
удачи
Ответ или решение
Конечно! Давайте рассмотрим, как можно выполнять текстовый анализ с использованием библиотеки sklearn, при этом эффективно управляя отсутствующими значениями в таком проекте, как много-классовая классификация текстов.
Общая задача
Вам нужно предсказать, к какой группе будет отнесён "баг" на основании текста. Имея 15 000 образцов и текущий уровень точности около 80%, вы стремитесь улучшить модель, учитывая различные особенности.
Использование производных признаков
-
Производные признаки: Использование производных признаков (например, ошибки из "Комментариев" или "Описания") является стандартной практикой в обработке данных. Эти признаки усиливают вашу модель, позволяя извлечь скрытые закономерности из текста. Однако нужно быть внимательным к тому, как они коррелируют с другими данными.
-
Управление отсутствующими данными:
- Пропуски данных, такие как "Ошибки" и "Паники", могут быть обработаны различными способами. Например, можно создать булевы признаки "есть ошибки" и "есть паники", отмечая
yes/no
при их отсутствии. Это поможет сохранить информацию о наличии или отсутствии таких элементов, что может быть полезно для модели. - Более сложные методы, такие как статистическая импутация, могут также быть полезны, но нужно учитывать, как это повлияет на вашу модель.
- Пропуски данных, такие как "Ошибки" и "Паники", могут быть обработаны различными способами. Например, можно создать булевы признаки "есть ошибки" и "есть паники", отмечая
Стратегии иммутации отсутствующих данных
-
Классификация/Регрессия: Используйте модели для предсказания вероятных значений отсутствующих данных, особенно если вы наблюдаете устойчивые корреляции в данных. Например, то, как вы используете поддержку для "Committer groups", можно расширить на другие переносимые группировки.
-
Заполнение медианой/модой: Для числовых и категорийных данных иногда имеет смысл использовать медиану или моду, чтобы заполнить пробелы. Это минимизирует искажения в обучающей выборке.
-
Удаление: В случаях, когда информация с высоким уровнем "шумов", можно задуматься о полной или частичной фильтрации таких данных, хотя это может привести к потере потенциально полезных признаков.
Дальнейшие действия
-
Анализ чувствительности модели: Оцените, как каждый из признаков влияет на точность предсказания, и используйте этот анализ для уточнения набора данных.
-
Улучшение модели: Настройка гиперпараметров, применение различных алгоритмов (например, форрест или градиентный бустинг) также могут улучшить вашу метрику предсказания.
Удачи в улучшении вашего проекта! Современные аналитические инструменты и прогрессивные методы импутации будут полезны для достижения более высокого уровня точности в Вашей модели классификации.
Заключение
Использование мощных инструментов анализа данных, таких как sklearn, в сочетании с продуманным подходом к обработке отсутствующих значений и производных признаков, может значительно улучшить качество анализа текстов и предсказательной модели в целом.