交叉验证是最重要的工具之一,因为它可以让我们诚实地评估系统的真实准确性。换句话说,交叉验证过程可以更准确地描述我们系统的真实准确性。
例如,如果我们有一个包含一个类的数据集(让我们考虑一个人脸数据集):
在这种情况下,我们将数据集划分为k folds
(或k portions
)。k 的常见值为 10,因此在这种情况下,我们会将数据集分为 10 个部分。我们将运行k rounds
交叉验证。在每一轮中,我们使用一个折叠进行验证,其余折叠用于训练。在训练我们的分类器之后,我们在验证数据上测量它的准确性。平均精度k rounds
以获得最终的交叉验证精度。
Prepare our dataset
Divide it into 10 folds.
for i=1:10 % ten times
fold(i) for testing
the remaining for training
end
Final accuracy = Average(Round1, Round2, ...., Round10).
否则,如果我们有一个包含多个类别的数据集(让我们考虑 3 个类别:面孔、飞机和草莓类别):
我不知道我的意见是否正确:三个类别中的每一个都分为 10 折。我们是否像上面那样测量最终的准确度?例如:
For the first round: take the first folds from the first, second and third categories and use them as testing and all the remaining folds (from all the categories) as training.
For the second round: take the second folds from the first, second and third categories and use them as testing and all the remaining folds (from all the categories) as training.
etc. until the round 10...
这是正确的吗?我的意见正确吗?请我需要你的帮助和解释。
任何帮助将不胜感激。