Номинально неплохая проблема, но я уверен, что это происходит потому, что происходит что-то смешное ...Помощь - 100% -ная точность с LibSVM?
В качестве контекста я работаю над проблемой в области выражения лица/распознавания, поэтому Точность 100% кажется невероятно неправдоподобной (не то, что это было бы правдоподобно в большинстве приложений ...). Я предполагаю, что в наборе данных есть либо некоторая согласованная предвзятость, что он делает слишком легко для SVM, чтобы вытащить ответ, = или =, скорее, я сделал что-то неправильно на стороне SVM.
Я ищу предложения, чтобы помочь понять, что происходит - это я (= мое использование LibSVM)? Или это данные?
Деталь:
- О ~ 2500 меченых векторов данных/экземпляры (преобразованные видеокадры individuals-- < 20 отдельных лиц всего), бинарной проблемы классификации. ~ 900 функций/экземпляров. Несбалансированные данные устанавливаются примерно в соотношении 1: 4.
- Ran subset.py для разделения данных на тест (500 экземпляров) и на поезд (оставшийся).
- Ran "svm-train -t 0". (Примечание: видимо, нет необходимости в «-w1 1 -w-1 4» ...)
- Ran svm-pred в тестовом файле. Точность = 100%!
Вещь пробовала:
- Проверена около 10 раз за что я не обучение & тестирования на один и те же файлы данные, через какую-то непреднамеренной аргумент командной строки ошибки
- повторно RAN подмножество. py (даже с -s 1) несколько раз и выполнял/тестировал только несколько разных наборов данных (в случае, если я случайным образом на самом магическом поезде/тесте pa
- провел простую проверку типа diff, чтобы подтвердить, что тестовый файл не подмножество данных обучения
- svm-scale по данным не влияет на точность (точность = 100%). (Хотя число поддерживающих векторов действительно падает с nSV = 127, bSV = 64 на nBSV = 72, bSV = 0.)
- ((странно)) с использованием ядра RBF по умолчанию (вице-линейный - то есть удаление - t 0 ') приводит к точности, исходящей от мусора (?!)
- (проверка работоспособности), выполняемая svm-pred, с использованием модели, подготовленной по масштабированному набору данных против немасштабированного набора данных, приводит к точности = 80% (т. е. всегда угадывает доминирующий класс). Это строго проверка здравомыслия, чтобы убедиться, что каким-то образом svm-predict номинально действует прямо на моей машине.
Ориентировочное вывод ?:
Что-то с данных wacked - каким-то образом, в наборе данных, есть тонкий экспериментатор управляемый эффект, что SVM набирает на.
(Это не на первом проходе, объяснить, почему RBF ядро дает результаты для мусора, однако.)
бы очень признателен за любые предложения по а), как исправить мое использование LibSVM (если это на самом деле проблема) или b) определить, какой тонкий экспериментальный смещение в данных LibSVM набирает обороты.
Mmmm, данные и анализ модели на расстоянии вытянутой руки. Операция, но действительно, очень медленная. Это может быть довольно сложно. Есть ли вероятность опубликовать данные? Это почти наверняка данные, но если кто-то другой воспроизвести, это может быть полезно. Кроме того, если вы владеете R, это может облегчить консультирование. – Iterator
«slow», я имею в виду, что можно рекомендовать различные тесты, шаги, чтобы попробовать, что нужно исследовать и т. Д., Но весь процесс может занять некоторое время. Если вы видели эпизод «Дом» «Замороженный» - идея похожа. В противном случае проблема может быть «слишком локальной». – Iterator
наиболее вероятно -) заключается в том, что вы включили свои тестовые данные в учебный комплект. Я знаю, что вы проверили, но проверьте еще кое-что. – bmargulies