0

У меня есть проблема классификации, где мои метки имеют рейтинги, 0 - 100, с шагом 1 (например, 1, 2, 3, 4,).Классификация с несколькими метками, включающая диапазон чисел в виде меток

У меня есть набор данных, где каждая строка имеет имя, текстовое тело и рейтинг (0 - 100).

Из текстового корпуса Я пытаюсь извлечь функции, которые я могу передать в свой классификатор, который выведет соответствующий рейтинг для каждой строки (0 - 100).

Для выбора функции, я собираюсь начать с основного мешка слов. Однако мой вопрос заключается в алгоритме классификации. Есть ли алгоритм классификации в sci-kit learn, который поддерживает эту проблему?

Я читал http://scikit-learn.org/stable/modules/multiclass.html, но описанные алгоритмы, похоже, поддерживают ярлыки, которые полностью дискретны, тогда как у меня есть набор непрерывных меток.

EDIT: А как насчет случая, когда я буду бить мои оценки? Например, у меня может быть 10 меток, каждый из которых равен 1-10.

+2

Если вы признаете, что ваши классы непрерывны, почему бы не использовать регрессию? –

+0

А, я не знаком с регрессией, похоже, что это естественное решение этой проблемы? – jeffrey

+2

Да, когда ваша целевая переменная является своего рода непрерывным значением, где отклонения не имеют значения (можно прогнозировать 36 вместо 37, но предсказать не 90, а не 11). То, что вы действительно хотите сделать, - это свести к минимуму вероятность предсказания неправильной стоимости, но вероятность предсказания отдаленной ценности. И для этого используются алгоритмы регрессии. Любой алгоритм, имя которого заканчивается с помощью Regressor, будет работать. –

ответ

1

Вы можете использовать многовариантную регрессию вместо классификации. U может группировать функции n-gram из текстового корпуса, чтобы сформировать словарь и использовать его для создания набора функций. С помощью этого набора функций подготовьте регрессионную модель, где вывод может быть непрерывным. U может округлять фактическое число вывода, чтобы получить дискретную метку в 1-100

+0

Ах, похоже, что многовариантная регрессия действительно более естественное решение. Будет ли регрессия scikit-learn заботиться об этом? Я предполагаю, что логистическая регрессия - это алгоритм классификатора, а не то, о чем вы говорите. – jeffrey

+1

Да, логистическая регрессия - это алгоритм классификации. Вы можете попробовать линейную регрессию или регрессию хребта или случайную регрессию леса. –

+1

Посмотрите на scikit-learn.org/stable/modules/linear_model.html для линейной и полиномиальной регрессии. вам, возможно, придется попробовать с разными полиномиальными моделями, чтобы придумать ту, которая лучше всего подходит. Я думаю, что сначала следует начать с линейной модели, а затем попробовать другие варианты полиномов позже. Другое предложение было бы также искать регрессионные леса, если это не работает в соответствии с потребностью ура –

1

Вы можете предварительно обработать свои данные с помощью OneHotEncoder, чтобы преобразовать одну функцию от 1 до 100 в 100 двоичных функций, соответствующих каждому значению интервала [1..100 ]. Затем вы получите 100 ярлыков и узнаете многоклассовый классификатор.

Хотя, я предлагаю вместо этого использовать регрессию.

+0

Что будет использовать OneHotEncoder? Вы можете просто использовать 0-100 непосредственно с любым из классификаторов в scikit-learn. –

Смежные вопросы