一、基本术语
示例(instance)/样本(sample).:每条记录是关于一个事件或对象的描述。
数据集(data set):示例的集合。
属性(attribute)/特征(feature):反映事件或对象在某方面的表现或性质的事项。
属性值(attribute value):属性上的取值。
属性空间(attribute space)/样本空间(sample space)/输入空间:属性张成的空间。
维数(dimensionality):属性的数量对应样本空间的维数。
特征向量(feature vector):每个对象都可以在样本空间里找到自己的坐标位置。由于空间中的每个点对应一个坐标向量,因此我们也把一个示例称为一个"特征向量"。
学习 (learning)或训练 (training):从数据中学得模型的过程。
训练集(training set):训练过程中使用的数据称为训练数据(training data),其中每个样本称为一个训练样本" (training sample),训练数据的集合为训练集。
测试集(testing set):学得模型后,使用其进行预测的过程称为"测试" ,被预测的样本称为测试样本 (testing sample)。测试样本的集合为测试集。
假设(hypothesis):学得模型对应了关于数据的某种潜在的规律,因此亦称"假设"。
真实(ground-truth):这种潜在规律自身。
"学习器" (learner):学习过程就是为了找出或逼近真相,西瓜书有时将模型称为"学习器" 。
测试样本 (testing sample):学得模型后,使用其进行预测的过程称为"测试" (testing),被预测的样本称为测试样本 (testing sample)。
标记(label):训练样本的"结果"信息。
样例(example):拥有了标记信息的示例。
标记空间(label space)/输出空间:所有标记的集合。
分类(classification):若预测的是离散值,此类学习任务为分类。只涉及两个类别的"二分类" (binary classification)任务,通常称其中一个类为 "正类" (positive class),另一个类为"反类" (negative class); 涉及多个类别时,则称为"多分类任务" (multi-class classification)
回归(regression):若预测的是连续值,此类学习任务为回归。
聚类 (clustering) :将训练集中的西瓜分成若干组,每组称为一个"簇" (cluster); 这些自动形成的簇可能对应一些潜在的概念划分。但这些概念划分我们事先并不知道,也就是说学习过程的示例并不拥有标记信息。
监督学习(supervised learning) :训练数据拥有标记信息。回归和分类均属于监督学习。
无监督学习(unsupervised learning):训练数据没有标记信息。聚类属于无监督学习。
"泛化" (generalization)能力:学得模型适用于新样本的能力。
独立同分布(independent and identically distributed):假设样本空间中全体样本服从一个未知“分布”,我们获得的每个样本都是独立地从这个分布中采样获得的。
归纳(induction):是从特殊到一般的泛化过程,从具体的事实归结出一般规律。
演绎(deduction):从一般到特殊的特化(specialization)过程,即从基础原理推演出具体状况。
假设空间(hypothesis space):模型属于由输入空间到输出空间的映射的集合,这个集合就是假设空间。可以将学习过程看作一个在所有假设组成的空间中进行搜索的过程,搜索目标是找到与训练集"匹配"的假设,即能够将训练集中的瓜判断正确的假设。假设的表示一旦确定,假设空间及其规模大小就确定了。
值得注意的是在计算假设空间时,不仅要考虑每个属性的取值,还要考虑每个属性可以取任何值的情况,更要考虑世界上就不存在学习的目标的情况。(对应西瓜书p4-5的例子)
版本空间(version space).:与训练集一致的假设集合。
二、归纳偏好
版本空间内往往有多个与训练集一致的模型,虽然它们在假设空间中在训练集上是等效的,但是在面临新样本的时候,却会产生不同的输出。然而,对于一个具体的学习算法而言,它必须要在版本空间内选择一个模型。这时,学习算法本身的"偏好"就会起到筛选标准的作用。这种学习过程中对某种类型假设的偏好,称为"归纳偏好" (inductive bias)。
西瓜书(02)
一、基本术语
错误率(error rate):把分类错误的样本数占样本总数的比例称为错误率。
精度(accuracy):精度=1-错误率
误差(error):学习器的实际预测输出与样本的真实输出之间的差异称为误差。
训练误差(training error)/经验误差(empirical error):学习器在训练集上的误差
泛化误差(generalization error):在新样本上的误差
过拟合(overfitting):当学习器把训练样本学得"太好"了的时候,很可能巳经把训练样本自身的一些特点当作了所有潜在样本都会具有的一般性质,这样就会导致泛化性能下降。
欠拟合(underfitting):指对训练样本的一般性质尚未学好
真正例 (true positive):真实情况和预测结果皆为正例
假正例 (false positive):真实情况是反例,预测结果是正例
真反倒 (true negative) :真实情况和预测结果皆是反例
假反例 (false negative):真实情况是正例,预测结果是反例。
二 问题:经验误差与过拟合
如前所述经验误差较大会导致欠拟合,经验误差较小甚至为0会导致过拟合。欠拟合与过拟合的具体实例如下图所示:
欠拟合比较容易克服,过拟合是无法彻底避免的,只能减缓。机器学习面临的问题通常是 NP 难甚至更难,而有效的学习算法必然是在多项式时间内运行完成。要解决过拟合实质上蕴含了假设p=np,但该假设还未验证,所以过拟合仍无法避免。
三、评估方法
我们通常通过测试集来测试学习器对新样本的判别能力,然后以测试集上的测试误差作为泛化误差的近似,通常我们假设测试样本也是从样本真实分布中独立同分布采样获得。接下来的问题是如何从数据集中产生训练集S和测试集T。(值得注意的是,测试集应该尽量与训练集互斥,即训练集中的样本尽量不要出现在测试集之中)
(1)留出法(hold-out)
"留出法" (hold-out)直接将数据集划分为两个互斥的集合,其中一个集合作为训练集 ,另一个作为测试集。在训练集上训练出模型后,用测试集来评估其测试误差,作为对泛化误差的估计。
(2)交叉验证法(cross validation)
"交叉验证法" 先将数据集 划分为 个大小相似的互斥子集, 每个子集都尽可能保持数据分布的一致性,即从 D中通过分层采样得到。然后,每次用k-1个子集的并集作为训练集,余下的那个子集作为测试集;这样就可获得 k组训练/测试集,从而可进行 k 次训练和测试,最终返回的是这 k 个测试误差的均值。
交叉验证法的一个特殊方法是留一法(Leave-On-Out,简称 LOO)。假定数据集D中包含m个样本,若令 k=m,则m 个样本只有唯一的方式划分为 m 个子集一一每个子集包含一个样本留一法使用的训练集与初始数据集相比只少了一个样本,这就使得在绝大多数情况下,留一法中被实际评估的模型与期望评估的用 D 训练出的模型很相似。
(3)自助法(bootstrapping)
留出法和交叉验证法都有一个问题,即训练集必定小于数据集D,但是我们希望评估的是用D训练出的模型,这必定会导致一些因训练样本规模不同而导致的估计偏差。自助法是给定包含m个样本的数据集D ,每次随机从D中挑选一个样本,将其拷贝放入 D' ,然后再将该样本放回初始数据集D中,使得该样本在下次采样时仍有可能被采到;这个过程重复执行m次后,就得到了包含m个样本的数据集D'。
根据
有36.8%的D中的数据在采样中从来不会出现在D'中,因此我们可以用D'作训练集,用D/D'作测试集。
该方法的优点在于训练集的样本总数和数据集一样都是m个,并且仍有约1/3的数据不出现在训练集中可以作为测试集。但是该方法的不足在于这样产生的训练集的数据分布和原数据集的分布不一样了,会引入估计偏差。
四、调参与最终模型
大多数学习算法都有参数需要设定,参数配置不同,学得的模型往往有显著差别。由于学习算法的参数是在实数范围内取值,因此,对每种参数都用数据训练出模型是不可行的。实际操作中,往往会给每个参数设置范围和步长。显然,这样选定的参数值往往不是"最佳"值,但是可以通过天正参数设置,不断优化模型的性能。
参考文献:
周志华.机器学习,北京:清华大学出版社出版年:2016-1-1页数:425