Влияет ли разреженный тренировочный комплекс на SVM?

12

Я пытаюсь классифицировать сообщения по различным категориям, используя SVM. Я составил список желаемых слов / символов из учебного набора.

Для каждого вектора, который представляет сообщение, я устанавливаю соответствующую строку, 1если слово присутствует:

"корпус" это: [Мария, маленькая, ягненок, звезда, мерцание]

первое сообщение: "у марии был маленький ягненок" -> [1 1 1 0 0]

Второе сообщение: "Мерцай, маленькая звезда" -> [0 1 0 1 1]

Я думаю, что это довольно распространенная установка с SVM, но мой вопрос, с тысячами слов в наборе, что, если на самом деле появляются только 1-2 слова на сообщение? Повлияет ли линейная зависимость моего набора обучающих векторов на способность алгоритма сходиться?

jonsca
источник
1
У вас много данных, но мало помеченных данных? Если это так, вы могли бы хотеть заглянуть в обучение под наблюдением. Использование некоторых ваших немаркированных данных должно повысить вашу точность и снизить риск переобучения.
Нейрон
@neuron Я думал об этом. Что является примером архитектуры с полугодовым надзором?
Йонска
1
Я использовал только «хакерские» методы с полууправлением (то есть модель поезда на обучающем наборе, используйте модель для прогнозирования на основе данных, извлекайте все данные с вероятностью предсказания> 0,5 и объединяйте с обучающим набором, и создавайте moel на новом обучающем наборе). Но я видел, что flexmix упомянул несколько мест (см. Cran.r-project.org/web/packages/flexmix )
нейрон
@neuron Хорошо, хорошо, потому что статьи, которые я видел (хотя и с быстрым поиском по Википедии), не были очень специфическими в отношении архитектур. Я проверю flexmix- хотя у меня есть "Learn R" в моем календаре в течение нескольких лет!
Jonsca
Сделайте это, R удивительно, библиотеки, которые становятся доступными для вас, просто ошеломляют. Такие вещи, как caret, sqldf / rmysql, foreach (параллельный для), ggplot2 и googlevis - просто удивительно полезные инструменты. Сначала я не был фанатом этого языка, но он вырос на мне, и я очень люблю использовать его сейчас.
Нейрон

Ответы:

9

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

Кроме того , кажется , что вы говорите о SVM в Primal . Обратите внимание, что если вы используете ядро ​​SVM, то, что у вас есть разреженный набор данных, не означает, что матрица ядра будет разреженной. Это может быть, однако, низкий рейтинг. В этом случае вы можете использовать этот факт для более эффективного обучения (см., Например, Эффективное обучение SVM с использованием низкоранговых представлений ядра ).

TDC
источник
1
Правда, я был немного быстр и свободен в своей терминологии. Имеет смысл.
Jonsca