libsvm 的使用

1. libsvm 支持的SVM模型

官网地址:LIBSVM – A Library for Support Vector Machines

libsvm 支持的 SVM 模型如下(C:classification,R:regression):

  • C-SVC(C-support vector classification),
  • nu-SVC(nu-support vector classification),
  • one-class SVM(distribution estimation),
  • epsilon-SVR(epsilon-support vector regression),
  • nu-SVR(nu-support vector regression)

2. 一个简单demo

%% 加载数据到内存;
load heart_scale.mat

X = heart_scale_inst;
y = heart_scale_label;

N = size(X, 1);

%% 将数据集划分为训练集和测试集
idx = randperm(N);          % 对全部样本的一次全排列;
prop = floor( .75*N);

train_X = X(1:prop, :) ;
test_X = X(prop+1:end, :);
train_y = y(1:prop, :);
test_y = y(prop+1:end, :);

%% 通过训练集进行训练
model = svmtrain(train_y, train_X, '-s 0 -t 2 -c 1.2 -g 2.8')
% 将训练好的模型作用在训练集,查看准确率情况
[predicted_labels, accuracy, decision_values] = svmpredict(train_y, train_X, model);

%% 在真实的测试集上进行测试
predicted_labels = svmpredict(test_y, test_X, model);
accuracy = sum(predicted_labels == test_y) / length(test_y)
  • svmtrain 参数的意义:
    • -s svm类型:SVM设置类型(默认0)
      % 0 – C-SVC
      % 1 –v-SVC
      %2 – 一类SVM
      %3 – e -SVR
      % 4 – v-SVR
    • -t 核函数类型:核函数设置类型(默认2)
      % 0 – 线性:u’v
      % 1 – 多项式:(r*u’v + coef0)^degree
      % 2 – RBF函数:exp(-r|u-v|^2)
      % 3 –sigmoid:tanh(r*u’v + coef0)
    • -c cost:设置C-SVC,e -SVR和v-SVR的参数(损失函数)(默认1)
    • -g r(gama):核函数中的gamma函数设置(针对多项式/rbf/sigmoid核函数)

常见问题的解决

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五道口纳什

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值