libsvm的epsilon SVR回归得到的值都是一样的

propellant_j propellant_j 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我在用libsvm做回归的时候,发现预测得到的值都是一样的,很奇怪。

所用的libsvm是官方版本3.23

数据如下:


代码如下,发现得到的teValue 和testValue 是一样的,是我的参数选择有问题吗?

void InitializeParam()
{
param.kernel_type = RBF;
param.svm_type = EPSILON_SVR;
param.gamma = 1;
param.C = 30;
param.shrinking = 0;
param.eps = 0.1;
param.cache_size = 300;
}

model = svm_train(&prob, ¶m);

double *dec_values = Malloc(double, 1);
svm_node *test = Malloc(struct svm_node, 3);
for (int i = 0; i < 2; i++)
{
test[i].index = i + 1;
test[i].value = 1.0;
}
test[3].index = -1;
test[3].value = 0;
double testValue = svm_predict_values(model, test, dec_values);

double *dec_values2 = Malloc(double, 1);
svm_node *te = Malloc(struct svm_node, 3);
for (int i = 0; i < 2; i++)
{
te[i].index = i + 1;
te[i].value = 1.5;
}
te[3].index = -1;
te[3].value = 99999.9;
double teValue = svm_predict_values(model, te, dec_values2);
...全文

相关推荐

支持向量机SVM和支持向量回归SVR算法合集(亲测可用)

本文介绍了LIBSVM库,这是一个支持向量机(SVM)的实现库,涵盖了C-SVC、ν-SVC、单类SVM、ϵ-SVR和ν-SVR等多种SVM算法。详细阐述了如何解决二次问题、进行多类分类、概率输出以及

Rocky爱学习

libsvm实战:SVR回归预测从原理到网格搜索调参全指南

回归预测是机器学习中常见的任务,而支持向量回归(SVR)凭借其对小样本、非线性数据的良好泛化能力,成为工程实践与课程设计中的热门选择。SVR的核心思想是引入epsilon不敏感损失,允许误差在带内不计损失,从而避免过拟合。libsvm作为经典工具,提供了高效的训练接口,但MEX编译、参数设置与网格搜索常常成为新手门槛。掌握RBF核函数、惩罚系数c和gamma的调参经验,能有效提升模型性能。从数据集加载、归一化、模型训练到评估指标R²和RMSE,一套可复现的流程让SVR回归预测快速落地。无论你是处理几百到几千

小雨果1号

基于支持向量机libsvm的回归预测分析

在libsvm中,进行回归预测时,通常会使用ε-SVR(epsilon-Support Vector Regression)模型。

Elen005

用LIBSVM做回归和预测的步骤

- `-p`是epsilon的值,对SVR来说很重要。 - `-g`参数是核函数的γ值。 - `-c`是惩罚系数C,对模型复杂度有影响。 - `-n`是nu参数,仅适用于nu-SVR。

tblixa

libsvm做回归步骤

在命令行中,你需要指定各种参数: - `-s`选择SVM类型,对于回归问题,选择3(epsilon-SVR)或4(nu-SVR)。 - `-t`选择核函数,RBF核通常是一个好的选择。

ljthxl2008
评论 2
收藏 已收藏
分享
返回顶部