我在网上找到了一个 SVM 示例。我不明白为什么只计算前两列特征。数据集是著名的“spiral_Nc10_train.mat”和“spiral_Nc10_train.mat”。“spiral_Nc10_train.mat”包含 1) 数据 = 1000*3 双倍;2) 标签 = 1000*1 双倍。“spiral_Nc10_test.mat”包含 1) 数据 = 500*3 双倍;2) 标签 = 500*1 双倍。原始代码的一部分如下所示:
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 列功能?太感谢了!