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')