matlab中snapnow命令,SVM学习笔记(一)

本文介绍了在MATLAB中使用SVM进行交易模型构建,特别是SVM参数c和核函数g的理解,包括它们对模型的影响。讨论了SVM的寻优方法,如grid search、GA和PSO,并分享了在实际操作中遇到的寻优结果疑问。此外,还展示了SVM在商品期货择时交易策略中的应用,包括数据预处理、模型训练、误差分析和交易信号对比。

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

1.SVM用于交易模型的具体算法及模型构建

可见公众号“量化投资与机器学习”发布的文章“量化投资之机器学习应用——基于 SVM

模型的商品期货择时交易策略(提出质疑和讨论)”,文章中对每一步算法都给出了详细的解释,并在后半部分提出了相关问题思考,适合初学者理解和学习。

2.关于SVMcgForClass/SVMcgForRegress中的核函数g和惩罚函数c的理解

在将数据进行归一化处理后,需要进行SVM算法的寻优,寻找最优核函数g和惩罚函数c。在这里会涉及到寻优方法选择的问题,在下面第三点中有详细讨论。c越高,说明越不能容忍出现误差,容易过拟合。c越小,容易欠拟合。c过大或过小,泛化能力都会变差。

“C理解为调节优化方向中两个指标(间隔大小,分类准确度)偏好的权重。soft-margin

SVM针对hard-margin

SVM容易出现的过度拟合问题,适当放宽了margin的大小,容忍一些分类错误(violation),把这些样本当做噪声处理,本质上是间隔大小和噪声容忍度的一种trade-off,至于具体怎么trade-off,对哪个指标要求更高,那就体现在C这个参数上了。

1.当C趋于无穷大时,这个问题也就是不允许出现分类误差的样本存在,那这就是一个hard-margin

SVM问题(过拟合)

2.当C趋于0时,我们不再关注分类是否正确,只要求间隔越大越好,那么我们将无法得到有意义的解且算法不会收敛。(欠拟合)”

g是选择RBF函数作为kernel后,该函数自带的一个参数。隐含地决定了数据映射到新的特征空间后的分布,g越大,支持向量越少,g值越小,支持向量越多。支持向量的个数影响训练与预测的速度。

很多RBF的幅宽会影响每个支持向量对应的高斯的作用范围,从而影响泛化性能。若g太大则高斯分布将又高又瘦,则只会作用于向量样本附近,导致对于未知样本分类效果很差,存在训练准确率可以很高而测试准确率不高的可能(如果无穷小,则理论上,高斯核的SVM可以拟合任何非线性数据,但容易过拟合),就是通常说的过训练;而如果设的过小,则会造成平滑效应太大,无法在训练集上得到特别高的准确率,也会影响测试集的准确率。

3. SVM三种寻优方法的选择

参数寻优常用的方法有:grid

search、GA和PSO。一般情况下,三种方法中网格划分(grid search)的寻优结果准确率最高。李洋先生的

LIBSVM-farutoUltimateVersion3.0 版本中已经给出了全部三种寻优方式的函数,可直接调用。

##关于寻优结果我存在一些疑问:在自己进行模型复现时,绘出的寻优结果图像与参考文献中给出的寻优结果图像呈像差距较大,希望能够对于图像的显示结果能有更深入的探讨。

4.关于SVM算法的MATLAB实现:

原作者给出的部分命令由于函数包的缺失无法执行,因此在参数寻优和算法上还是调用的李洋先生的LIBSVM-farutoUltimateVersion工具箱及台湾大学林智仁先生的libsvm工具箱。

%% %%%%%%%%输入数据%%%%%%%%

data = load('temp.txt')

high = data(:,3); % 最高价

low = data(:,4); % 最低价

close &#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值