我正在研究多变量时间序列估计。我不太确定LIBSVM是否这样做。如何解决基本的单变量线性问题?
假设我有x = [1990,1991,1992,1993,1994]和y = [1,2,3,4,5]。现在我想在Matlab中使用LIBSVM预测testx = 1995的值。我尝试使用工具箱,但我得到的结果是
model = svmtrain(y,x,'-s 3 -t 0 -c 1 -p 0.1');
*
optimization finished, #iter = 0
nu = 0.000000
obj = 0.000000, rho = -1.000000
nSV = 0, nBSV = 0
>> TST = 6;
[predicted_label, accuracy, prob_estimates]=svmpredict(TST,testx,model);
Mean squared error = 25 (regression)
Squared correlation coefficient = -1.#IND (regression)
这里发生了什么?由于我给出的数据是线性的,我选择了-t 0,它是线性内核。
答案 0 :(得分:4)
我终于弄明白了什么是错的。我传递的输入是行向量。 Libsvm以列向量格式输入。 x应为m * n,其中m是数据的数量,n是要素的数量,y是列标签向量。 感谢Sriram帮助我解决问题。