2015-09-24 5 views
-1

Я пытаюсь использовать набор инструментов классификации MATLAB R2015a для моих 4 классов. Я импортировал свой набор данных и выбрал гауссовское ядро ​​для обучения моего классификатора. Это мой набор данных:SVM multiclassification с MATLAB R2015a

my Data=[9.36 0;8.72 0;9.13 0;7.38 0;8.02 0;12.15 1;11.02 1;11.61 1; 
12.31 1;15.23 1;52.92 2;54.49 2;48.82 2;52.00 2;49.79 2;22.46 3;30.38 3; 
21.98 3;24.46 3;26.08 3]; 

Затем я экспортировать его в мое рабочее пространство, чтобы использовать его с моими новыми тестовыми данными, но когда я хочу, чтобы использовать его в рабочем пространстве эта ошибка apears:

Переменные имеют были созданы в базовом рабочем пространстве.

Чтобы использовать экспортированный классификатор trainedClassifier делать прогнозы по новым данным, T, используйте

yfit = predict(trainedClassifier, T{:,trainedClassifier.PredictorNames})

Если новые данные содержит любые целочисленные переменные, то предобработки данных, удваивается, как это:

X = table2array(varfun(@double, T(:,trainedClassifier.PredictorNames)));

yfit = predict(trainedClassifier, X)

Я не понимаю, что это значит и что такое T и yfit? Как я могу проверить свои новые данные с помощью этого классификатора?

+0

Не могли бы вы добавить свой код относительно того, как вы тренируете СВМ? – Adriaan

+0

i didn, t right any code.matlab 2015a имеет какое-то приложение для классификации. Вы можете выбрать свой тип классификации, чтобы я выбрал gausian kernel svm.then, вы должны импортировать свои данные, которые вы прямо в рабочем пространстве раньше. Тогда у него есть поезд кнопка для обучения и создания классификатора. Когда вы создадите этот классификатор, вы можете легко экспортировать его на рабочее место и использовать его для новых данных. Это приложение и доцент имеют любую запись кода. –

+0

Я знаю, что вы должны использовать 'templateSVM',' fitcecoc' и 'pred'. Если вы действительно показываете код, который создает встроенный графический интерфейс, мы можем видеть, что вы в него входите, и попытаться выяснить, что не так. – Adriaan

ответ

0

yfit = вектор предсказанных класса меток для предиктора данных в таблицы T.

T = Пример данных, указанных в таблице. Каждая строка T соответствует одному наблюдению, и каждый столбец соответствует одной предикторной переменной. При желании T может содержать дополнительные столбцы для переменной ответа и весов наблюдения. T должен содержать все предиктора, используемые для обучения SVMModel. Не допускаются многоколоночные переменные и массивы ячеек, кроме массивов ячеек строк.

Тестовые данные: пример

load newdataset 
rng(1); 
CVSVMModel = fitcsvm(X,Y,'Holdout',0.15,'ClassNames',{'classname1','classname2'},... 
'Standardize',true); 
CompactSVMModel = CVSVMModel.Trained{1}; % Extract trained, compact classifier 
testInds = test(CVSVMModel.Partition); % Extract the test indices 
XTest = X(testInds,:); 
predict(CompactSVMModel,XTest);% test here 
+0

: что здесь X? расскажите мне кратко, как я могу проверить свои новые данные с помощью этого классификатора? Например, мои тестовые данные: data1 = [9 1; 9,36 2; 8,74 1; 2,56 3; 0,11 0] 0,1,2,3 - 4 класса –

1

Дело в том, что вы пытаетесь предсказать классы данных, хранящихся в ячейке. Сначала импортируйте его как таблицу. Home_> import_> file name_> import _> (здесь выберите «Таблица» из импортированной части данных). Теперь вы можете использовать свой предиктор, указав это имя таблицы.

Смежные вопросы