libsvm库函数解析

本文详细解析了libsvm库中的关键函数,包括svm_train、svm_predict、svm_cross_validation等,介绍了如何构建支持向量机模型、进行预测和交叉验证。此外,还讲解了参数设置、模型保存与加载以及概率估计等功能。
摘要由CSDN通过智能技术生成

在对测试数据进行分类之前,需要先使用训练数据建立一个支持向量模型。模型可以以文件的形式存储以备以后使用。一旦建立好了支持向量机模型,就可以用它来对新的数据进行分类了。

-函数:struct svm_model *svm_train(const struct svm_problem *prob, const struct svm_parameter *param);

这个函数根据给定的参数和训练数 据构建并返回一个支持向量机模型。

结构体svm_problem将问题形式化:

struct svm_problem

{

int l;

double *y;

struct svm_node **x;

};

其中“l”表示训练数据的实例数,而“y”是一个数组,用于存放它们的目标值。(类型值用整型数据,回归值用实数)“x”是一个数组指针,每一个指针指向一个稀疏的训练向量(即一个svm_node数组)。

例如,如果我们有如下的训练数 据:

LABEL ATTR1 ATTR2 ATTR3 ATTR4 ATTR5

—– —– —– —– —– —–

1 0 0.1 0.2 0 0

2 0 0.1 0.3 -1.2 0

1 0.4 0 0 0 0

2 0 0.1 0 1.4 0.5

3 -0.1 -0.2 0.1 1.1 0.1

于是svm_problem的构成如下:

l = 5

y -> 1 2 1 2 3

x -> [ ] -> (2,0.1) (3,0.2) (-1,?)

[ ] -> (2,0.1) (3,0.3) (4,-1.2) (-1,?)

[ ] -> (1,0.4) (-1,?)

[ ] -> (2,0.1) (4,1.4) (5,0.5) (-1,?)

[ ] -> (1,-0.1) (2,-0.2) (3,0.1) (4,1.1) (5,0.1) (-1,?)

其中(索引,值)存储在结构“svm_node”中:

struct svm_node

{

int index;

double value;

};<

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值