留出冗余五个点怎么算?

  • 你的回答被采纳后将获得:
  • 系统獎励15(财富值+成长值)+难题奖励30(财富值+成长值)
}

随着大数据时代的到来机器学習成为解决问题的一种关键工具。不管是在工业界还是在学术界机器学习都是炙手可热的方向。但是学术界和工业界对机器学习的研究各有侧重学术界侧重于对机器学习理论的研究,工业界侧重于如何用机器学习来解决实际问题我们结合机器学习的实践经验,详细介紹机器学习解决问题的整个流程图1-1即为我们概括的机器学习解决问题的通用流程,通用流程主要分为4大部分

问题建模。解决一个机器學习问题都是从问题建模开始首先需要收集问题的资料,深入理解问题然后将问题抽象成机器可预测的问题。在这个过程中要明确业務指标和模型预测目标根据预测目标选择适当的评估指标用于模型评估。接着从原始数据中选择最相关的样本子集用于模型训练并对樣本子集划分训练集和测试集,应用交叉验证的方法对模型进行选择和评估

特征工程。完成问题建模、对数据进行筛选和清洗之后的步驟就是对数据抽取特征,即特征工程特征工程是一项很重要但又很困难的任务,不仅需要我们对模型和算法有深入的理解还需要我們有很扎实的专业领域知识。工业界大多数成功应用机器学习的问题都是在特征工程方面做得很好。虽然不同模型和不同问题都会导致特征工程差异很大但仍有很多特征工程的技巧可以通用。

模型选择我们进行特征工程是为了将特征输入给模型,让模型从数据中学习規律但是模型有很多,不同的模型有很大差别使用场景不同,能够处理的特征也有很大差异当我们经过特征工程得到一份高质量的特征之后,还需要考虑哪个模型能够更准确地从数据中学习到相应规律从众多模型中选择最佳的模型也需要对模型有很深入的理解。

模型融合如上所言,不同模型会有很大差别能够从数据中学到的规律也会不同。我们可以采用模型融合的方法充分利用不同模型的差異,以进一步优化目标

后面的章节会详细介绍特征工程、模型选择和模型融合。本章主要介绍问题建模包括评价指标、样本选择和交叉验证等内容。

从机器学习的发展现状来看很多机器学习从业者在处理问题时是直接进行特征工程和模型选择,而忽略了问题建模问題建模是十分重要的一个环节,必不可少评价指标很多,我们应该选择一个能跟业务指标波动一致的评估指标这样通过观察评估指标僦能判断模型效果,可以大大提高模型迭代效率否则评估指标都没有参考意义。有一个好的评估指标未必足够还需要选择一种好的交叉验证方法,比如对只有100条样本的测试集评估准确率模型A准确率100%,模型B准确率95%因为测试集太小,得到的准确率不能充分代表模型的好壞我们无法确定模型A一定比模型B好。同样我们的原始数据不可避免地会有异常数据比如系统异常导致日志记录错误,将异常数据和低質量数据用于模型训练势必会导致模型效果变差通过样本选择提高数据质量能起到事半功倍的效果。

评估指标用于反映模型效果在预測问题中,要评估模型的效果就需要将模型预测结果f(X)和真实标注Y进行比较,评估指标定义为f(X)和Y的函数

模型的好坏是相对的,在对比不哃的模型效果时使用不同评估指标往往会导致不同的结论。

通常线下使用的是机器学习评估指标,线上使用的是业务指标如果线下指标和线上指标不同,则可能会出现线下指标变好而线上指标变差的现象为此,在一个新问题的开始阶段都会进行多轮模型迭代,来探索与线上业务指标一致的线下指标尽可能使线下指标的变化趋势跟线上指标一致。没有一个跟线上一致的线下指标意味着线下指标沒有参考价值,想判断此次试验是否有效只能上线实验。而上线实验成本远高于离线实验成本通常需要在线实验较长时间并对效果进荇可信度检验(如t-test)之后才能得出结论,这必然会导致模型迭代进度变慢

评估指标根据任务类型分类,可分为分类指标、回归指标、聚類指标和排序指标等下面将介绍一些常用的评估指标以及它们适用场景。

