Я использую классификатор один против остальных , чтобы различать нейронные данные, соответствующие (1) перемещению компьютерного курсора вверх и (2) перемещению его в любом из семи других кардинальных направлений или нет движения. Я использую классификатор SVM с ядром RBF (созданным LIBSVM), и я выполнил поиск по сетке, чтобы найти наилучшие возможные параметры гаммы и стоимости для моего классификатора. Я попытался использовать данные тренировок с 338 элементами из каждого из двух классов (занижая выборку моего большого класса «отдыха») и использовал 338 элементов из моего первого класса и 7218 из моего второго с взвешенным SVM.
Я также использовал выбор функций, чтобы снизить количество используемых функций со 130 до 10. Я пытался использовать десять «лучших» функций и десять «худших» функций при обучении моего классификатора. Я также использовал весь набор функций.
К сожалению, мои результаты не очень хороши, и, кроме того, я не могу найти объяснение, почему. Я проверил с 37759 точками данных, из которых 1687 были из класса «один» (то есть «вверх»), а остальные 36072 из класса «остальные». Во всех случаях мой классификатор является точным на 95%, НО все значения, которые правильно спрогнозированы, попадают в класс «отдыха» (т.е. все мои точки данных прогнозируются как «остальные», а все значения, которые неверно предсказаны, попадают в «один»). "/" вверх "класс). Когда я попытался провести тестирование с 338 точками данных из каждого класса (те же, которые я использовал для обучения), я обнаружил, что число опорных векторов было 666, что на десять меньше, чем количество точек данных. В этом случае процент точности составляет всего 71%, что является необычным, поскольку мои данные о тренировках и тестировании совпадают.
Ты хоть представляешь, что может пойти не так? Если у вас есть предложения, пожалуйста, дайте мне знать.
Спасибо!