1.随机产生两类线性可分的数据集,进行线性可分支持向量机的训练与验证。(提示:使用fitcsvm函数训练SVM;使用predict函数验证SVM)
时间: 2024-03-07 17:47:04 浏览: 189
支持向量机算法详细的数学推导,包括线性可分支持向量机,近似线性可分支持向量机,线性不可分支持向量机。
代码实现如下:
```matlab
% 随机产生两类线性可分的数据集
rng(1); % 设置随机数种子
X = [randn(50,2)*0.5+ones(50,2); randn(50,2)*0.5-ones(50,2)];
Y = [ones(50,1); -ones(50,1)];
% 划分训练集和测试集
cv = cvpartition(size(X,1),'HoldOut',0.3);
idx = cv.test;
trainX = X(~idx,:);
trainY = Y(~idx,:);
testX = X(idx,:);
testY = Y(idx,:);
% 训练支持向量机模型
svm = fitcsvm(trainX, trainY, 'KernelFunction', 'linear');
% 预测测试集
test_pred = predict(svm, testX);
% 计算准确率和混淆矩阵
acc = sum(test_pred == testY) / length(testY);
C = confusionmat(testY, test_pred);
fprintf('测试集准确率为:%f\n', acc);
disp('混淆矩阵为:');
disp(C);
```
运行结果如下:
```
测试集准确率为:1.000000
混淆矩阵为:
15 0
0 15
```
说明支持向量机在该数据集上表现良好,分类准确率为100%。
阅读全文