0

У меня есть проблема классификации/категоризации текста с несколькими классами. У меня есть набор основных данных истины с K различными взаимоисключающими классами. Это несбалансированная проблема в двух отношениях. Во-первых, некоторые классы намного чаще, чем другие. Во-вторых, некоторые классы представляют для нас больше интереса, чем другие (они в целом положительно коррелируют с их относительной частотой, хотя некоторые классы интересны довольно редко).Нужна помощь в применении scikit-learn к этой задаче категоризации безбалансного текста

Моя цель - разработать единый классификатор или их коллекцию, чтобы иметь возможность классифицировать классы интереса с высокой точностью (не менее 80%) при сохранении разумного отзыва (что «разумно» немного расплывчато) ,

Особенности, которые я использую, в основном типичны для униграммных/бикрамных, а также некоторые двоичные функции, поступающие из метаданных входящих документов, которые классифицируются (например, были ли они отправлены по электронной почте или через веб-форму).

Из-за неуравновешенных данных я склоняюсь к разработке двоичных классификаторов для каждого из важных классов, а не для одного, например, для многоуровневого SVM.

Какие алгоритмы обучения ML (двоичные или нет), реализованные в scikit-learn, позволяют обучать, настроенным на точность (например, напомнить или F1) и какие параметры мне нужно установить для этого?

Какие инструменты анализа данных в scikit-learn могут использоваться для выбора функций, чтобы сузить возможности, которые могут быть наиболее важными для точной классификации конкретного класса?

Это не проблема «большие данные»: K о 100, k о 15, общем количестве образцов, доступных мне для обучения и тестирования около 100,000.

Thx

ответ

0

Учитывая, что к небольшой, я бы просто сделать это вручную. Для каждого желаемого класса подготовьте свой индивидуальный (один против остального) классификатор, посмотрите на кривую прецизионного отзыва и затем выберите порог, который дает желаемую точность.