精确率和召回率多用于二分类问题可结合混淆矩阵介绍,如表1-1所示

其中,TP(真正True Positive)表示真实结果为正例,预测结果也是正例;FP(假正False Positive)表示真实结果为负例,预测结果却是正例;TN(真负True Negative)表示真实结果为正例,预测结果却是负例;FN(假负False Negative)表示真实结果为负例,预测结果也是负例显然,TP+FP+FN+TN= 样本总数

精确率P和召回率R的定義为:

理想情况下,精确率和召回率两者都越高越好然而事实上这两者在某些情况下是矛盾的:精确率高时,召回率低;而精确率低时召回率高。比如在搜索网页时如果只返回最相关的那一个网页,那精确率就是100%而召回率就很低;如果返回全部网页,那召回率为100%洏精确率就很低。因此在不同场合需要根据实际需求判断哪个指标更重要

我们以召回率R为横轴、以精确率P为纵轴能够画出P-R曲线,如图1-2所礻P-R曲线越靠近右上角性能越好,曲线下的面积叫AP分数(Average Precision Score平均精确率分数)。对比不同模型的AP分数能在一定程度上反映模型的精确率囷召回率都高的比例。但这个值计算不方便人们设计了一些综合考虑精确率和召回率的指标。

F_1值就是这样一个常用的指标F_1值是精确率囷召回率的调和平均值:

F值可泛化为对精确率和召回率赋不同权重进行加权调和:

此外,准确率和错误率也是常用的评估指标

精确率和准确率是比较容易混淆的两个评估指标,两者是有区别的精确率是一个二分类指标,而准确率能应用于多分类其计算公式为:

在众多嘚机器学习模型中,很多模型输出是预测概率而使用精确率、召回率这类指标进行模型评估时,还需要对预测概率设分类阈值比如预測概率大于阈值为正例,反之为负例这使得模型多了一个超参数,并且这个超参数会影响模型的泛化能力

接收者操作特征(Receiver Operating Characteristic,ROC)曲线鈈需要设定这样的阈值ROC曲线纵坐标是真正率,横坐标是假正率如图1-3所示。其对应的计算公式为:

ROC曲线与P-R曲线有些类似ROC曲线越靠近左仩角性能越好。左上角坐标为(0,1)即FPR=0,TPR=1根据FPR和TPR公式可以得知,此时FN=0FP=0,模型对所有样本分类正确绘制ROC曲线很简单,首先对所有样本按预測概率排序以每条样本的预测概率为阈值,计算对应的FPR和TPR然后用线段连接。当数据量少时绘制的ROC曲线不平滑;当数据量大时,绘制嘚ROC曲线会趋于平滑

AUC(Area Under Roc Curve)即ROC曲线下的面积,取值越大说明模型越可能将正样本排在负样本前面AUC还有一些统计特性:AUC等于随机挑选一个正樣本(P)和负样本(N)时,分类器将正样本排前面的概率;AUC和Wilcoxon Test of Ranks等价;AUC还和基尼(Gini)系数有联系满足等式Gini + 1 = 2 ? AUC。

AUC的计算方法有多种从物理意义角度理解,AUC计算的是ROC曲线下的面积:

从概率意义角度理解AUC考虑的是样本的排序质量,它与排序误差有密切关系可得到计算公式:

其中,rank为样本排序位置从1开始|P|为正样本数,|N|为负样本数

AUC计算主要与排序有关,所以它对排序敏感而对预测分数没那么敏感。

对数损夨(Logistic Losslogloss)是对预测概率的似然估计,其标准形式为:

对数损失最小化本质上是利用样本中的已知分布求解导致这种分布的最佳模型参数,使这种分布出现概率最大

对数损失对应的二分类的计算公式为:

其中,y∈{0,1}pi 为第i条样本预测为1的概率。

对数损失在多分类问题中也使鼡广泛其计算公式为:

其中,N为样本数C为类别数,yij=1表示第i条样本的类别为jpij为第i条样本类别j的概率。

logloss衡量的是预测概率分布和真实概率分布的差异性取值越小越好。与AUC不同logloss对预测概率敏感。

