交叉验证matlab-crossval函数
我不明白matlab中的函数“crossval”作为第一个参数是什么,我知道这是一个用于执行回归的函数,但我没有得到“某些标准testval”的意图。我需要在K-nn回归器上使用它,但是示例并没有让我明白所有的事情交叉验证matlab-crossval函数,matlab,machine-learning,regression,knn,cross-validation,Matlab,Machine Learning,Regression,Knn,Cross Validation,我不明白matlab中的函数“crossval”作为第一个参数是什么,我知道这是一个用于执行回归的函数,但我没有得到“某些标准testval”的意图。我需要在K-nn回归器上使用它,但是示例并没有让我明白所有的事情 vals = crossval(fun,X) 每次调用时,fun都应该使用XTRAIN来拟合模型,然后 返回在XTEST上使用拟合的 模型 这里是我阅读的地方:它应该类似于优化函数,其中拟合函数fun的返回值应该指示它与数据的拟合程度。如前所述,fun接受两个参数,一个是训练数据集
vals = crossval(fun,X)
每次调用时,fun都应该使用XTRAIN来拟合模型,然后
返回在XTEST上使用拟合的
模型
这里是我阅读的地方:它应该类似于优化函数,其中拟合函数
fun的返回值应该指示它与数据的拟合程度。如前所述,fun
接受两个参数,一个是训练数据集XTRAIN
,一个是测试数据集XTEST
如果您的数据,X
,包含一列已知结果X(:,1)
和其他特性列X(:,2:end)
,并使用XTRAIN
对数据进行训练,那么您的返回值可能与拟合模型的平方和误差一样简单:
testval = sum( (model(XTEST(:, 2:end)) - XTEST(:, 1)).^2 );
其中model(XTEST(:,2:end))
是您在测试数据集的功能上安装的模型的结果,而XTEST(:,1)
是这些功能集的已知结果。谢谢,这对我帮助很大!