SVM学习总结

http://blog.csdn.net/csqazwsxedc/article/details/52230092

使用SVM需安装e1071

第一种简单方式建模:

svm(formula, data= NULL, subset, na.action = na.omit , scale= TRUE) 

formula:函数模型的形式

data:模型中包含的有变量的一组可选格式数据。

参数na.action用于指定当样本数据中存在无效的空数据时系统应该进行的处理。默认值na.omit表明程序会忽略那些数据缺失的样本。另外一个可选的赋值是na.fail,它指示系统在遇到空数据时给出一条错误信息。

参数scale为一个逻辑向量,指定特征数据是否需要标准化(默认标准化为均值0,方差1)。索引向量subset用于指定那些将被来训练模型的采样数据。

第二种根据所给的数据建模:

svm(x, y = NULL, scale = TRUE, type = NULL, kernel = "radial",degree = 3, gamma = if (is.vector(x)) 1 else 1 / ncol(x),coef0 = 0, cost = 1, nu = 0.5, subset, na.action = na.omit)

此处,x可以是一个数据矩阵,也可以是一个数据向量,同时也可以是一个稀疏矩阵。y是对于x数据的结果标签,它既可以是字符向量也可以为数值向量。xy共同指定了将要用来建模的训练数据以及模型的基本形式。
参数type用于指定建立模型的类别。支持向量机模型通常可以用作分类模型、回归模型或者异常检测模型。根据用途的差异,在svm()函数中的type可取的值有C-classificationnu-classificationone-classificationeps-regressionnu-regression这五种类型中。其中,前三种是针对于字符型结果变量的分类方式,其中第三种方式是逻辑判别,即判别结果输出所需判别的样本是否属于该类别;而后两种则是针对数值型结果变量的分类方式。
此外,kernel是指在模型建立过程中使用的核函数。针对线性不可分的问题,为了提高模型预测精度,通常会使用核函数对原始特征进行变换,提高原始特征维度,解决支持向量机模型线性不可分问题。svm()函数中的kernel参数有四个可选核函数,分别为线性核函数、多项式核函数、高斯核函数及神经网络核函数。其中,高斯核函数与多项式核函数被认为是性能最好、也最常用的核函数。
核函数有两种主要类型:局部性核函数和全局性核函数,高斯核函数是一个典型的局部性核函数,而多项式核函数则是一个典型的全局性核函数。局部性核函数仅仅在测试点附近小领域内对数据点有影响,其学习能力强、泛化性能较弱;而全局性核函数则相对来说泛化性能较强、学习能力较弱。
对于选定的核函数,degree参数是指核函数多项式内积函数中的参数,其默认值为3gamma参数给出了核函数中除线性内积函数以外的所有函数的参数,默认值为lcoef0参数是指核函数中多项式内积函数与sigmoid内积函数中的参数,默认值为0
另外,参数cost就是软间隔模型中的离群点权重。最后,参数nu是用于nu-regressionnu-classificationone-classification类型中的参数。
一个经验性的结论是,在利用svm()函数建立支持向量机模型时,使用标准化后的数据建立的模型效果更好。

 

 

SVM预测短期时间序列

对时间序列进行预测的方法有很多,

但如果只有几周的数据,而没有很多线性的趋势、各种实际的背景该如何去预测时间序列?

或许可以尝试下利用SVM去预测时间序列,那么如何提取预测的特征呢?

传统的做法是提取123457913个单位时间的数据作为特征进行预测;

举个例子进行分析,比如每天都有口香糖的销量,那么如何通过几周的数据预测明天的数据,

就可以选择前12345714天的数据作为特征,从而预测明天的数据,

通过构建特征,再选择核函数进行预测,其中调参的参数尽量要进行最优化,

参考方法:如果选择RBF核函数,那么其中就会有三个参数,固定两个,然后不停的优化另外一个,直到得到最优解。

SVM预测思路:

归一化处理:(X-max(x)+min(x)/2)/ (max(x)+min(x)/2)

损失函数:上图公式2

评价函数:平均绝对百分比误差,真实值-预测值,除以真实值,计算绝对值,加总后除以样本数。——MAPE

 

组合模型:自适应模糊神经网络模型-ANFIS、时序差分自回归滑动平均模型-ARIMA、持续法

ARMA-ARCH

EMD-ARMA

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

归去来?

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值