其中N为样本数,yi为第i条样本的真实值pi为第i条样本的预测值。MAE是绝对误差嘚平均值因为预测误差有正有负,绝对值可以避免正负抵消MAE能很好地刻画预测值与真实值的偏差。模型使用MAE作为损失函数则是对数据汾布的中值进行拟合某些模型(如XGBoost)必须要求损失函数有二阶导数,所以不能直接优化MAE

加权平均绝对误差(Weighted Mean Absolute Error,WMAE)是基于MAE的变种评估指標对每条样本考虑不同的权重,比如考虑时间因素离当前时间越久的样本权重越低。其计算公式为:

其中wi是第i条样本的权重。

2. 平均絕对百分误差

MAPE通过计算绝对误差百分比来表示预测效果其取值越小越好。如果MAPE = 10这表示预测平均偏离真实值10%。MAPE计算与量纲无关因此在特定场景下不同问题具有一定可比性。MAPE的缺点也比较明显在yi=0处无定义,并且如果yi接近0可能导致MAPE大于100%而且,MAPE对负值误差的惩罚大于正值誤差基于这些缺点也有一些改进的评价指标,如MASE、sMAPE、MDA

RMSE代表的是预测值和真实值差值的样本标准差。和MAE比RMSE对大误差样本有更大的惩罚;但它也对离群点敏感,其健壮性不如MAE模型使用RMSE作为损失函数则是对数据分布的平均值进行拟合。

RMSLE对预测值偏小的样本惩罚比对预测值偏大的样本惩罚更大比如一个酒店消费均价是200元,预测成150元的惩罚会比预测成250元的大如果评估指标选用RMSLE,没办法直接优化RMSLE但是能直接優化RMSE的模型通常会先对预测目标进行对数变换ynew=log?(y+1),最后预测值再还原p=exppnew-1

平均准确率均值(Mean Average Precision,MAP)的公式分两部分计算先计算一次排序的岼均准确率,再计算总体的平均准确率常用的MAP指标会限定评估排在前面的文档质量。

其中AP@K表示计算前K个结果的平均准确率;M表示每次排序的文档总数,可能一次返回文档数不足K个;P(k)表示前k个结果的准确率;rel(k)表示第k个结果是否是相关文档相关取值为1,不相关取值为0

其Φ,Q为查询的数量APq@K为第q次查询的AP@K结果。

下面举个例子说明其中,黑色代表相关白色代表不相关。

其中NDCG@K表示计算前K个结果的NDCG;relk表示苐k个位置的相关性得分;IDCG@K是前K个排序返回结果集能得到的最佳排序结果,用于归一化DCG@K;|REL|为结果集按相关性排序后的相关性得分列表

相对於MAP指标,描述相关性只用0/1二值描述NDCG相关性度量则可分更多等级。比如网页排序中常用的5个等级使评分更丰富但是相关性描述是一个超參数,需要人为定义此外,NDCG还考虑了位置偏置使不同位置权重不同。

下面用一个例子来帮助理解——计算NDCG@4其中预定义rel={0,1,2},取值越大说奣越相关如表1-2所示。

样本选择是数据预处理中非常重要的一个环节主要是从海量数据中识别和选择相关性高的数据作为机器学习模型輸入。样本选择的目的是从完整训练集T中选择一个子集S?T子集S不再包含冗余样本,如图1-4所示最理想的样本选择结果是,选择了最少量嘚训练集S而模型效果依然不会变差,即满足P(AlgoS )=P(AlgoT)其中,P表示模型评估函数Algo表示机器学习模型。做样本选择主要有以下三点好处

? 当数據量过大时,程序有时候会耗费大量计算资源和计算时间有时候甚至不能正常运行。减小数据量能够缩减模型的运算时间使某些因为數据量过大无法应用机器学习模型的问题变得可能。

? 全部的数据集包含丰富的信息但是一个具体的问题,通常只需要选取一部分问题楿关的信息相关性太低的数据对解决特定问题可能没有帮助。

? 数据中几乎不可避免地会有噪声数据这些噪声可能是系统原因导致数據有错误、重复等。通过去除噪声能提高训练集的数据质量改善模型效果。

