书名:计算机视觉40例从入门到深度学习:OpenCV-Python
作者:李立宗
出版社:电子工业出版社
出版时间:2022-07-01
ISBN:9787121436857
第15章 机器学习导读
15.2 机器学习基础概念
15.2.3 数据集的划分

一、数据集划分
- 很多计算机内使用的算法是人们借用的在实践中广泛应用的规律,机器学习也一样。
- 机器学习使用已知数据时,通常将数据集划分为训练数据、测试数据、验证数据三部分,其基本含义分别为如下。
- 训练数据:
又称训练集,是训练模型时使用的数据。 - 测试数据:
又称测试集,是学得的模型在实际使用中用到的数据。 - 验证数据:
又称验证集,是在评估与选择模型时使用的数据。
- 训练数据:
二、模型评估与选择
- 模型评估与选择主要是进一步确定算法使用的参数,在机器学习中有两类,分别是
- 算法参数:
又称超参数,该参数是模型的外部设置,如K近邻算法中使用的K值。该参数由人工确定,常说的“调参”是指对算法参数进行调整。 - 模型参数:
模型使用的参数,如神经网络中的权重值,该参数是通过学习过程习得的。
- 算法参数:
三、训练过程和测试过程
- 验证数据不是必需的,通常情况下,机器学习过程可能只有训练过程和测试过程。
- 下文以只有训练过程和测试过程的机器学习过程为例介绍如何更有效地利用数据。
1、留存法
- 将整体数据划分为不同部分的方法称为留存法。
在这种方法中,训练过程使用大部分数据,测试过程使用小部分数据。这会导致误差仅在很少一部分数据上体现出来。 - 比较理想的情况是,训练过程、测试过程都能够使用所有数据。
2、交叉验证
- 可以通过交叉验证的方式达到使用所有数据的效果。
该方法把所有数据划分为k个互斥的子集,让每个子集尽量保持数据分布的一致性。
每次使用k-1个子集进行训练,余下的子集进行测试。
重复上述过程,确保训练过程和测试过程都能够使用所有数据。
k常用的取值为5、10、20等。
3、示例
-
例如,在图15-14中,原始数据集被划分为五个子集,标记为A~E。
第一轮交叉验证中,在A~D子集上进行训练、在E子集上进行测试。
在第二轮交叉验证中,在A子集、B子集、C子集、E子集上进行训练,在D子集上进行测试。
依次类推,完成五轮交叉验证。
与在单一模型上进行测试相比,交叉验证能够提供更准确的结果。
图15-14 交叉验证示意图
网友评论