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

propellant_j 2019-06-22 07:30:24
我在用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);
...全文
109 点赞 收藏 2
写回复
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuchao12345 2019-12-20
楼主,什么原因能讲一下么
回复
propellant_j 2019-06-26
已经找到原因了
回复
相关推荐
发帖
其它技术问题
创建于2007-09-28

3843

社区成员

C/C++ 其它技术问题
申请成为版主
帖子事件
创建了帖子
2019-06-22 07:30
社区公告
暂无公告