libsvm如何调用svm.cpp进行训练和预测的具体过程

本文详细解析了libsvm中,如何从MATLAB调用svmtrain.c和svmpredict.c入口,使用svm.cpp进行训练和预测。主要关注C_SVC的情况和b=1时的过程。涉及关键步骤包括样本分类、两两类别的计算、决策函数求解、模型构建等。并详细解释了sigmoid_train、svm_predict_values等函数的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里写下关于libsvm中,从MATLAB文件夹中的svmtrain.c和svmpredict.c入口,如何调用svm.cpp的过程进行详细的解析。当遇到比较重要的新的函数时,会在后面列出这个函数的作用和详细执行的过程,以便自己能看懂。

注:这里主要侧重调用C_SVC的情况,以及当置b=1时的情况分析。


-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

首先列在前面的是,头文件中需要了解并在后面函数中会用到的两个结构。

struct svm_problem

{

int l;   样本个数

double *y;   类别

struct svm_node **x;   一条样本的特征

};

 

struct svm_node  一个特征节点

{

int index;   特征序号

double value;  特征值

};


---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Svm整个过程:

一、训练过程(直接进入svm.cpp进行分析)

进入函数,进行执行,最后会输出一个model

svm_model *svm_train(const svm_problem *prob, const svm_parameter *param)

1.先对同label的进行归纳

svm_group_classes(prob,&nr_class,&label,&start,&count,perm);

2.对两两各个类进行计算:

1)选出两类的数据,由于pro=1,故执行

svm_binary_svc_probability(&sub_prob,param,weighted_C[i],weighted_C[j],probA[p],probB[p]);

这里填充probA,probB的值

2)decision_function svm_train_one(const svm_problem *prob, const svm_parameter *param,double Cp, double Cn) decision_function

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值