How to train SVM on features matrix?

조회 수: 2 (최근 30일)
Phoenix98
Phoenix98 2019년 1월 10일
답변: Akshat 2025년 1월 29일
Hi,
I tried to train SVM on cell array which each element is 20x120 double, How to train SVM fitcecoc on cell which each cell element contains 20x120 array features?

답변 (1개)

Akshat
Akshat 2025년 1월 29일
As per the documentation of "fitcecoc" given here https://www.mathworks.com/help/stats/fitcecoc.html#bue3oc9-2, you can see the input table takes in a 2D data, which is basically, numObservations x numFeatures. This means each observation (or sample) is a row, and each feature is a column. If your data is inherently multi-dimensional (like images or matrices), you need to flatten these into a single row to fit this format.
I am assuming your data is a matrix, and hence it will need to be flattened out.
Following that, it is a simple implementation of an "fitcecoc" classifier. Here is some boilerplate code:
% Assume 'data' is your cell array where each cell is a 20x120 matrix
% Assume 'labels' is a vector containing the label for each matrix
numObservations = numel(data);
reshapedData = zeros(numObservations, 20 * 120);
for i = 1:numObservations
reshapedData(i, :) = reshape(data{i}, 1, []);
end
% Train the SVM using fitcecoc
% 'labels' should be a column vector with the same number of rows as reshapedData
svmModel = fitcecoc(reshapedData, labels);
Hope this helps!

카테고리

Help CenterFile Exchange에서 Classification Ensembles에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by