Уменьшение размера SVM в сенсорной сети

#machine-learning #neural-network #svm #dimensionality-reduction

#машинное обучение #нейронная сеть #svm #уменьшение размерности

Вопрос:

Я ищу несколько предложений по проблеме, с которой я в настоящее время сталкиваюсь.

У меня есть набор датчиков, скажем, S1-S100, который запускается при выполнении некоторого события E1-E20. Предположим, что обычно E1 запускает S1-S20, E2 запускает S15-S30, E3 запускает S20-s50 и т.д. И E1-E20 являются полностью независимыми событиями. Иногда событие E может вызвать срабатывание любого другого не связанного датчика.

Я использую ансамбль из 20 svm для анализа каждого события отдельно. Моими функциями являются частота датчиков F1-F100, количество срабатываний каждого датчика и несколько других связанных функций.

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

Кто-нибудь, пожалуйста, может подсказать, чего мне здесь не хватает? Документ или какая-нибудь начальная идея…

Заранее спасибо.

Ответ №1:

Возможно, вам захочется начать с линейного дискриминантного анализа, это довольно простой алгоритм, который более или менее выполняет то, что вы ищете: уменьшение размерности и / или классификацию. Предполагается, что каждый класс распределен по Гауссу разными способами, но с одинаковой ковариацией. Вероятно, хорошей идеей будет заранее отобразить некоторые данные, чтобы убедиться в обоснованности этого предположения. Я уже использовал реализацию LDA в R раньше. Однако в нем было около дюжины функций. Я не уверен, как это будет масштабироваться до 100 размеров.

Это также может помочь узнать, почему вы хотите уменьшить размерность данных. SVM обычно используются с сотнями тысяч (разреженных) функций, так в чем же сложность, с которой вы сталкиваетесь?

Комментарии:

1. спасибо за ответ.. я попробую LDA .. я хочу уменьшить размер, потому что в большинстве случаев, если E1 запускает S1-S15, значение для остальной частоты датчика F16-F100 будет равно нулю, иногда другие датчики, скажем, S45, S50, также могут запускаться несколько раз… в основном я хочу исключить все эти нули из вектора объектов

2. Предупреждаю, LDA также является скрытым распределением Дирихле, родственным, но совсем другим алгоритмом.

Ответ №2:

Это отличная статья, связанная с вашим вопросом: http://en.wikipedia.org/wiki/Nonlinear_dimensionality_reduction

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

Карлос