SVM分类matlab代码
时间: 2023-10-10 21:10:41 浏览: 46
以下是一个SVM分类的Matlab代码示例:
% 假设我们有以下数据集:
X = [1 2; 2 3; 3 3; 2 1; 3 2; 4 3; 3 4; 4 1];
Y = [-1 -1 -1 -1 1 1 1 1]';
% 使用SVM分类器
svm = fitcsvm(X,Y);
% 绘制分类器的决策边界
figure
gscatter(X(:,1),X(:,2),Y)
hold on
h = ezplot(@(x1,x2)predict(svm,[x1,x2]));
h.Color = 'r';
h.LineWidth = 2;
legend('Negative Class','Positive Class','Decision Boundary')
% 在新数据上测试分类器
Xtest = [1.5 2.5; 2 2; 3.5 3; 4.5 4];
Ytest = [-1 -1 1 1]';
[Ypred, score] = predict(svm, Xtest);
% 显示测试结果
disp('True Label Predicted Label Score for Positive Class')
disp([Ytest Ypred score(:,2)])
相关问题
SVM分类Matlab代码
以下是SVM分类的Matlab代码示例:
```
% 加载数据集
load fisheriris;
% 将数据集分成训练集和测试集
cv = cvpartition(species,'Holdout',0.3);
Xtrain = meas(cv.training,:);
Ytrain = species(cv.training,:);
Xtest = meas(cv.test,:);
Ytest = species(cv.test,:);
% 训练 SVM 模型
SVMModel = fitcsvm(Xtrain,Ytrain);
% 预测测试集
Ypredict = predict(SVMModel,Xtest);
% 计算分类准确率
accuracy = sum(Ypredict == Ytest)/numel(Ytest);
```
在这个示例中,我们使用了鸢尾花数据集来训练和测试 SVM 模型。首先,将数据集分成训练集和测试集。然后,使用 `fitcsvm` 函数训练 SVM 模型。最后,使用 `predict` 函数对测试集进行预测,并计算分类准确率。
svm分类算法matlab代码
SVM分类算法的MATLAB代码如下所示:
```matlab
function [out,f] = svmdecision(Xnew,svm_struct)
sv = svm_struct.SupportVectors;
alphaHat = svm_struct.Alpha;
bias = svm_struct.Bias;
kfun = svm_struct.KernelFunction;
kfunargs = svm_struct.KernelFunctionArgs;
f = (feval(kfun,sv,Xnew,kfunargs{:})'*alphaHat(:)) + bias;
out = sign(f);
out(out==0) = 1;
end
```
这是一个能够评估SVM决策函数的代码。它使用给定的支持向量、α、偏置、核函数和核函数参数计算出距离,并将距离转化成标签。在二维空间中,超平面的投影也可以通过设置`plotflag`参数实现。