Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab中的Libsvm回归预测测试集实例的相同值_Matlab_Regression_Svm_Libsvm_Prediction - Fatal编程技术网

Matlab中的Libsvm回归预测测试集实例的相同值

Matlab中的Libsvm回归预测测试集实例的相同值,matlab,regression,svm,libsvm,prediction,Matlab,Regression,Svm,Libsvm,Prediction,我试图使用libsvm(Matlab库)解决回归问题。我有一个192个实例的数据集。以下是我的代码,用于划分列车和测试集中的数据: idx = [zeros(170,1) ;ones(22,1)]; idx = idx(randperm(192)); train = data(idx==0,:); train_label = label(idx==0,:); test = data(idx==1,:); test_label = label(idx==1,:); model_1 = svmtr

我试图使用libsvm(Matlab库)解决回归问题。我有一个192个实例的数据集。以下是我的代码,用于划分列车和测试集中的数据:

idx = [zeros(170,1) ;ones(22,1)];
idx = idx(randperm(192));
train = data(idx==0,:);
train_label = label(idx==0,:);
test = data(idx==1,:);
test_label = label(idx==1,:);

model_1 = svmtrain(train_label,train,'-s 3 -t 2 -c 1 -g 0.01');
model_2 = svmtrain(label,data,'-s 3 -t 2 -c 1 -g 0.01');

[y_hat, Acc,Dec] = svmpredict(test_label, test, model);

如果我使用整个数据集(模型_1)来训练模型,而不是针对测试集的每个实例,我会有不同的预测值,而如果我只使用训练集,我会为每个测试记录获得完全相同的值。我认为这是因为火车组太小,无法训练出一个好的模型,所以我尝试使用190个实例进行训练,只有2个用于测试。但是,即使使用这种划分,我对2个测试实例也得到了相同的预测值?代码有问题吗?

您应该使用缩放,尝试缩放代码中的训练和数据向量

根据您的代码判断,
model_2
似乎是您使用完整数据集进行训练的地方(而不是您的帖子所说的
model_1
).确实如此,但为什么我只使用整个数据集获得不同的值?如果我使用190个实例进行训练,仅使用2个实例进行测试(这或多或少与使用整个数据集一样),我会获得相同的预测值。你的意思是规范化我的数据吗?很抱歉,我刚刚意识到,是的,我的意思是规范化数据