MATLAB:使用'重新取代' sequentialfs中的选项

时间:2016-07-22 00:54:21

标签: matlab linear-regression

我是MATLAB的新手,并尝试实现sequentialfs来识别最适合线性回归的子集。我已经阅读了在线文档但发现很难理解。

我有一套训练数据,并希望使用'重新置换'将此作为测试数据应用的选项。

x_train是一个包含67行和8列的矩阵。 y_train有67行1列。

有人可以检查一下为什么这段代码不起作用?

x_train = std_pros_pred_full;
y_train = pros_resp;

fun_RSS = @RSS_check;
inmodel = sequentialfs(fun_RSS,x_train,y_train,'resubstitution');

函数RSS_check执行线性回归计算并输出平方误差之和。它的定义(外部)如下:

function RSS_out = RSS_check(X,Y)

lin1 = X'*X;
lin2 = X'*Y;
lin_coef = (lin1^-1)*lin2; 
lin_fit = X*lin_coef;

row_count = size(Y,1);
RSS_out = 0;

for q = 1:row_count
  pred_diff = lin_fit(q,1) - Y(q,1);
  RSS_out =RSS_out + pred_diff^2;
end

错误消息是: 使用sequentialfs时出错(第212行) 参数数量错误。

当尝试不同的选项时,我也有关于该功能的输入和输出数量的错误。我见过的很多例子都提到了测试数据的单独矩阵(给出了4个输入),但我认为这对于重新取代'而言是不必要的。选项。

0 个答案:

没有答案