一、基本术语
1、数据集、属性特征
要进行机器学习,先要有数据,假定我们收集了一批关于西瓜的数据
(色泽=青绿;根蒂=蜷缩;敲声=浊响)
(色泽=乌黑;根蒂=稍蜷;敲声=沉闷)
(色泽=浅白;根蒂=硬挺;敲声=清脆)
·····
这组记录的集合称为一个数据集(data set)
每个事件或对象(这里是西瓜)的描述,称为一个示例(instance) 或 样本(sample)
属性(attribute)或 特征(feature):例如 色泽、根蒂、敲声
属性值(attribute value):青绿、蜷缩、浊响
2、特征向量
属性张成的空间称为:属性空间(attribute space)、样本空间(sample space)或输入空间,例如我们把色泽、根蒂、敲声作为三个坐标轴,则它们张成一个用于描述西瓜的三维空间,每个西瓜都可在这个空间中找到自己的坐标位置,由于空间中的每个点对应一个坐标向量,因此我们也把一个示例称为一个特征向量(feature vector)
一般地,令D = {x1 ,x2,····,xm,}表示包含m个示例的数据集,每个示例由d个属性描述(例如上面西瓜数据使用了3个属性),则每个示例xi = (xi1,xi2,····,xid)是d维样本空间X中的一个向量,xi∈X,其中xij是xi在在第j个属性上的取值(例如上述第3个瓜第2个属性上的值是‘硬挺’),d称为样本xi的维数。
3、模型、学习、训练
从数据中学得模型的过程称为学习(learning)或训练(training),这个过程通过执行某个学习算法来完成。训练过程中使用的数据称为训练数据(training data),其中每个样本称为一个训练样本(training sample),训练样本组成的集合称为训练集(training set)。学得模型对应了关于数据的某种潜在的规律,因此亦称假设(hypothesis);这种潜在规律自身,则称为真相或真实(ground-truth),学习过程就是为了找出或逼近真相。模型有时也称为学习器(learner)
4、标记
((色泽=青绿;根蒂=蜷缩;敲声=浊响),好瓜)
要建立关于预测(prediction)的模型,我们需获得训练样本的结果信息,例如上述中的好瓜,称为标记(label),拥有了标记的示例,则称为样例(example),若将标记看做对象本身的一部分,则样例有时也称为样本。
一般地,用(xi,yi)表示第i个样例,其中yi ∈ Y是示例xi的标记,Y是所有标记的集合,亦称标记空间(label space)或输出空间。
5、分类、回归、二分类、正类、反类、测试
若我们欲预测的是离散值,例如好瓜坏瓜,此类学习任务称为分类(classification);若欲预测的是连续值,例如西瓜成熟度0.95、0.37,此类学习任务称为回归(regression)。对只涉及两个类别的二分类(binary classification)任务,通常称其中一个类为正类(positive class),另一个类为反类(negative class);涉及多个类别时,则称为多分类(multi-class classification)任务,一般地,预测任务是希望通过对训练集{(x1,y1),(x2,y2)····(xm,ym)}进行学习,建立一个从输入空间X到输出空间Y的映射F:X→Y.对二分类任务,通常令Y={-1,+1}或{0,1};对多分类任务|Y|>2;对回归任务,Y = R,R为实数集。
学得模型后,使用其进行预测的过程称为测试(testing),被预测的样本称为测试样本(testing sample)。
6、聚类
我们还可以对西瓜做聚类(clustering),即将训练集中的西瓜分成若干组,每组称为一个蔟(cluster);这些自动形成的蔟可能对应一些潜在的概念划分,例如浅色瓜、深色瓜,甚至本地瓜、外地瓜,而这些概念我们事先是不知道的,而且学习过程中使用的训练样本通常不拥有标记信息,这样的学习过程有助于我们了解数据内在的规律。
7、监督学习、无监督学习
根据训练数据是否拥有标记信息,学习任务可大致划分为两大类:监督学习(supervised learning)和无监督学习(unsupervised learning),分类和回归是前者的代表,而聚类则是后者的代表。
8、泛化
学得模型适用于新样本的能力,称为泛化(generalization)。
二、模型评估与选择
1、经验误差与过拟合
如果在m个样本中有a个样本分类错误,则错误率(error rate) E = a/m;精度(accuracy) = 1 - a/m
我们把学习器在训练集上的误差称为训练误差(training error)或经验误差(empirical error),在新样本上的误差称为泛化误差(generalization error)
当学习器把训练样本学得太好了的时候,很可能已经把训练样本自身的一些特点当作了所有潜在样本都会具有的一般性质,这样就会导致泛化性能下降,这种现象在机器学习中称为过拟合(overfitting).与过拟合相对的是欠拟合(underfitting),这是指训练样本的一般性质尚未学好。过拟合是无法彻底避免的,可以缓解或减小其风险。
2、评估方法
2.1留出法(hold-out)
留出法直接将数据集D划分为两个互斥的集合,其中一个集合作为训练集S,另一个作为测试机T,即D = S⋃T,S⋂T=∅,在S上训练出模型后,用T来评估其测试误差,作为对泛化误差的估计。常见做法是将大约2/3~4/5的样本用于训练,剩余样本用于测试。
2.2交叉验证法(cross validation)
交叉验证法先将数据集D划分为k个大小相似的互斥子集,即D=D1 ⋃ D2 ⋃ ···· Dk,Di ⋂ Dj = ∅ (i≠j)。然后,每次用K-1个子集的并集作为训练集,余下的那个子集作为测试集;这样就可获得k组训练/测试集,从而可进行k次训练和测试,最终返回的是这k个测试结果的均值。评估结果的稳定性和保真性很大程度上取决于k的取值,通常把交叉验证法称为k折交叉验证(k-fold cross validation),常见k值取值为10、5、20。缺陷:数据集较大时,训练m个模型的计算开销可能是难以忍受的。
2.3自助法(bootstrapping)
给定包含m个样本的数据集D,我们对它进行采用产生数据集D':每次随机从D中挑选一个样本,将其拷贝放入D',然后再将该样本放回初始数据集D中,使得该样本在下次采样时仍由可能被采到;这个过程重复执行m次后,我们就得到了包含m个样本的数据集D',这就是自助采样的结果。样本在m次采样中始终不被采到的概率是(1-1/m)m,取极限得到
[图片上传失败...(image-64ced-1527164409734)]^m\mapsto\frac{1}e\approx0.368)
即通过自助采样,初始数据集D中约有36.8%的样本未出现在采样数据集D'中,于是我们可将D'用作训练集,D\D'用作测试集;这样,实际评估的模型与期望评估的模型都使用m个训练样本,而我们仍有数据总量约1/3的、没在训练集中出现的样本用于测试,这样的测试结果,亦称包外估计(out-of-bag estimate)
自助法在数据集较小,难以有效划分训练/测试集时很有用,在初始数据量足够时,留出法和交叉验证法更常用一些。
2.4调参与最终模型
在进行模型评估与选择时,除了要对适用学习算法进行选择,还需对算法参数进行设定,这就是通常所说的参数调节或简称调参(parameter tuning)
在模型选择完成后,学习算法和参数配置已选定,此时应该用数据集D重新训练模型。这个模型在训练过程中使用了所有m个样本,这才是我们最终提交给用户的模型。
模型评估与选择中用于评估测试的数据集常称为验证集(validation set)
3、性能度量
回归任务最常用的性能度量是均方误差(mean squared error)
[图片上传失败...(image-d831b4-1527164409740)]=\frac{1}{m}\sum_{i=1}m(f(x_i)-y_i)2)
错误率是分类错误的样本数占样本总数的比例,分类错误率定义为:
[图片上传失败...(image-64da3b-1527164409740)]=\frac{1}{m}\sum_{i=1}^m\mathbb{I}(f(x_i)\neq{y_i}))
精度则是分类正确的样本数占样本总数的比例
[图片上传失败...(image-8c9004-1527164409740)]=\frac{1}{m}\sum_{i=1}^m\mathbb{I}(f(x_i)={y_i}))
[图片上传失败...(image-ea8068-1527164409740)])
真正例(True Positive,TP):预测值和真实值都为1
假正例(False Positive,FP):预测值为1,真实值为0
真反例(True Negative,TN):预测值与真实值都为0
假反例(False Negative,FN):预测值为0,真实值为1
查准率(precision):检索出的信息中有多少比例是用户感兴趣的,查准率P定义为:
[图片上传失败...(image-cc5c50-1527164409740)]
查全率(recall):用户感兴趣的信息中有多少被检索出来了,查全率R定义为:
[图片上传失败...(image-f4c613-1527164409740)]
查准率和查全率是一对矛盾的度量,一般来说,查准率高时,查全率往往偏低;而查全率高时,查准率往往偏低。平衡点(Break-Even Point,简称BEP)是综合考虑查准率、查全率的性能度量,它是查准率=查全率时的取值。
我们可根据学习器的预测结果对样例进行排序,排在前面的是学习器认为最可能是正例的样本,排在最后的则是最不可能的正例样本,按此顺序逐个把样本作为正例进行预测,则每次可以计算出当前的查全率、查准率。以查准率为纵轴、查全率为横轴作图,就得到了查准率-查全率曲线,简称P-R曲线,显示该曲线的图称P-R图。
很多学习器是为测试样本产生一个实值或概率预测,然后将这个预测值与一个分类阀值(threshold),大于分为正类,否则为反类;设置某个截断点(cut point),若更重视查准率,则可选择排序靠前的位置截断,若更重视查全率,则可选择靠后的位置进行截断。因此,排序本身的质量好坏,提现了综合考虑学习器在不同任务下的期望泛化性能的好坏,ROC(受试者工作特征 Receiver Operating Characteristic)曲线则是从这个角度出发来研究学习器泛化性能的有力工具。我们根据学习器的预测结果对样例进行排序,按此顺序逐个吧样本作为正例进行预测,每次计算出两个重要量的值,分别以他们横纵坐标作图,就得到了ROC曲线。ROC曲线的纵轴是真例率(True Positive Rate,简称TPR),横轴是假正例率(False Positive Rate,简称FPR)
[图片上传失败...(image-884a0b-1527164409740)]
[图片上传失败...(image-51aa12-1527164409740)]
进行学习器的比较时,与P-R图相似,若一个学习器的ROC曲线被另一个学习器的曲线完全包住,则可断言后者的性能优于前者;若两个学习器的ROC曲线发生交叉,则难以一般性地断言两者孰优孰劣。此时如果一定要进行比较,则较为合理的判据是比较ROC曲线下的面积,即AUC(Area Under ROC Curve)
不同类型的错误所造成的后果不同,例如门禁系统错误地把可通行人员拦在门外,将使得用户体验不佳,但错误地把陌生人放进门内,则会造成严重的安全事故。为权衡不同类型错误所造成的不同损失,可为错误赋予非均等代价(unequal cost)
4、比较检验
统计假设检验(hypothesis test)为我们进行学习器性能比较提供了重要依据。基于假设检验结果我们可推断出,若在测试集上观察到学习器A比B好,则A的泛化性能是否在统计意义上优于B,以及这个结论的把握有多大。
5、偏差与方差
偏差方差分解(bias-variance decomposition)试图对学习算法的期望泛化错误率进行拆解,是解释学习算法泛化性能的一种重要工具。
偏差度量了学习算法的期望预测与真实结果的偏离程度,即刻画了学习算法本身的拟合能力。
方差度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响。
噪声则表达了在当前任务上任何学习算法所能打到的期望泛化误差的下界,即刻画了学习问题本身的难度。
偏差-方差分解说明,泛化性能是由学习算法的能力、数据的充分性以及学习任务本身的难度所共同决定的。给定学习任务,为了取得好的泛化性能,则需使偏差较小,即能够充分拟合数据,并且使方差较小,即使得数据扰动产生的影响小。
偏差与方差是有冲突的,这称为偏差-方差窘境(bias-variance dilemma),若训练数据自身的、非全局的特性被学习器学到了,则将发生过拟合。