SVM支持向量机人脸特征识别 matlab代码
时间: 2023-08-12 17:06:53 浏览: 90
以下是使用SVM进行人脸特征识别的Matlab代码示例:
```matlab
% 加载人脸数据
load faceData.mat
% 将数据集分为训练集和测试集
trainingSet = [faceData(1:20,:); faceData(31:50,:)];
testingSet = [faceData(21:30,:); faceData(51:60,:)];
% 创建SVM分类器
svm = fitcsvm(trainingSet(:,1:end-1),trainingSet(:,end));
% 预测测试集
predictedLabels = predict(svm,testingSet(:,1:end-1));
% 计算准确率
accuracy = sum(predictedLabels==testingSet(:,end))/length(testingSet)
% 显示分类结果
figure
hold on
plot(testingSet(predictedLabels==1,1),testingSet(predictedLabels==1,2),'ro')
plot(testingSet(predictedLabels==2,1),testingSet(predictedLabels==2,2),'bx')
legend('Person A','Person B')
xlabel('Feature 1')
ylabel('Feature 2')
title('SVM Face Recognition')
```
其中,`faceData.mat` 文件包含了人脸数据,每行是一个样本,最后一列是标签(1表示 Person A,2表示 Person B),前面的列是特征。首先将数据集分为训练集和测试集,然后使用 `fitcsvm` 函数创建SVM分类器,再用 `predict` 函数对测试集进行预测,最后计算准确率并画出分类结果。
阅读全文