Алгоритм многоклассовой классификации новостных статей

Я хочу классифицировать новостную статью по категории, к которой она принадлежит. У меня есть 4 категории новостей, например "Технологии, спорт, политика и здоровье". И я собрал около 50 документов для каждой категории в качестве обучающего набора.

**Достаточно ли тренировочных данных для классификации??? И какой алгоритм я должен использовать для классификации?? SVM, случайный лес, Knn, ??

Я использую библиотеку Scikit-learn http://scikit-learn.org/ [python] для своей задачи.

Спасибо


person Ritesh    schedule 29.03.2014    source источник
comment
Данных достаточно для обучения, но я сомневаюсь, что ваша точность будет высокой на новых данных.   -  person brent.payne    schedule 29.03.2014
comment
Хорошо, если вы используете наивный байесовский алгоритм, так как он работает и на небольшом тренировочном наборе. Но я предлагаю вам использовать больше обучающих данных, поскольку точность увеличивается с увеличением размера обучающих данных.   -  person chopss    schedule 15.07.2014


Ответы (2)


Есть много способов решить эту проблему: от CRF до случайных лесов.

С вашими ограниченными обучающими данными я бы предложил использовать модель с высоким смещением, такую ​​​​как линейный SVM. Начните с обучения моделей «один против всех» для каждого класса и прогнозирования класса с наибольшей вероятностью. Это даст вам базовую информацию о том, насколько сложна ваша проблема с данными обучения.

person brent.payne    schedule 29.03.2014
comment
тренируйтесь на 90% ваших данных и смотрите, какая ошибка на 10%, не используемых для обучения. Это даст вам оценку сложности проблемы. Ответ на вопрос, сколько данных для обучения вам нужно, всегда больше. Кроме того, помните, что точность 99% легко достижима, если 99% примеров относятся к одному и тому же классу. - person brent.payne; 04.04.2014

Я предпочитаю, чтобы вы использовали классификацию Наивного Байеса. Существует инструмент под названием Ling-pipe, в котором это уже реализовано. Что вы хотите сделать, это просто обратиться

http://alias-i.com/lingpipe/demos/tutorial/classify/read-me.html

Вот вам небольшой пример программы Classifynews.java. Запустите эту программу, обучив данные и применив тестирование. Образец обучающих данных представлен как «20 групп новостей».

http://qwone.com/~jason/20Newsgroups/

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

Но его точность увеличивается по мере увеличения размера обучающих данных. Поэтому постарайтесь включить больше новостных групп. Удачи. Попробуйте это и дайте мне знать

person chopss    schedule 15.07.2014