model的定义以及n-fold cross validation

model通常指的是一种特定的描述输入数据与预测输出数据是怎样关联的方法。

而一般不是指某一种方法的不同的实例。所以,你可以说,我有一个线性回归模型。但是由两个不同的数据集训练出不同的神经网络模型,这不是两个不同的model。这种定义model的方式,至少在模型选择的文本环境中是成立的

所以,当你做k-fold cross validation的时候,由一些训练集训练得到一个model,你是用未放入训练的数据集来测试这个model有多好。我们使用cross validation的目的是你在训练的时候将所有的数据用作了训练,没有留数据做测试用。

你曾经应该这样做过,将数据集的80%用作training,剩下的20%用作testing。但是,当你选作testing的20%数据里包含有一些特别容易predict的数据点,或者包含了一些特别难predict的点,这时候该怎么办?我们可能得到的model就不是理想的model。所以,我们想要的是使用全部的数据用作训练。

但是cross validation的目的并不是构建出最终的model。我们并不使用这5个训练的模型实例来做实际的prediction。因为我们想要所有的数据来做训练,尽可能得到好的模型。cross validation的目的是检测,检查,checking,而不是模型的构建。

现在,我们说我们有两个模型,一个是线性回归模型,另一个是神经网络模型。怎样说哪个模型比较好呢?我们可以做 k-fold cross-validation,看哪一个模型在test sets上表现的更好。但是,一旦我们使用cross-validation来选择一个更好表现的模型,我们要用所有的数据来训练模型,对linear regression model与neural network模型都要使用所有的数据集。再强调一遍,我们并不使用在cross-validation时训练得到的具体的model instance来最为最终的predictive model。

原文:https://blog.csdn.net/u010167269/article/details/51340070!

你可能感兴趣的:(model的定义以及n-fold cross validation)