Я не могу понять низкую точность, полученную при запуске SVM на речевых векторах. Я перекрестно подтвердил, что данные не ошибочны, и даже использовал наивный байесовский классификатор, чтобы получить хорошие результаты.
Прежде всего я должен отметить, что я подтвердил, что не использую одни и те же файлы для обучения и тестирования.
У меня есть набор данных для положительного и отрицательного класса, который я использую для обучения
pos = ones(size(PositiveTraining,1),1);
neg = ones(size(NegativeTraining,1),1)*-1;
Training = [ PositiveTraining ; NegativeTraining ];
TrainingLabels = [pos;neg];
model = svmtrain( TrainingLabels , Training, '-t 0' );
После получения модели я тестирую векторы, используя следующий код
testing_label_vector = ones(size(mfcc,1),1); % where mfcc is my testing matrix
[predicted_label, a, b ] = svmpredict(testing_label_vector, File.mfcc, model );
edges = [-1,1];
hist = histc( predicted_label , edges )
Однако я нахожу точность в диапазоне от 0% до 13% максимум.
Есть что-то, что я делаю неправильно?
Если данные верны, может ли кто-нибудь подсказать мне, как я могу повысить точность классификатора?