SVM实现图像分类

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/JennyBi/article/details/80221831
SVM的原理不多赘述

在MATLAB中配置libsvm,网上有很多教程,注:64位的系统不需要编译,配置好MATLAB的路径就可以使用啦

介绍libsvm实现分类的两个常用函数

svmtrain

——train svm 实现分类

——model=svm(train_label,train_matrix);

svmpredict

——用svm对测试集进行预测

——[predict_label]=svmpredict(test_label,testmatrix,model,'-q');%model指svmtrain训练好的模型,-q代表输出预测结果,-b不输出预测结果。

测试一个简单的小程序实现分类算法

数据集data列向量(属性值)分别为身高和体重,数据集标签1代表男生,-1代表女生

用svm训练好的模型保存在model中

随便写个测试数据[190 85]对男女进行预测

data = [176 70;
180 80;
161 45;
163 47];
label = [1;1;-1;-1];
model = svmtrain(label,data);
testdata = [190 85];
testdatalabel = -1;

[predicted_label] = svmpredict(testdatalabel,testdata,model,'-q')


对libsvm自带的数据集进行测试 找到heart_scale.mat文件所在路径

在此路径下进行测试

load heart_scale.mat

train=heart_scale_inst;

train_label=heart_scale_label;

test=train;%让训练集和测试集相同

test_label=train_label;

model=svmtrain(train_label,train);

[predicted_label]=svmpredict(test_label,test,model,'-q')


猜你喜欢

转载自blog.csdn.net/JennyBi/article/details/80221831