高斯过程分类器matlab代码
时间: 2023-11-25 21:09:07 浏览: 15
下面是一个简单的高斯过程分类器的Matlab代码示例,使用了内置函数fitcsvm和fitrgp来训练和测试模型:
```
% 准备数据
load fisheriris
X = meas(:,3:4);
Y = species;
% 训练 SVM 模型
SVMModel = fitcsvm(X,Y,'KernelFunction','rbf','Standardize',true,'ClassNames',{'setosa','versicolor','virginica'});
% 训练高斯过程模型
GPModel = fitrgp(X,Y,'BasisFunction','none','KernelFunction','squaredexponential','Standardize',true);
% 绘制决策边界和数据点
h1 = plot(SVMModel);
hold on
h2 = plot(GPModel);
h3 = gscatter(X(:,1),X(:,2),Y);
uistack(h1,'bottom');
uistack(h2,'bottom');
title('分类器决策边界及数据点');
% 预测新数据并计算准确率
Xnew = [5 1.45; 6 2.1; 7 3.5];
[newlabelSVM, scoreSVM] = predict(SVMModel,Xnew);
[newlabelGP, scoreGP] = predict(GPModel,Xnew);
accSVM = sum(strcmp(newlabelSVM,{'versicolor','setosa','virginica'}))/3;
accGP = sum(strcmp(newlabelGP,{'versicolor','setosa','virginica'}))/3;
disp(['SVM模型预测准确率:' num2str(accSVM)]);
disp(['高斯过程模型预测准确率:' num2str(accGP)]);
```
这里使用了鸢尾花数据集中的两个特征来训练和测试模型,并且使用了径向基函数(rbf)和平方指数核(squaredexponential)作为SVM和高斯过程模型的核函数。最后,预测新数据并计算准确率。