Я пытаюсь использовать SVM для классификации статей новостей.LibSVM превращает все мои векторы в векторы поддержки, почему?
Я создал таблицу, содержащую функции (уникальные слова, найденные в документах) в виде строк. Я создал отображение векторов веса с этими функциями. т.е. если в статье есть слово, которое является частью таблицы векторов признаков, то местоположение помечено как 1
или 0
.
Пример: - образец Обучение генерироваться ...
1 1: 1 2: 1 3: 1 4: 1 5: 1 6: 1 7: 1 8: 1, 9: 1 10: 1 11: 1 12: 1 13: 1 14: 1 15: 1 16: 1 17: 1 18: 1 19: 1 20: 1 21: 1 22: 1 23: 1 24: 1 25: 1 26: 1 27: 1 28: 1 29: 1 30: 1
Поскольку это первый документ, все функции присутствуют.
Я использую 1
, 0
как ярлыки классов.
Я использую svm.Net для классификации.
Я дал 300
весовые векторы, классифицированные вручную как данные о тренировке, а сгенерированная модель принимает все векторы в качестве векторов поддержки, которые, безусловно, перерабатывают.
Мои всего: (unique words/row count
в каталоге функций) Таблица 7610
.
В чем причина?
Из-за этого при установке мой проект теперь находится в довольно плохом состоянии. Он классифицирует каждую статью в качестве положительной статьи.
В У LibSVM двоичная классификация есть ли ограничение на метку класса?
Я использую 0
, 1
вместо -1
и +1
. Это проблема?
Обнаружено, что это происходит потому, что SVM.net не проверяет правильность данных обучения. В моих данных данных обучения данные не были отсортированы, в результате они порождали странные результаты. После сортировки весового вектора на номера функций, а затем генерации модели вещи намного лучше ... 74% точности. Спасибо. –