培训数据和测试数据(Training Data and Test Data)
培训数据和测试数据是机器学习中的两个重要概念。 本章将详细讨论它们。
培训数据
训练集中的观察结果形成了算法用于学习的经验。 在监督学习问题中,每个观察包括观察到的输出变量和一个或多个观察到的输入变量。
测试数据
测试集是一组观察结果,用于使用某些性能指标评估模型的性能。 重要的是,测试集中不包括来自训练集的观察结果。 如果测试集确实包含来自训练集的示例,则难以评估算法是否已经学会从训练集中推广或者仅仅记住它。
概括良好的程序将能够有效地执行具有新数据的任务。 相反,通过学习过于复杂的模型来记忆训练数据的程序可以准确地预测训练集的响应变量的值,但是不能预测新示例的响应变量的值。 记忆训练集称为over-fitting 。 记住其观测结果的程序可能无法很好地执行其任务,因为它可以记忆噪声或巧合的关系和结构。 平衡记忆和概括,或过度拟合和不合适,是许多机器学习算法常见的问题。 Regularization可以应用于许多模型以减少过度拟合。
除了训练和测试数据之外,有时还需要第三组观察,称为validation或hold-out set 。 验证集用于调整称为hyper parameters变量,这些变量控制模型的学习方式。 该程序仍在测试集上进行评估,以估计其在现实世界中的表现; 由于程序已经专门针对验证数据进行了调整,因此不应将其在验证集上的性能用作模型实际性能的估计值。 将一组监督观察分为训练,验证和测试集是很常见的。 对分区的大小没有要求,它们可能根据可用数据量而有所不同。 通常将50%或更多的数据分配给训练集,25%分配给测试集,其余部分分配给验证集。
一些训练集可能只包含几百个观测值; 其他可能包括数百万。 廉价存储,增加的网络连接,无处不在的传感器智能手机以及对隐私的态度转变,促成了大数据的当代状态,或者数百万或数十亿示例的训练集。
但是,机器学习算法也遵循“垃圾输入,垃圾输出”的格言。 通过阅读包含许多错误的大型,令人困惑的教科书来学习测试的学生可能不会比阅读简短但写得很好的教科书的学生得分更好。 类似地,在大量噪声,不相关或不正确标记的数据上训练的算法将不会比在更小代表现实世界中的问题的较小数据集上训练的算法执行得更好。
许多受监督的训练集是手动或通过半自动化过程准备的。 在某些领域,创建大量受监督数据的成本可能很高。 幸运的是,几个数据集与scikit-learn捆绑在一起,允许开发人员专注于模拟实验。
在开发期间,特别是在训练数据稀缺时,可以使用称为cross-validation的实践来训练和验证关于相同数据的算法。 在交叉验证中,训练数据被分区。 使用除一个分区之外的所有分区来训练该算法,并在剩余分区上进行测试。 然后将分区旋转几次,以便对所有数据进行训练和评估算法。
例如,考虑原始数据集被划分为五个相同大小的子集,标记为A到E.最初,模型在分区B到E上训练,并在分区A上测试。在下一次迭代中,模型在分区上训练A,C,D和E,并在分区B上进行测试。旋转分区,直到模型在所有分区上经过训练和测试。 与测试单个数据分区相比,交叉验证可以更准确地估计模型的性能。
绩效衡量 - 偏差和差异
许多指标可用于衡量程序是否正在学习如何更有效地执行其任务。 对于监督学习问题,许多性能指标测量预测错误的数量。
模型的预测误差有两个根本原因 - bias和variance 。 假设您有许多训练集,这些训练集都是唯一的,但同样代表了人口。 无论训练的训练集如何,具有高偏差的模型都会对输入产生类似的误差; 该模型偏倚了自己对训练数据中所展示的关系的真实关系的假设。 相反,具有高方差的模型将根据训练的训练集产生输入的不同误差。 具有高偏差的模型是不灵活的,但具有高方差的模型可能非常灵活,因此它可以对训练集中的噪声进行建模。 也就是说,具有高方差的模型过度拟合训练数据,而具有高偏差的模型不适合训练数据。
理想情况下,模型将具有低偏差和方差,但减少一个的努力将经常增加另一个。 这被称为bias-variance trade-off 。 我们可能不得不考虑本教程中介绍的几个模型的偏差 - 方差权衡。 无监督学习问题没有测量的错误信号; 相反,无监督学习问题的性能指标衡量数据中发现的结构的一些属性。 大多数性能指标只能针对特定类型的任务进行计算。
应使用表现在现实世界中制造错误的成本的绩效测量来评估机器学习系统。 虽然这看起来微不足道,但以下示例说明了一般性任务的性能度量的使用,但不适用于其特定应用。
准确性,精确度和召回率
考虑一种分类任务,其中机器学习系统观察肿瘤并且必须预测这些肿瘤是良性还是恶性。 Accuracy或正确分类的实例的比例是对程序性能的明显衡量。 虽然准确度确实衡量了该计划的表现,但它没有区分被归类为良性的恶性肿瘤和被归类为恶性的良性肿瘤。 在某些应用程序中,所有类型错误产生的成本可能相同。 然而,在这个问题中,未能识别恶性肿瘤比将良性肿瘤误分类为恶性肿瘤更严重。
我们可以测量每个可能的预测结果,以创建分类器性能的不同快照。 当系统正确地将肿瘤归类为恶性肿瘤时,该预测称为true positive 。 当系统错误地将良性肿瘤归类为恶性肿瘤时,预测是false positive 。 类似地, false negative是对肿瘤是良性的不正确预测,而true negative是对肿瘤是良性的正确预测。 这四个结果可用于计算分类性能的几种常用度量,如准确度,精度,召回等。
准确度用以下公式计算 -
ACC = (TP + TN)/(TP + TN + FP + FN)
其中,TP是真阳性的数量
TN是真阴性的数量
FP是误报的数量
FN是假阴性的数量。
Precision是预测为恶性的肿瘤的一部分,实际上是恶性的。 精度用以下公式计算 -
PREC = TP/(TP + FP)
Recall是系统鉴定的恶性肿瘤的一部分。 召回按以下公式计算 -
R = TP/(TP + FN)
在该示例中,精确度测量预测为恶性的肿瘤的实际上是恶性的部分。 召回测量检测到的真正恶性肿瘤的比例。 精确度和召回率测量结果可以表明,具有令人印象深刻的准确度的分类器实际上无法检测到大多数恶性肿瘤。 如果大多数肿瘤是良性的,即使是从不预测恶性肿瘤的分类器也可以具有高精度。 具有较低准确度和较高召回率的不同分类器可能更适合于该任务,因为它将检测更多的恶性肿瘤。 还可以使用许多其他用于分类的性能度量。