Я пытаюсь использовать SVM для выполнения двоичной классификации из очень высокого массива данных, который является матрицей 3249X40
. У меня есть пять подобных наборов данных. Хотя я правильно получаю результаты из дерева решений (низкий, но разные), я получаю точно такой же результат от SVM каждый раз, какой бы набор данных я использовать не использовал. Я использую svm следующим образом:Необычный результат классификации SVM в Matlab
svmModel = svmtrain(train_mat(trainIdx,:), groups(trainIdx), ...
'Autoscale',true, 'Showplot',false, 'Method','QP', ...
'BoxConstraint',2e-1, 'Kernel_Function','rbf', 'RBF_Sigma',1);
pred = svmclassify(svmModel, train_mat(testIdx,:), 'Showplot',false);
Что в этом плохого? Я использую Decision дерево, как это:
tree=ClassificationTree.fit(train_mat(trainIdx,:),groups(trainIdx,:));
pred=tree.predict(train_mat(testIdx,:));
Я получаю разные результаты (которые появляются правильно, а) из этих 5 наборов данных в дереве решений. Что не так? Это потому, что SVM не может обрабатывать такие наборы данных, которые имеют очень мало наблюдений по сравнению с количеством переменных?
Cross проверки является получение комбинации поездов и тестовых данных правильно? Это я уже делаю здесь. – MaxSteel
Нет, чтобы найти в среднем, какое ограничение коробки и гамма работают лучше всего. – carlosdc
Можете ли вы объяснить выше немного больше. Извините, что задал тривиальный вопрос. – MaxSteel