MATLAB下使用libsvm (三)

本文介绍了一个基于PCA降维和SVM模型的数据处理流程,包括数据预处理、降维、模型训练及参数调整等关键步骤,并强调了在各阶段中需要注意的细节。

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

编写程序的基本步骤~

1、将数据中心化,是每一组特征中心化,而不是每个样本的数据中心化哦。原因就是之后要进行PCA降维,这个过程之前如果不将数据中心化,那么之后测试数据集映射出来的点就不对啦~具体看图啦~

至于是否要归一化,这个并不是必要的步骤,所以看心情咯


2、PCA降维,这个最好是以矩阵短的那一边进行SVD分解,这样可以提速啦,转换的公式可以推导一下哈

X:2891×377的矩阵


根据推导可得:

YXZ都是C的特征向量

虽然 Y2891×2891

     XZ2891×377

但是,由于X的秩最多377,所以的秩最多377,所以后边都是0,即使乘起来也木有用

我们之后想要取前边多少维的数据,就直接取XZ的就好啦,和Y的效果一样哒

此处需要注意的是:YZ都是单位矩阵,但是XZ并不是,因此在使用XZ之前需要对XZ进行归一化


3、数据经过PCA降维之后还需要对数据进行归一化,标签不必归一化


4、训练模型~~~

主要就是调节参数啦,当然,即使你不设置参数,svmtrain也会有默认参数啦~可以运行,但是效果嘛,就不敢保证咯

上网看了好多教程,但是都没有深入讲解如何高效地调节SVM的参数~~后来才知道,原来只有C和g是可以用程序自动选择的(网上搜一下,有很多类似程序哒),其他的。。。可能都要凭经验或者试出来的~


5、测试模型

还记得之前数据中心化那一步吧,要用那个均值哦,测试的数据要减去均值,然后再进行降维操作哒,具体原因看前边的解释啦~

数据都放在一个维度上了之后,就可以用svmpredict预测啦~


这个过程就算正式全部搞定啦~然后你看准确率不大好的话,可以再调整前边的一些参数啦~加油!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值