样本选择有很多方法数据去噪、采样是相对简单有效的方法,也有广泛的应用当然还有很多方法不依赖采样,而是通过搜索整个数据集或利用算法来实现样本选择的这类方法可总结为原型选擇(Prototype Selection,PS)和训练集选择(Training Set SelectionTSS)。

数据中含有噪声数据几乎是不可避免的问题噪声的存在会导致数据质量变低,影响模型的效果但通过茬训练集中引入噪声数据也能起到提升模型健壮性的作用。因此包含噪声数据的问题是非常复杂的,特别是当选择的模型对噪声敏感的時候问题会更严重。要进行去噪操作对噪声进行识别是十分关键的一个步骤。识别出了噪声之后可以采取直接过滤或者修改噪声数據等多种做法。

噪声在监督学习问题中影响明显会改变特征和标注之间的关系,影响到特征提取;并且有噪声训练集和无噪声训练集得箌的模型也会有差异为此,提高模型健壮性会使得模型对噪声数据不那么敏感。当需要处理噪声数据的时候通常会权衡模型的健壮性和模型的效果。

噪声数据可能是特征值不对比如特征值缺失、超出特征值域范围等;也可能是标注不对,比如二分类正样本标注成负樣本数据去噪很多是检测和去除训练数据中标注带噪声的实例,去除这样的噪声数据对实验结论是有帮助的;而去除特征带噪声的数据茬很多地方表明效果反而变差由此可见噪声特征带有的一定信息能够用于构建模型,比如特征缺失时可以认为没有特征也是一个特征,这也能描述一定的信息

除了这些过滤方法外,其实还会考虑就业务的本身性质做一些数据过滤工作比如清洗爬虫数据和不具代表性樣本等。再如过滤掉无效曝光数据根据用户最后一次点击行为的位置,过滤掉最后一次点击之后的展示可以认为用户没有看到,也可鉯保留最后一次点击之后的少数几个曝光如图1-5所示。

采样是一个完善的统计技术从整体选择一部分来进行推论。采样能够克服高维特征以及大量数据导致的问题有助于降低成本,缩短时间甚至提升效果在不平衡分类问题中还能帮助平衡样本比例。进行采样时最关心采样方法和采样比例

通常,考虑样本对总体的估计值不超出边际误差的情况下是能够计算出样本量的如下面的概率不等式:

对于给定嘚?和δ,能够计算出采样大小n。其中,e代表样本的估计,通常是样本大小n的函数;e0代表真实的样本;?是置信度;1-δ是置信区间。然而,e0一般都是未知的,通常会先从样本中采样一个小的有m条样本的数据集对e0进行估计,之后再计算对应的n值如果n m,然后再从余下的样本集中选取额外的n-m条样本;如果n m那么就将m条样本作为采样结果。

一个好的样本子集应该具有无偏性(Unbiasedness)和很小的样本方差(Sampling Variance)其中无偏性指的是对样本的期望等于全体样本期望,即E(e)=e0样本方差是衡量样本估计值和真实值的偏差,即Var(e)=E[e-E(e)]2小方差能保证估计值不会产生太大偏差。

现有的采样方法有很多下文简单介绍5种采样方法。

? 有放回简单抽样(Simple Random Sample With Replacement)它和无放回简单随机抽样类似,不同的是每次从数据集T中抽取一条样本后还将这条样本放回到数据集T中,因此每条样本可能多次被选中

? 平衡采样(Balanced Sample)。它根据目标变量进行采样依据预定義的比例对样本进行重新组合,在不平衡分类问题中有十分成功的应用不平衡分类问题指分类任务中不同类别的数据量差异巨大,通常會对小数据量的类别进行上采样或者对大数据量的类别进行下采样。比如一份二分类样本有100条正样本、10 000条负样本采样目标是使正负样夲比例为1∶10,那么上采样就是对正样本复制10遍负采样就是对负样本随机删除部分样本留下1000条;ADASYN和SMOTE算法是上采样里两个比较常用的方法。

? 整群采样(Cluster Sample)它先将数据集T中的数据分组成G个互斥的簇,然后再从G个簇中简单随机采样s(s≤ G)个簇作为样本集这个方法是分两个阶段完成采样的。

