libsvm移植至stm32进行训练与分类

目标在stm32上实现svm实时训练与分类,特征向量为10维向量,分类结果为多目标分类;
1.代码分解与抽取
libsvm源代码文件有5个:svm-train.c,svm-predict.c,svm-scale.c,svm.h,svm.cpp;svm-train.c是训练样本工具的代码,svm-predict.c是预测工具的代码,svm-scale.c是归一化数据工具的代码,svm.h是头文件,svm.cpp是类的实现代码,代码文件svm-train.c、svm-predict.c、svm-scale.c分别与svm.h和svm.cpp编译就可以得到训练工具、预测工具、归一化工具软件。
下面以svm-train.c开始分析代码:
代码执行了如下操作:
(1)解析命令行,配置训练参数,获取输入样本文件名、输出模型文件名;
(2)读取输入文件至训练样本类中
(3)检测训练参数是否正确
(4)是否进行交叉验证,否的话调用svm_train函数对样本进行训练;保存训练结果至文件中;
下面开始分析svm.h中相关数据类型:
(1).svm类型:C_SVC, NU_SVC, ONE_CLASS, EPSILON_SVR, NU_SVR
-s svm类型:SVM设置类型(默认0)
0 – C-SVC:C-支持向量分类机;参数C为惩罚系数,C越大表示对错误分类的惩罚越大,适当的参数C对分类Accuracy很关键。
1 –v-SVC:v-支持向量分类机;由于C的选取比较困难,用另一个参数v代替C。C是“无意义”的,v是有意义的。(与C_SVC其实采用的模型相同,但是它们的参数C的范围不同,

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值