sklearn текстовый анализ – обработка пропущенных значений

Вопрос или проблема

Я работаю над проектом мульти-классовой текстовой классификации.

Моя цель проста: с учетом “баг”, я хочу предсказать, к какому конечному владельцу группы он будет отнесен.

Мне удалось собрать ~15000 образцов багов с релевантным статусом (т.е. статусом, из которого я могу неявно вывести метку ==> владелец группы)

Мой список признаков:

  1. Тема
  2. Описание
  3. Комментарии <== могу ли я вообще их использовать (есть большая вероятность, что они не будут доступны на этапе прогнозирования)?
  4. Ошибки (извлекаются с помощью регулярных выражений из вышеуказанных характеристик)
  5. Паники (извлекаются с помощью регулярных выражений из вышеуказанных характеристик)
  6. Наличие изображений (логическое поле) ==> (‘да’ или ‘нет’)
  7. Задействованные группы ==> не уверен, что могу использовать это, так как оно выводится из комментариев
  8. Группы коммиттеров
  9. Группа репортеров
  10. Группа исполнителей

Мои метки – это название конечной группы.

У меня есть 6 различных классов/меток

На данный момент я получаю оценку около 80%

Мои вопросы:

  1. Могу ли я использовать признаки, которые содержатся/извлекаются из других (например, ошибки, извлекаемые из комментариев/описания)?
  2. Как мне справляться с отсутствующими признаками? Например, Паника и Ошибки не всегда существуют, следует ли мне пропустить этот признак? стоит ли его заменить логическим признаком, таким как (есть ошибки – да/нет)?
  3. Для группы коммиттеров я использую существующие значения, чтобы предсказать новые и добавить их в dataframe, но хоть я и могу как-то понять, как это можно сделать для такого признака, я не вижу, как это может быть сделано для других.
  1. Да, извлечение новых признаков из существующих является распространенной концепцией – частью процесса инженерии признаков.
  2. Существуют различные методы обработки отсутствующих значений. В общем, вы не хотите терять доступную информацию. Есть различные методы импутации для отсутствующих значений, которые имеют различную эффективность, в зависимости от:
    модели, которую вы используете, типа признака (категориальный, числовой), количества различных значений и так далее.
  3. Не уверен, что вы имели в виду; вам надо дать больше подробностей.

удачи

Ответ или решение

Конечно! Давайте рассмотрим, как можно выполнять текстовый анализ с использованием библиотеки sklearn, при этом эффективно управляя отсутствующими значениями в таком проекте, как много-классовая классификация текстов.

Общая задача

Вам нужно предсказать, к какой группе будет отнесён "баг" на основании текста. Имея 15 000 образцов и текущий уровень точности около 80%, вы стремитесь улучшить модель, учитывая различные особенности.

Использование производных признаков

  1. Производные признаки: Использование производных признаков (например, ошибки из "Комментариев" или "Описания") является стандартной практикой в обработке данных. Эти признаки усиливают вашу модель, позволяя извлечь скрытые закономерности из текста. Однако нужно быть внимательным к тому, как они коррелируют с другими данными.

  2. Управление отсутствующими данными:

    • Пропуски данных, такие как "Ошибки" и "Паники", могут быть обработаны различными способами. Например, можно создать булевы признаки "есть ошибки" и "есть паники", отмечая yes/no при их отсутствии. Это поможет сохранить информацию о наличии или отсутствии таких элементов, что может быть полезно для модели.
    • Более сложные методы, такие как статистическая импутация, могут также быть полезны, но нужно учитывать, как это повлияет на вашу модель.

Стратегии иммутации отсутствующих данных

  1. Классификация/Регрессия: Используйте модели для предсказания вероятных значений отсутствующих данных, особенно если вы наблюдаете устойчивые корреляции в данных. Например, то, как вы используете поддержку для "Committer groups", можно расширить на другие переносимые группировки.

  2. Заполнение медианой/модой: Для числовых и категорийных данных иногда имеет смысл использовать медиану или моду, чтобы заполнить пробелы. Это минимизирует искажения в обучающей выборке.

  3. Удаление: В случаях, когда информация с высоким уровнем "шумов", можно задуматься о полной или частичной фильтрации таких данных, хотя это может привести к потере потенциально полезных признаков.

Дальнейшие действия

  1. Анализ чувствительности модели: Оцените, как каждый из признаков влияет на точность предсказания, и используйте этот анализ для уточнения набора данных.

  2. Улучшение модели: Настройка гиперпараметров, применение различных алгоритмов (например, форрест или градиентный бустинг) также могут улучшить вашу метрику предсказания.

Удачи в улучшении вашего проекта! Современные аналитические инструменты и прогрессивные методы импутации будут полезны для достижения более высокого уровня точности в Вашей модели классификации.

Заключение

Использование мощных инструментов анализа данных, таких как sklearn, в сочетании с продуманным подходом к обработке отсутствующих значений и производных признаков, может значительно улучшить качество анализа текстов и предсказательной модели в целом.

Оцените материал
Добавить комментарий

Капча загружается...