Sample)数据集T划分成不同的层,然后在每层内部进行简单随机抽样最后汇总成样本集合S。该方法也常用于不平衡分类问题Φ和平衡采样非常相关。该方法分别对每个类别进行采样能使每个类别在样本集S中的分布和数据集T中的分布更为一致。比如对平衡采樣中的二分类数据进行分层采样目的是采样90%数据,分层采样以采样率0.9分别对正负样本采样能保证正负比例还是1∶100;如果对全部10 100条样本采样90%,可能出现正样本10条、负样本9080条的情况

1.2.3 原型选择和训练集选择

原型选择是基于实例的方法,在样本选择过程中不需要训练模型洏是选取相似度或距离度量指标来找到分类精度和数据量最佳的训练集,多数采用KNN算法训练集选择则是构建预测模型来进行样本选择的方法的统称,比如决策树、ANN和SVM等算法原型选择和训练集选择两大类别的样本选择方法有很多,然而没有一种方法能够通用

原型选择有佷多分类标准,根据从数据集T中选择样本集S的方向可以分为以下5类

? 增量法。开始时令S=?然后逐条遍历数据集T中的每条样本,如果满足条件则加入S中

? 递减法。和增量法相反开始时令S=T,然后逐条查找待过滤的样本从S中删除

? 批量法。和递减法类似批量法先判断┅批数据的每条数据是否应该删除,然后再将这批数据中全部满足删除条件的样本一起删除

? 混合法。预先选定一部分样本S≠?然后迭代地增加或删除满足对应条件的样本。

? 固定法是混合法的一个子方法,但最终选择的样本数是固定的

原型选择也可以类似特征选擇,根据选择样本的策略进行分类

? 包装器。根据模型的目标函数一般是模型预测结果来进行样本选择。

? 过滤器样本的选择标准鈈基于模型。

还可以根据选择的样本原型选择相关算法可分为如下三类。

? Edition删除边界的异常点,使得边界更平滑

? Hybrid。尝试找到最小嘚样本集S能够保持甚至提升测试集上的泛化精度。

大量原型选择算法都可以根据上述分类标准进行划分在此就不针对具体的算法展开介绍了。

在离线环节需要对模型进行评估,根据评估指标选择最佳模型用于模型训练的数据集叫训练集,用于评估模型的数据叫测试集;训练集上的误差称为训练误差或经验误差测试集上的误差称为测试误差。测试样本是用于测试模型对新样本的学习能力所以在假設测试数据和真实数据是独立同分布的前提下,测试误差可以作为泛化误差的近似模型对新样本的学习能力十分重要,我们希望模型对巳有样本进行学习尽可能将样本中潜在的普遍规律学到。如果模型在训练集上效果极好但是在测试集上效果很差,这说明模型将训练集中的一些规律当作普遍规律于是就过拟合了。测试集可以帮助防止过拟合还能够帮助指导模型调参。通常而言训练集和测试集互斥,训练集越多得到的模型效果越好;测试集越多,得到的结论越可信我们将划分训练集和测试集的方法统称为交叉验证。交叉验证囿很多方法不同方法适用不同场景。下面介绍几种常用的交叉验证方法

留出冗余法(Hold-Out)是将数据集D={(x1,y1),?,(xn,yn)}随机划分成两份互斥的数据集,┅份作为训练集Dtr一份作为测试集Dte,在Dtr上训练模型然后用Dte评估模型效果。本质上留出冗余法并非一种交叉验证方法,因为数据并没有茭叉

留出冗余法只需将数据划分成两部分,简单好实现如图1-6所示。但这种方法的缺点也比较明显它不能充分利用数据训练模型,并苴训练集和测试集的划分严重影响最终结果Dte的数据量越大,Dtr就越小得到的模型很可能和全量数据D得到的模型产生大的偏差;Dtr的数据量樾大,Dte就越小得到的结论可信度变低。通常的做法是2/3数据作为训练集,1/3数据作为测试集

除了划分测试集数据量对结论有影响外,划汾哪些样本作为测试集也会影响实验结论因为这将导致数据分布发生变化。比如二分类问题有1500条正样本和1500条负样本将1/3数据作为测试集,应该使得测试集正负样本均在50条左右;如果测试集由50条正样本和950条负样本组成实验结论将因为样本分布差异悬殊而有很大偏差。因此考虑到单次留出冗余法得到的结论往往不靠谱,我们会进行多次留出冗余法实验每次随机划分,最终将多次得到的实验结论进行平均

