首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解释libsvm epsilon-SVR结果

解释libsvm epsilon-SVR结果
EN

Stack Overflow用户
提问于 2013-02-26 07:25:08
回答 1查看 3.9K关注 0票数 1

我试着用epsilon对8616个样本进行训练和交叉验证。在这些数据集中,我选择4368作为测试,4248作为简历。核类型= RBF核。Libsvm提供了如下所示的结果。

代码语言:javascript
复制
optimization finished, #iter = 502363
nu = 0.689607
obj = -6383530527604706.000000, rho = 2884789.960212
nSV = 3023, nBSV = 3004

这是通过设置

代码语言:javascript
复制
-s 3 -t 2 -c 2^28 -g 2^-13 -p 2^12

(a) "nu“是什么意思?有时,对于不同的参数,我得到nu = 0.99xx。

(b) "obj“似乎惊人地大。听起来对吗?Libsvm FAQ表示,这是“对偶SVM问题的最优目标值”。这是否意味着这是f(alpha)的最小值?

(c) "rho“也很大。这是偏差项,b.数据集标签(y)由82672到286026之间的值组成。所以我想这是合理的,对吗?

训练组,

代码语言:javascript
复制
Mean squared error = 1.26991e+008 (regression)
Squared correlation coefficient = 0.881112 (regression)

对于交叉验证集,

代码语言:javascript
复制
Mean squared error = 1.38909e+008 (regression)
Squared correlation coefficient = 0.883144 (regression)

使用所选的param,我产生了以下结果

代码语言:javascript
复制
kernel_type=2 (best c:2^28=2.68435e+008, g:2^-13=0.00012207, e:2^12=4096)
NRMS: 0.345139, best_gap:0.00199433
Mean Absolute Percent Error (MAPE): 5.39% 
Mean Absolute Error (MAE): 8956.12 MWh
Daily Peak MAPE: 5.30%

CV组MAPE值较低(5.39%)。通过偏差-方差检验,列车组与CV组间的差异仅为0.00199433,说明该参数的设定是正确的。但是我想知道巨大的"obj","rho“值是否正确.

我是SVR的新手,如果我的解释或验证方法不正确/不够,请纠正我。

计算MAPE的方法

代码语言:javascript
复制
train_model = svmtrain(train_label, train_data, cmd); 
[result_label, train_accuracy, train_dec_values] = svmpredict(train_label, train_data, train_model); 
train_err = train_label-result_label; 
train_errpct = abs(train_err)./train_label*100; 
train_MAPE = mean(train_errpct(~isinf(train_errpct)));
EN

回答 1

Stack Overflow用户

发布于 2016-02-12 11:15:25

目标值和rho值都很高,因为(很可能)数据没有缩放。强烈建议进行缩放以避免溢出;溢出风险还取决于内核的类型。顺便说一句,在扩展培训数据时,不要忘记扩展测试数据,这是最容易实现的,首先扩展所有数据,然后将它们分割成一个培训和测试集。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15083588

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档