完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
目标在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的范围不同,C_SVC采用的是0到正无穷,该类型是[0,1]。) 2 – 一类SVM:单类别-支持向量机,不需要类标号,用于支持向量的密度估计和聚类。 3 – e -SVR:ε-支持向量回归机,不敏感损失函数,对样本点来说,存在着一个不为目标函数提供任何损失值的区域。 4 – v-SVR:n-支持向量回归机,由于EPSILON_SVR需要事先确定参数,然而在某些情况下选择合适的参数却不是一件容易的事情。而NU_SVR能够自动计算参数。 (2)核函数类型:LINEAR, POLY, RBF, SIGMOID, PRECOMPUTED SVM关键是选取核函数的类型,主要有线性内核,多项式内核,径向基内核(RBF),sigmoid核。 这些函数中应用最广的应该就是RBF核了,无论是小样本还是大样本,高维还是低维等情况,RBF核函数均适用,它相比其他的函数有一下优点: 1)RBF核函数可以将一个样本映射到一个更高维的空间,而且线性核函数是RBF的一个特例,也就是说如果考虑使用RBF,那么就没有必要考虑线性核函数了。 2)与多项式核函数相比,RBF需要确定的参数要少,核函数参数的多少直接影响函数的复杂程度。另外,当多项式的阶数比较高时,核矩阵的元素值将趋于无穷大或无穷小,而RBF则在上,会减少数值的计算困难。 3)对于某些参数,RBF和sigmoid具有相似的性能。 (3)svm参数 c参数等 (4)svm模式 包含svm参数 class 个数 svm节点二维矩阵 在决策函数的sv系数 probA probB 标签数组 model中参数 Parameters :5*1的向量 , [-s -t -d -g -r]的值。我一般使用的是线性核或是自定义核,故 -s 0 -t 0 或是 -s 0 -t 4。 nr_class:类别标签的数目。 totalSV: 支持向量的数目。 rho :分类器的截距的负值。 Label:类别的标号。注意Label中类别标号的顺序非常重要。 nSV:每一类所含有的支持向量的个数。 sv_coef:每一个支持向量的权重,与SVs相对应。 SVs :支持向量。 在两类分类的过程中非常简单,无论是线性分类还是采用核方法分类,分类器对类别的判断依据: score = sv_coef* |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1883 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1661 浏览 1 评论
1148 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
762 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1720 浏览 2 评论
1964浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
790浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
614浏览 3评论
631浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
593浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-13 11:06 , Processed in 0.741066 second(s), Total 76, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (威廉希尔官方网站 图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号