英语原文共 415 页,剩余内容已隐藏,支付完成后下载完整资料
评估和调整分类器
本章包括:
|
由于评估非常重要,mahout在底层种实现评估过程。本章主要处理二值分类过程、分类器的评估和微调,为部署和维护在生产中的表现。我们讨探究,如何在高层上评估分类器和使用mahout 评估API的细节。我们也将使用一些例子,强调如何利用mahout评估API中的性能指标和诊断功解决分类器中的通常问题。我们以讨论分类器调整策略和技术(包括选择算法和调整学习率)结束本章内容。
分类器评估有一些陷阱,本章也将提供一些方法避免这些陷阱。因为分类器模型内部难以理解,评估极具挑战性。
15.1 mahout分类器评估
评估是建立一个成功的分类器的重要组成。在训练模型时,它不止意味着一个单一的性能数值。相反,它是一个始于分类器的训练的迭代过程。早期的评估是数值化的,当建立分类器时,因为它激励我们尝试许多选择,包括不同的算法、设置、测试器的参数集。评估也证实数据预处理流程中的错误;这些错误可能导致分类器表现得比实际更佳。
为了评估分类器,mahout提供许多性能度量标准。主要方案是percent correct(正确率),confusion matrix(混淆矩阵),AUC,log likelihood(log似然)。朴素贝叶斯和它的改进分类器算法使用正确率和混淆矩阵度量最好。这些方案都将用SGD算法实现;AUC或者log似然也将起到作用,因为他们可以观察模型置信程度。
本节包括如何获取模型执行的反馈,即使在训练过程中,如何解释mahout提供的模型执行度量指标,如何将代价函数考虑到评估中。
15.1.1 获得快速反馈
Mahout的评估体系与其他系统略微不同。一个实用的不同是,它能提供迅速和即时执行评估——通过允许用户将目标参数和参考值赋值到评价器中,以获取执行的实时性能反馈。这个mahout方法和其他必须批处理所有性能分值和目标值来评估性能的系统不同。当你需要保持学习系统的过程时,mahout的在线评估功能特别方便;而且由于mahout能在运行时调整学习参数,这也会为我们带来便利。
在执行过程中获取性能指标的能力非常棒,但这些指标又意味着什么呢?
15.1.2 “性能好”的含义
直观来说,我们想让一个分类器尽可能地准确,每次都能正确地进行分类。不幸的是,这不能在实际中应用。在现实生活中,没有分类器达到了100%的正确率。实际上,高正确率的分类器很可能在测试集中出错(泛化)——如果分类器性能很好,那么就有这种可能。所以,“性能好”究竟是什么?需要满足现实基准的可用的评估方案,以便我们能评价一个分类器的好坏。
简单的精度指标,例如正确率,不是最佳的评估和调优系统的方案。例如,在表15.2中描述的两个假设模型。比较表中的模型发现,基于简单的正确率指标的“一直出错”模型比偶尔正确的模型更加实用。
Table 15.1两个假设分类器的数据展示,仅仅考虑正确率产生的限制。每列表示模型输出的频率。每行数据表示正确值,最高分用黑体标识。模型1几乎从未正确,但是仍旧十分有用;而模型2像是一个停摆的时钟(错误率高)。
Correct Value |
Model 1 |
Model 2 |
||||
A |
B |
C |
A |
B |
C |
|
A |
0.45 |
0.50 |
0.05 |
0.01 |
0.01 |
0.99 |
B |
0.50 |
0.45 |
0.05 |
0.01 |
0.01 |
0.99 |
C |
0.05 |
0.50 |
0.45 |
0.01 |
0.01 |
0.99 |
这假设的例子告诉我们,为什么简单的考虑正确率通常无法显示模型的真是价值。此表中,每行代表一个样本,正确答案在左边显示。每列包括对每个可能答案的评分。模型1几乎从来不对,但是比模型2更加有用(除了后面更高的正确率)。模型2通过一个固定的简单规则得出评估,有时正确,但这纯粹是因为随机造成。相反,模型1表现出,恒定得出不是正确答案的那个概率。
对大多数应用,模型1的输出,在很多层面上,比模型2的输出更佳;模型2有时能得到正确答案,但永不会改变输出结果。本例中,模型1得到0%的正确率,模型2得到25%的正确率。相反,模型拥有0.8的log似然均值,而模型2的结果想到糟糕——3.5。在下节中,我们将讨论模型成功的度量,像是log似然,能更好反映我们想要的表现。
进一步地说,知道什么时候模型能得到好的结果,什么时候模型将恶化是非常有用的。一些性能度量能得到这些自评估指数。前面例子中的模型1展示出这些信息,但是两种说法又模糊不清,只有其中之一是对的;而模型2无法确定是对是错。再次说明,log似然能正确显示出差异。
然而,有时,一个普遍的性能度量不是一件好事。这通常是因为一些错误比其他的更加糟糕。
15.1.3 识别差异的错误代价
当某些错误代价比其他的更糟糕的时候,简单的正确率指标就变得无用了。伪正比比伪反比的代价更加严重。例如,发现一个根本不存在的癌症付出的是测试成本和精神焦虑;但没发现存在的癌症的代价就是生命。
一个不是那么戏剧性的例子是,垃圾邮件检查中的忽略性质错误和任务性质错误的代价。如果一个垃圾邮件被判定为正常邮件,那么邮件检查软件的使用者就会抱怨;但是如果正常邮件被判定为垃圾邮件,使用者就会非常愤怒。每次垃圾邮件被判定为正常邮件会耗费用户几十秒的时间;但是每次正常邮件被判定为垃圾邮件会给用户造成不便。如果这些现象频繁发生,用户可能不会意识到需要弥补这些错误,从而使得后果越发糟糕。
Mahout分类器评估API的输出在13、14章给出例子。我们在这些章节展示的命令行工具提供评估输出。在一些情况下,常规的诊断方式已经足够;但是一般来说,你需要使用API评估项目的进展。下节将提供如何使用基于mahout评估API的指导。
15.2 分类器评估API
Mahout的分类器评估API有一系列的类,计算不同分类器的性能指标。无论你是否使用这些分类器,这些评估类都十分有用。
Mahout API类支持许多分类器的指标(如,表15.2中展示)。每个指标都将在本节末尾中详细展示。论题主要包括,如何计算性能指标在线下和线上应用中。在线学习算法也提供API,用于评估训练过程中的性能指标。
Table 15.2 mahout支持许多分类器性能指标API
指标 |
支持类 |
Percent correct |
CrossFoldLearner |
Confusion matrix |
ConfusionMatrix, Auc |
Entropy matrix |
Auc |
AUC |
Auc,OnlineAuc,CrossFoldLearner, AdaptiveLogisticRegression |
Log likelihood |
CrossFoldLearner |
Table 15.3 mahout分类器性能评估类
类 |
描述 |
Auc |
|
OnlineAuc |
|
OnlineSummarizer |
|
AbstractVectorClassifier |
OnlineSummarizer |
CrossFoldLearner |
auc(),percentCorrect(), aloglikelihood() |
AdaptiveLogisticRegression |
CrossFoldLearnerauc() |
正如你在表15.2中所见,不是所有的指标都一致支持。支持的类在表15.3中列出。
注意这些类的使用有所不同。学习算法,包括AdaptiveLogisticRegression(自适应逻辑回归)、CrossFoldLearner和AbstractVectorClassifier都提供所学模型的评估方案。相反,Auc和OnlineAuc是独立的类,用给定的得分和参考目标参数计算性能指标。最终,OnlineSummarizer对任意度量指标计算总的统计结果。
下面将详细介绍这些标志。
15.2.1 AUC计算
当评估一个对于二值目标变量产生连续分值的模型,AUC指标是有用的。例如,一个分类器计算一个物体是否包含某个属性的0-1之间的概率,非常适用于AUC计算。AUC分值不需要概率估计值,分值范围巨大的分类器可以使用AUC比较。
你无须理解AUC的深层意义。只要记住AUC是,随机选择正确实例比随机选择错误实例可能性高的概率。一个模型产生的得分与目标变量无关时,它的AUC大约在0.5。尽管完美的模型的AUC是1。AUC在0.7-0.9之间,就可以被认为较好。对于欺诈检测或点击率分析而言,上述区间也是模型的有用精确的结果。AUC为0时,表示模型预测和实际结果正好相反。
实际和理论考虑表明,AUC最好通过如下计算:截取子数据集作为测试集,然后将分类器在测试集上的结果与实际值比较。不幸的是,AUC通常只适用于分值计算的二值目标变量的模型,而不是硬分类器。有些AUC的扩展可是适用于非二值目标变量的情况,但是mahout并不支持。
在mahout中,如果分类器在测试集上的分值和标准目标变量已知,就有很多方式计算AUC。方式包括,org.apache.mahout.classifier.evaluation包中的Auc类。另外,存在OnlineAuc接口的实现——org.apache.mahout.math.stats包的GlobalOnlineAuc类、GroupedOnlineAuc类。有了这些类,赋予测试集的目标变量实际值和分类器计算的分值就可以算出AUC。对于这些类而言,AUC指标都由auc()方法得来。
下列代码展示,使用这两个类,从文件计中读取算分值和目标变量计算AUC。
<p 剩余内容已隐藏,支付完成后下载完整资料
资料编号:[142095],资料为PDF文档或Word文档,PDF文档可免费转换为Word </p |
课题毕业论文、外文翻译、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。