#matlab中文论坛-SVM01.md

SVM Matlab 工具箱分类实例应用及理论介绍

1. libsvm

a. 安装操作
b. 主要操作
svmtrain
model= svmtrain(train_label, train_matrix, ['libsvm_options']); 
  • train_label表示训练集的标签。
  • train_matrix表示训练集的属性矩阵。
  • libsvm_options是需要设置的一系列参数,各个参数可参见《libsvm 参数说明.txt》,里面介绍的很详细,中英文都有的。如果用回归的话,其中的-s参数值应为3。
  • model:是训练得到的模型,是一个结构体(如果参数中用到-v,得到的就不是结构体,对于分类问题,得到的是交叉检验下的平均分类准确率;对于回归问题,得到的是均方误差)。

svmpredict
[predicted_label, accuracy/mse, decision_values]=svmpredict(test_label, test_matrix, model, ['libsvm_options']);
  • test _label表示测试集的标签(这个值可以不知道,因为作预测的时候,本来就是想知道这个值的,这个时候,随便制定一个值就可以了,只是这个时候得到的mse就没有意义了)。
  • test _matrix表示测试集的属性矩阵。
  • model是上面训练得到的模型。
    • libsvm_options是需要设置的一系列参数。
    • predicted_label表示预测得到的标签。
  • accuracy/mse是一个3*1的列向量,其中第1个数字用于分类问题,表示分类准确率;后两个数字用于回归问题,第2个数字表示mse;第三个数字表示平方相关系数(也就是说,如果分类的话,看第一个数字就可以了;回归的话,看后两个数字)。
  • decision_values表示决策值(一般好像不怎么用)。

测试
>> load heart_scale.mat
>> model = svmtrain(heart_scale_label, heart_scale_inst, '-c 1 -g 0.07');
>> [predict_label, accuracy, dec_values] = svmpredict(heart_scale_label, heart_scale_inst, model);

分类流程

  1. 选定训练集和测试机>>规范化>>特征选择
  2. 利用训练集训练分类器得到 model
  3. 利用model 对测试集进行预测
  4. 分类器性能评测

normalization
规范化 [0 1] [-1,1]

function normal = normalization(x,kind)
% by Li Yang BNU MATH Email:farutoliyang@gmail.com QQ:516667408
% last modified 2009.2.24
%

if nargin < 2
    kind = 2;%kind = 1 or 2 表示第一类或第二类规范化
end

[m,n]  = size(x);
normal = zeros(m,n);
%% normalize the data x to [0,1]
if kind == 1  
    for i = 1:m
        ma = max( x(i,:) );
        mi = min( x(i,:) );
        normal(i,:) = ( x(i,:)-mi )./( ma-mi );
    end
end
%% normalize the data x to [-1,1]
if kind == 2
    for i = 1:m
        mea = mean( x(i,:) );
        va = var( x(i,:) );
        normal(i,:) = ( x(i,:)-mea )/va;
    end
end
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值