课程:中国大学Mooc《深度学习基础》哈尔滨工业大学,刘远超
第一讲 1.2-数据集及其拆分
数据集的一般数据结构、训练集和测试集得拆分、K折交叉验证等
目录
3. 类别标签的ground truth与gold standard
1. lris(鸢尾花)数据集
对三类花进行分类,山鸢尾(lris setosa)、变色鸢尾(lris versicolor)、维吉尼亚鸢尾(iris virginica)
找到能对分类起关键作用的特征,在鸢尾花数据集中,分类主要用到了花萼(speal)和花瓣(petal)的宽度和长度
举例:
下面是鸢尾花数据集的数据样例
鸢尾花数据集一般存储为上例中二维表的结构,每行表示一个样本,包含四个输入特征(speal length、speal width、petal length、petal width),每行一个类别标签即类别的名称,类别也可以用类别编码来表示,比如用1、2、3表示三种可能的类别;
鸢尾花数据集共150个样本,3个类别,每类50个样本。
2. 数据集(dataset)的数学表示
从鸢尾花数据集可以看到,数据集由若干个样本组成,每个样本i通常表示为由输入特征xi和输出的类别标签yi
- 其中xi为样本特征(有时也被称为解释变量)。由于样本一般有多个特征,例如鸢尾花数据集有四个特征,因此xi通常进一步表示为向量,
- 而yi表示样本i的类别标签。
3. 类别标签的ground truth与gold standard
数据集中样本的类别标签多数是人工预先标注好的,也有的类别通过自动或半自动的手段获取的。
对样本进行类别标注的目的是用于训练算法或者是评价算法的性能。
有一个类别标签标注的可靠性的问题。
ground truth: 在机器学习领域一般用于表示真实值、标准答案等,表示通过直接观察收集到的真实结果。
在机器学习领域,更倾向于使用ground truth。而如果用gold standard这个词,则表示其可以很好地代表ground truth。或者gold standard可以被理解为更公认的ground truth。
4. 数据集与有监督学习
有监督学习指,在训练过程中要利用到样本数据的标注结果,如类别标签等。
有监督学习流程
(1)数据集通常被分为训练集和测试集两部分,训练集中的样本被用于训练模型,
(2)训练完毕后会得到优化的模型参数,
(3)然后将测试集中的每个样本输入给模型,从而得到该样本的预测或者说分类的结果,
(4)然后将与样本的真实类别y去比较,以评价模型的性能。
有监督学习流程
有监督学习中数据通常分为训练集、测试集两部分。
- 训练集用来训练模型,即被用来学习得到系统的参数取值。
- 测试集用于最终报告模型的评价结果,因此在训练阶段测试集中的样本应该是unseen的。
有时对训练集做进一步划分为训练集和验证集(validation set)。验证集与测试集类似,也是用于评估模型的性能。区别是验证集主要用于模型选择和调整超参数,因而一般不用于报告最终结果。
5. 训练集、测试集的拆分
可以使用sklearn(即scikit-learn)进行训练集、测试集的拆分。
如何安装sklearn: anaconda是一个开源的python发行版本,其包含了很多科学包及其依赖项,也包含sklearn。
训练集测试集拆分-留出法(Hold-Out Method)
留出法数据拆分步骤:
- 将数据集随机分为两组,一组做为训练集,一组做为测试集
- 利用训练集训练分类器,然后利用测试集评估模型,记录最后的分类准确率为此分类器的性能指标
优点,处理简单;
不足:在测试集上的预测性能的高低与数据集拆分情况有很大关系,所以基于这种数据集拆分基础上的性能评价结果不够稳定。
6. K折交叉验证
过程:
- 数据集被分为K份(K通常取5或者10)
- 不重复地每次取其中一份做测试集,用其他K-1份做训练集,这样会得到K个评价模型
- 将上述步骤2中的K次评价的性能均值作为最后评价结果
K折交叉验证有助于提高评估结果的稳定性。‘
7. 分层抽样策略(Stratified K-fold)
在数据集拆分时有时还需要考虑拆分后不同类别样本的比例问题。
分层抽样策略:将数据集划分为K份,特点在于,划分的K份中,每一份内各个类别数据的比例和原始数据集中各个类别的比例相同。