【发布时间】:2014-07-17 05:42:01
【问题描述】:
我正在使用广义线性模型进行回归。使用crossVal 函数让我措手不及。到目前为止我的实现;
x = 'Some dataset, containing the input and the output'
X = x(:,1:7);
Y = x(:,8);
cvpart = cvpartition(Y,'holdout',0.3);
Xtrain = X(training(cvpart),:);
Ytrain = Y(training(cvpart),:);
Xtest = X(test(cvpart),:);
Ytest = Y(test(cvpart),:);
mdl = GeneralizedLinearModel.fit(Xtrain,Ytrain,'linear','distr','poisson');
Ypred = predict(mdl,Xtest);
res = (Ypred - Ytest);
RMSE_test = sqrt(mean(res.^2));
下面的代码用于计算从link 获得的多重回归的交叉验证。我想要广义线性模型类似的东西。
c = cvpartition(Y,'k',10);
regf=@(Xtrain,Ytrain,Xtest)(Xtest*regress(Ytrain,Xtrain));
cvMse = crossval('mse',X,Y,'predfun',regf)
【问题讨论】:
-
我想使用 Matlab 统计工具箱中的函数计算 GLM 的交叉验证误差。现在,有什么我遗漏的,或者 Matlab 根本没有内置这样的功能。
标签: matlab machine-learning regression glm cross-validation