我在网上找到了一个SVM示例。我不明白为什么只计算前两列功能。数据集很有名" spiral_Nc10_train.mat"和" spiral_Nc10_train.mat"。 " spiral_Nc10_train.mat"包含1)数据= 1000 * 3双; 2)label = 1000 * 1 double。 " spiral_Nc10_test.mat"包含1)数据= 500 * 3双; 2)label = 500 * 1 double。原始代码的一部分如下所示:
load(fullfile(dirData,'spiral_Nc10_train'));
rawTrainData = data(:,1:2); (line 2)
rawTrainLabel = label;
NTrain = size(rawTrainData,1);
[sortedTrainLabel, permIndex] = sortrows(rawTrainLabel);
sortedTrainData = rawTrainData(permIndex,:);
load(fullfile(dirData,'spiral_Nc10_test'));
rawTestData = data(:,1:2); (line 8)
rawTestLabel = label;
NTest = size(rawTestData,1);
[sortedTestLabel, permIndex] = sortrows(rawTestLabel);
sortedTestData = rawTestData(permIndex,:);
我尝试将第2行和第8行更改为以下内容:
rawTrainData = data(:,1:3);
rawTestData = data(:,1:3);
但结果是错误的,最终预测标签也是错误的。谁能告诉我为什么SVM只能应用于2列功能?非常感谢你!