支持向量机(SVM)初见
SVM 学习
概念
- SVM分为:
- SVC(分类任务)
- SVR(回归任务),股票分析主要用SVR
- 超平面:k-1维的最佳分类标准
- 支持向量:离超平面最近的点
- 支持向量机:找到支持向量,构建超平面
- 核函数:将低维空间映射到高维空间,使得数据线性可分
分析
以 get_train_model
函数为例:
1 | def get_train_model(dataset): |
步骤:
1. 数据读取和预处理
- 设置阶数(因为用的核函数是多项式核)
- 筛选因子
- 数据集划分,分为训练集和测试集
2. 模型构建(使用 Pipeline )
- 标准化:统一数据尺度,提升模型性能,避免某些特征因数值范围过大而对模型产生不成比例的影响
- 多项式特征转换:数据升维
- SVM回归器(SVR)
3. 参数优化
- 参数网格搜索:排列组合每种参数组合
- C值:惩罚项,越大,对错误分类的惩罚越重,模型会尽量正确分类所有训练样本,可能导致过拟合
- 多项式阶数:阶数越高,模型越复杂,越容易过拟合
- 核函数:将数据映射到更高维空间,使线性不可分的问题变得线性可分
- 交叉验证:评估每组参数性能,可防止过拟合,(做法:将训练集分成k份···)
4. 训练模型
使用最佳参数训练,返回训练最佳模型
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Fish's Blog!