简介:在MATLAB中使用支持向量机(SVM)进行二分类和多分类的示例代码。
在使用支持向量机(SVM)进行分类时,MATLAB提供了非常方便的接口。以下是一些示例代码,演示如何在MATLAB中使用SVM进行二分类和多分类。
二分类示例
% 加载数据集load fisheririsx = meas(:,1:2); % 只使用前两个特征y = species; % 类别标签% 将数据集分为训练集和测试集cv = cvpartition(y, 'HoldOut', 0.5);idx = cv.test;xTrain = x(~idx,:);yTrain = y(~idx,:);xTest = x(idx,:);yTest = y(idx,:);% 训练SVM分类器SVMModel = fitcensemble(xTrain, yTrain, 'Method', 'Bag');% 在测试集上评估分类器yPred = predict(SVMModel, xTest);confusionmat(yTest, yPred)
多分类示例
对于多分类问题,可以使用fitcecoc函数来训练一个多类SVM分类器。以下是一个示例代码:
% 加载数据集load fisheririsx = meas; % 使用所有特征y = species; % 类别标签% 将数据集分为训练集和测试集cv = cvpartition(y, 'HoldOut', 0.5);idx = cv.test;xTrain = x(~idx,:);yTrain = y(~idx,:);xTest = x(idx,:);yTest = y(idx,:);% 训练SVM分类器SVMModel = fitcecoc(xTrain, yTrain);% 在测试集上评估分类器yPred = predict(SVMModel, xTest);confusionmat(yTest, yPred)
这些示例代码演示了如何在MATLAB中使用支持向量机(SVM)进行二分类和多分类。首先,需要加载数据集并对其进行预处理。然后,使用fitcensemble函数(二分类)或fitcecoc函数(多分类)来训练SVM分类器。最后,可以使用predict函数在测试集上评估分类器的性能。confusionmat函数用于显示混淆矩阵,以评估分类器的性能。请注意,这些示例代码仅用于演示目的,实际应用中可能需要进行更多的数据预处理和参数调整。