模型性能的10倍交叉验证

时间:2014-12-03 21:06:52

标签: matlab machine-learning cross-validation

我是验证模型的新手,我目前正在尝试使用MATLAB K-fold验证来评估预测房价的多项式模型的性能。我有243个样本,我将它们分成10组,然后我用'for loop'测试9组对1组(重复X 10)我的问题是存储错误率(性能)10次我做预测。我该怎么办?我尝试使用'classperf',但我收到以下错误,请参阅下面的代码;

数据集样本:

DateX: 10,20,30,40 ...    
PriceY: 200,250,300,400 ...

% MATLAB code

K = 10;

cvFolds = crossvalind('Kfold',DateX,K); %10-folds 
cp = classperf(DateX);   %To store (performance)

for i = 1:K
    testIDx = (cvFolds == i);
    trainIDx = ~testIDx;
    model1 = polyfit(DateX(trainIDx),PriceY(trainIDx),2);
    prediction1=model1(1)*DateX(testIDx).^2+model1(2)*DateX(testIDx)+model1(3);
    cp = classperf(cp,prediction1,testIDx);
end

我的错误讯息:

Error using classperf (line 230)
When the class labels of the CP object are numeric, the output
of the classifier must be all non-negative integers or NaN's.

关于如何存储我的模型的性能,是否有任何建议?我会欣赏MATLAB中可用于预测和验证性能的其他方法的示例(神经网络,分类e.t.c。)?

0 个答案:

没有答案