实际工作中有一种普遍的应用场景广泛使用留出冗余法:数据有明显的时间序列因素,即线上数据的时间都在离线数据集之后这种情況下应该根据时间对离线数据集划分训练集和测试集,使测试集时间分布在训练集时间之后

比如,在2017年6月初需要训练模型可以采用2017年1朤到2017年4月的数据作为训练集,2017年5月的数据作为测试集

K折交叉验证(K-fold Cross Validation)将数据集D划分成K份互斥数据集Dk,满足D=D1∪?∪DK一般是平均分配使每份数据量接近并且数据分布尽可能一致。每次用一份数据测试其余K-1份数据训练,需要迭代K轮得到K个模型;最后再将K份测试结果汇总到一起评估一个离线指标

K折交叉验证的稳定性与K取值有很大关系。K值太小实验稳定性依然偏低K值太大又可能导致实验成本高,K最常用的取徝是5和10如图1-7所示。K折交叉验证能够更好地避免过拟合和欠拟合得到的结论也更有说服力。

相比留出冗余法K折交叉验证更为复杂,需偠训练K个模型但是数据利用率更高。K=2时K折交叉验证和留出冗余法仍有差异,留出冗余法相当于用D1训练D2测试得到测试结果cv_score1而2折交叉验證还会用D2训练D1测试得到测试结果cv_score2再取两次结果的平均值。另外K折交叉验证也可能因为单次K份数据划分导致数据分布发生变化而引入偏差,因此也经常会进行多次K折交叉验证后求平均比如进行10次5折交叉验证,这10次划分5折交叉验证得到的数据会不同

假定数据集D中有N条数据,当K折交叉验证的K=N时就是留一法(Leave-One-Out,LOO)即每一条样本当测试集,其余数据作训练LOO策略的优缺点都很明显。训练N个模型每个模型都基本用到了全部的数据,得到的模型和全部数据D得到的模型更相似并且不再受随机样本划分方式的影响,因为划分方式只有一种了但昰当样本量N很大时,计算成本非常高计算甚至不可行,而且每个模型只有一条测试数据不能有效帮助每个模型调参达到最优。但是在數据稀疏时LOO很适用。

基于K折交叉验证还变种出一个在类不均衡情况下常用的方法叫作分层K折交叉验证(Stratified K-Fold)。该方法对每个类别进行K折劃分使每份数据中各类别的数据分布与完整数据集分布更一致。比如二分类数据进行5折交叉验证类别1有30条数据,类别2有300条数据在划汾成5折时,如果随机划分成5份这可能导致5份数据中的类别1数据量差别很大,导致每份数据训练出来的模型对类别1的分类效果差异很大影响整体效果。如果通过分层5折交叉验证即分别对2个类别划分,使每份数据有6条类别1样本60条类别2样本,每份数据分布都和整体数据分咘一致得到的模型也就更可信。

1993]为基础使用有放回的重复采样的方式进行训练集、测试集构建。比如为了构建n条样本的训练集每次從数据集D采样一条放入训练集,然后又放回重新采样重复n次得到n条样本的训练集,然后将没出现过的样本作为测试集从操作过程可知,一些样本在训练集中重复出现而另一些样本在训练集中从未出现。我们可以计算样本从未在训练集中出现的概率在每次采样的时候,每条样本没被采到的概率经过n次采样还没被采到的概率为取极限可得

这意味着当数据量很大的时候约有36.8%的样本不会出现在训练集中。顯然训练集有n条样本测试集有约0.368n条样本。留出冗余法和K折交叉验证法在训练模型时用的数据都只是整个数据集D的一个子集得到的模型會因为训练集大小不一致产生一定的偏差。而自助法能够更好地解决这个问题但自助法改变了初始数据集的分布,会引入估计偏差所鉯在数据量足够时,一般采用留出冗余法和交叉验证法而在数据量较小,并且难以有效区分训练集和测试集时自助法很有用。

}

我要回帖

更多关于 留出冗余 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信