怎么修改网站的域名哈尔滨网站建设科技公司
怎么修改网站的域名,哈尔滨网站建设科技公司,长春网站建设优势吉网传媒好,迪庆定制网站建设费用在我们建立一个学习算法时#xff0c;或者说训练一个模型时#xff0c;我们总是希望最大化某一个给定的评价指标#xff08;比如说准确度Acc#xff09;#xff0c;但算法在学习过程中又会尝试优化某一个损失函数#xff08;比如说均方差MSE或者交叉熵Cross-entropy…
在我们建立一个学习算法时或者说训练一个模型时我们总是希望最大化某一个给定的评价指标比如说准确度Acc但算法在学习过程中又会尝试优化某一个损失函数比如说均方差MSE或者交叉熵Cross-entropy。
那为什么不把评价指标matric作为学习算法的损失函数loss呢
抛开复杂的数学我们可以这么理解机器学习的评估函数主要有这三个作用 表现评估模型表现如何通过评估指标能快速了解我们在做什么 模型优化模型是否适合是否可以改进哪种模型最接近我们的数据点 统计决策模型是否足以让我们使用这个模型通过我们严格的假设检验标准了吗?
损失函数更多用于模型训练时的优化比如梯度下降更关注可微可导、是否为凸函数等等数学性质评价指标更关注于是否能够反应任务需求、是否符合统计假设检验此外评价指标也会用于模型之间的对比。
这么解释可能不严谨但是不妨碍理解。今天的文章我们就来聊聊机器学习中的评价指标。
回归Regression算法指标X Mean Absolute Error 平均绝对误差 Mean Squared Error 均方误差 Root Mean Squared Error 均方根误差 Coefficient of determination 决定系数
以下为一元变量和二元变量的线性回归示意图 怎样来衡量回归模型的好坏呢我们自然而然会想到采用残差实际值与预测值差值的均值来衡量即 用残差的均值合理吗 当实际值分布在拟合曲线两侧时对于不同样本而言 有正有负相互抵消因此我们想到采用预测值和真实值之间的距离来衡量。
1.1 平均绝对误差
MAE平均绝对误差MAEMean Absolute Error又被称为 L1范数损失。 MAE有哪些不足 MAE虽能较好衡量回归模型的好坏但是绝对值的存在导致函数不光滑在某些点上不能求导可以考虑将绝对值改为残差的平方这就是均方误差。
1.2 均方误差 MSE
均方误差MSEMean Squared Error又被称为 L2范数损失。 还有没有比MSE更合理一些的指标 由于MSE与我们的目标变量的量纲不一致为了保证量纲一致性我们需要对MSE进行开方。
1.3 均方根误差 RMSE RMSE有没有不足的地方 有没有规范化无量纲化的指标 上面的几种衡量标准的取值大小与具体的应用场景有关系很难定义统一的规则来衡量模型的好坏。比如说利用机器学习算法预测上海的房价RMSE在2000元我们是可以接受的但是当四五线城市的房价RMSE为2000元我们还可以接受吗下面介绍的决定系数就是一个无量纲化的指标。
1.4 决定系数
决定系数又称为 score反映因变量的全部变异能通过回归关系被自变量解释的比例。
变量之所以有价值就是因为变量是变化的。什么意思呢比如说一组因变量为[0, 0, 0, 0, 0]显然该因变量的结果是一个常数 0我们也没有必要建模对该因变量进行预测。假如一组的因变量为[1, 3, 7, 10, 12]该因变量是变化的也就是有变异因此需要通过建立回归模型进行预测。这里的变异可以理解为一组数据的方差不为 0。 如果结果是0就说明模型预测不能预测因变量。 如果结果是1就说明是函数关系。 如果结果是0-1之间的数就是我们模型的好坏程度。
化简上面的公式分子就变成了我们的均方误差MSE下面分母就变成了方差 以上评估指标有没有缺陷如果有该怎样改进 以上的评估指标是基于误差的均值对进行评估的均值对异常点outliers较敏感如果样本中有一些异常值出现会对以上指标的值有较大影响即均值是非鲁棒的。
1.5 解决评估指标鲁棒性问题
我们通常用以下两种方法解决评估指标的鲁棒性问题鲁棒性也就是健壮和强壮的意思。它也是在异常和危险情况下系统生存的能力 剔除异常值设定一个相对误差当该值超过一定的阈值时则认为其是一个异常点剔除这个异常点将异常点剔除之后。再计算平均误差来对模型进行评价。 使用误差的分位数来代替如利用中位数来代替平均数。
分类(Classification)算法指标 混淆矩阵 Confusion Matrix 准确度/精度 Accuracy 准确率查准率 Precision 召回率查全率Recall P-R曲线 Fβ Score ROC AUC KS Kolmogorov-Smirnov
2.1 混淆矩阵 Confusion Matrix 从上图的最左边的表格可以很清楚地显示4个区域内样本的含义沿着正对角线可知样本的预测标签和实际标签都是一致的因此在第二个表格中将其标记为True负对角线上预测标签和真实标签不一致标记为False在第三个表格中结合预测标签的类别(Positive,Negative)和各个区域的TrueFalse标记得到了经常被搞混的4个缩写不需要去记忆记住上述推演过程即可) True positive (TP) 真实值为 Positive预测正确预测值为 Positive True negative (TN) 真实值为 Negative预测正确预测值为 Negative False positive (FP) 真实值为 Negative预测错误预测值为 Positive第一类错误 Type I error。 False negative (FN) 真实值为 Positive预测错误预测值为 Negative第二类错误 Type II error。
2.2 准确度/准确率/精度
错误率错误率1-精度和精度是分类任务重最常用的两种性能度量指标既适用于二分类任务也适用于多分类任务。错误率是分类错误的样本数占样本总数的比例精度则是分类正确的样本数占样本总数的比例。
Acc 预测正确的样本的占总样本的比例取值范围为[0,1]取值越大模型预测能力越好。精度评价指标对平等对待每个类别即每一个样本判对 (0) 和判错 (1) 的代价都是一样的。 其中 用混淆矩阵来解释Acc就是混淆矩阵中正对角线上被分类正确样本之和正样本模型预测也为正样本(TP) 负样本模型预测也为负样本(TN)。 精度有什么缺陷什么时候精度指标会失效 对于有倾向性的问题往往不能用精度指标来衡量。 比如判断空中的飞行物是导弹还是其他飞行物很显然为了减少损失我们更倾向于相信是导弹从而采用相应的防护措施。此时判断为导弹实际上是其他飞行物与判断为其他飞行物实际上是导弹这两种情况的重要性是不一样的。 对于样本类别数量严重不均衡的情况也不能用精度指标来衡量。 比如银行客户样本中好客户990个坏客户10个。如果一个模型直接把所有客户都判断为好客户得到精度为99%但这显然是没有意义的。
对于以上两种情况单纯根据Accuracy来衡量算法的优劣已经失效。这个时候就需要对目标变量的真实值和预测值做更深入的分析。
2.3 准确率查准率 Precision
Precision 是分类器预测的正样本中预测正确的比例取值范围为[0,1]取值越大模型预测能力越好。 可以理解为所有“我认为真的”中有多少是“真的”。 2.4 召回率查全率Recall
Recall 是分类器所预测正确的正样本占所有正样本的比例取值范围为[0,1]取值越大模型预测能力越好。 可以理解为所有的“真的”中有多少“我认为真的”。 Precision和Recall应用场景 地震的预测
对于地震的预测我们希望的是Recall非常高也就是说每次地震我们都希望预测出来。这个时候我们可以牺牲Precision。情愿发出1000次警报把10次地震都预测正确了也不要预测100次对了8次漏了2次。
“别漏报”“宁错拿一万不放过一个”分类阈值较低。 嫌疑人定罪
基于不错怪一个好人的原则对于嫌疑人的定罪我们希望是非常准确的。即使有时候放过了一些罪犯但也是值得的。因此我们希望有较高的Precision值可以合理地牺牲Recall。
“别误伤”“宁放过一万不错拿一个”“疑罪从无”分类阈值较高。
举例某一家互联网金融公司风控部门的主要工作是利用机器模型抓取坏客户。互联网金融公司要扩大业务量尽量多的吸引好客户此时风控部门该怎样调整Recall和Precision 如果公司坏账扩大公司缩紧业务尽可能抓住更多的坏客户此时风控部门该怎样调整Recall和Precision
如果互联网公司要扩大业务量为了减少好客户的误抓率保证吸引更多的好客户风控部门就会提高阈值从而提高模型的查准率Precision“别误伤”同时导致查全率Recall下降。如果公司要缩紧业务尽可能抓住更多的坏客户风控部门就会降低阈值从而提高模型的查全率Recall“别漏报”但是这样会导致一部分好客户误抓从而降低模型的查准率 Precision。
根据以上几个案我们知道随着阈值的变化Recall和Precision往往会向着反方向变化这种规律很难满足我们的期望即Recall和Precision同时增大。
有没有什么方法权衡Recall和Precision 的矛盾 我们可以用一个指标来统一Recall和Precision的矛盾即利用Recall和Precision的加权调和平均值作为衡量标准。
2.5 P-R曲线
Precision和Recall 是互相影响的理想情况下肯定是做到两者都高但是一般情况下Precision高、Recall就低 Recall高、Precision就低。
在很多情形下我们可以根据学习模型的预测结果对样例进行排序排在前面的是模型认为的“最可能”是正例的样本排在最后的则是模型认为的“最不可能”是正例的样本。按此顺序逐个把样本作为正例进行预测则每次可以计算出当前的查全率Recall和查准率Precision。以查准率为纵轴、查全率为横轴作图就得到了查准率-查全率曲线简称“P-R曲线”。 P-R曲线可以直观地显示机器学习模型在样本总体上的查全率和查准率。在进行比较时若一个模型的P-R曲线别另外一个模型的曲线完全“包住”则后者优于前者。例如上图中A模型性能优于C如果两个模型的P-R曲线发生了交叉则难以一般性地断言两者优劣只能在具体的查准率和查全率下进行比较。
2.6 Fβ Score
在一些应用中对查准率和查全率的重视程度不同。例如在商品推荐系统中为了尽可能少打扰用户更希望推荐内容的确是用户感兴趣的此时查准率更重要而在逃犯信息中更希望尽可能少漏掉逃犯此时查全率更重要。
为了均衡两个指标我们可以采用Precision和Recall的加权调和平均weighted harmonic mean来衡量即Fβ ScoreFβ能表达出对查准率/查全率的不同偏好公式如下 β表示权重 通俗的语言就是β 越大Recall的权重越大 β 越小Precision的权重越大。
β1时退化为F1指标。 由于Fβ Score 无法直观反映数据的情况同时业务含义相对较弱实际工作用到的不多。
2.7 ROC 和 AUC
很多机器学习算法为测试样本产生一个实值或概率预测然后将这个预测值与一个分类阈值threshod进行比较若大于阈值则分为正类否则为反类。
例如神经网络在一般情形下对每个测试样本预测出一个[0.0 , 1.0]之间的实值然后将这个值与0.5进行比较大于0.5则判为正例否则为反例。这个实值或概率预测结果的好坏直接决定了机器学习模型的泛化能力。
实际上根据这个实值或者概率预测结果我们可以讲测试样本进行排序“最可能”是正例的排在最前面“最不可能”是正例的排在最后面。这样分类过程就相当于在这个排序中以某个“截断点”cut point将样本分为两部分前一部分判做正例后一部分判做反例。
在不同的应用任务中我们可以根据任务需求来采用不同的截断点例如若我们更重视“查准率”则可选择排序中考前的位置进行截断若更重视“查全率”则可选择靠后的位置进行截断。
因此排序本身的质量好坏体现了综合考虑机器学习模型在不同任务下的“期望泛化性能”的好坏或者说“一般情况下”泛化性能的好坏。
ROC曲线Receiver Operating Characteristic翻译为接受者操作特性曲线就是从这个角度出发来研究模型泛化性能的有力工具。
2.7.1 ROC
ROC曲线为 FPR 与 TPR 之间的关系曲线这个组合以 FPR 对 TPR即是以代价 (costs) 对收益 (benefits)显然收益越高代价越低模型的性能就越好。
ROC曲线的 轴为假阳性率FPR即在所有的负样本中分类器预测错误的比例。 ROC曲线的 轴为真阳性率TPR即在所有的正样本中分类器预测正确的比例TPR Recall 。 对比TPR和FPR的计算公式我们发现其分母要么是全部的真实正类或者全部的真实的负类增加真实正类样本的个数不会影响FPR的计算反之亦然互不干扰因此我们常说TPR和FPR对于样本不平衡不敏感。
为了更好地理解ROC曲线我们使用具体的实例来说明
如在医学诊断的主要任务是尽量把生病的人群都找出来也就是TPR越高越好。而尽量降低没病误诊为有病的人数也就是FPR越低越好。
不难发现这两个指标之间是相互制约的。如果某个医生对于有病的症状比较敏感稍微的小症状都判断为有病那么他的TPR应该会很高但是FPR也就相应地变高。最极端的情况下他把所有的样本都看做有病那么TPR达到1FPR也为1。
我们以FPR为横轴TPR为纵轴得到如下ROC空间 我们可以看出 左上角的点(TPR1FPR0)为完美分类也就是这个医生医术高明诊断全对 点A(TPRFPR)医生A的判断大体是正确的 中线上的点B(TPRFPR),也就是医生B全都是蒙的蒙对一半蒙错一半 下半平面的点C(TPRFPR)这个医生说你有病那么你很可能没有病医生C的话我们要反着听为真庸医。
上图中一个阈值得到一个点。现在我们需要一个独立于阈值的评价指标来衡量这个医生的医术如何也就是遍历所有的阈值得到 ROC 曲线。
假设下图是某医生的诊断统计图为未得病人群上图蓝色和得病人群下图红色的模型输出概率分布图横坐标表示模型输出概率纵坐标表示概率对应的人群的数量显然未得病人群的概率值普遍低于得病人群的输出概率值即正常人诊断出疾病的概率小于得病人群诊断出疾病的概率。
竖线代表阈值。显然图中给出了某个阈值对应的混淆矩阵通过改变不同的阈值得到一系列的混淆矩阵进而得到一系列的TPR和FPR绘制出ROC曲线。
阈值为1时不管你什么症状医生均未诊断出疾病预测值都为N此时 位于左下。阈值为 0 时不管你什么症状医生都诊断结果都是得病预测值都为P此时位于右上。 与P-R曲线类似在进行模型比较时如果一个模型的ROC曲线被另外一个模型的曲线完全“包住”则可断言后者的性能优于前者若两个模型的ROC曲线发生交叉则难以一般性地断言两者优劣。此时如果一定要进行比较则较为合理的判据是ROC曲线下的面积即AUC。
2.7.2 AUC
AUCArea Under Curve的简称其中的Curve就是 ROC。AUC 值为 ROC 曲线所覆盖的区域面积。也就是说ROC是一条曲线AUC是一个面积值。显然AUC越大分类器分类效果越好。 AUC 1是完美分类器。 0.5 AUC 1优于随机猜测。有预测价值。 AUC 0.5跟随机猜测一样例丢铜板没有预测价值。 AUC 0.5比随机猜测还差但只要总是反预测而行就优于随机猜测。注对于AUC小于 0.5 的模型我们可以考虑取反模型预测为positive那我们就取negtive这样就可以保证模型的性能不可能比随机猜测差。
以下为ROC曲线和AUC值的实例 AUC的物理意义
AUC的物理意义为正样本的预测结果大于负样本的预测结果的概率。所以AUC反应的是分类器对样本的排序能力。另外值得注意的是AUC对样本类别是否均衡并不敏感这也是不均衡样本通常用AUC评价分类器性能的一个原因。
为什么说 ROC 和AUC都能应用于非均衡的分类问题 ROC曲线只与横坐标 (FPR) 和纵坐标 (TPR) 有关系 。我们可以发现TPR只是正样本中预测正确的概率而FPR只是负样本中预测错误的概率和正负样本的比例没有关系。因此 ROC 的值与实际的正负样本比例无关因此既可以用于均衡问题也可以用于非均衡问题。而 AUC 的几何意义为 ROC曲线下的面积因此也和实际的正负样本比例无关。
举例小明一家四口小明5岁姐姐10岁爸爸35岁妈妈33岁建立一个逻辑回归分类器来预测小明家人为成年人概率。以下为三种模型的输出结果求三种模型的 AUC AUC更多的是关注对计算概率的排序关注的是概率值的相对大小与阈值和概率值的绝对大小没有关系。例子中并不关注小明是不是成人而关注的是预测为成人的概率的排序。 AUC只关注正负样本之间的排序并不关心正样本内部或者负样本内部的排序。这也体现了AUC的本质任意个正样本的概率都大于负样本的概率的能力。
例子中AUC只需要保证小明和姐姐爸爸和妈妈小明和姐姐在前2个排序爸爸和妈妈在后2个排序而不会考虑小明和姐姐谁在前或者爸爸和妈妈谁在前 。AUC只与概率的相对大小概率排序有关和绝对大小没关系。由于三个模型概率排序的前两位都是未成年人小明姐姐后两位都是成年人妈妈爸爸因此三个模型的AUC都等于1。
以下已经对分类器输出概率从小到大进行了排列哪些情况的AUC等于1哪些情况的AUC为0其中背景色表示True value红色表示成年人蓝色表示未成年人。 D模型, E模型和F模型的AUC值为1C 模型的AUC值为0爸妈为成年人的概率小于小明和姐姐显然这个模型预测反了。
AUC的计算 法1AUC为ROC曲线下的面积那我们直接计算面积可得。面积为一个个小的梯形面积曲线之和。计算的精度与阈值的精度有关 。 法2根据AUC的物理意义我们计算正样本预测结果大于负样本预测结果的概率。取n1* n0 (n1为正样本数n0为负样本数)个二元组每个二元组比较正样本和负样本的预测结果正样本预测结果高于负样本预测结果则为预测正确预测正确的二元组占总二元组的比率就是最后得到的AUC。时间复杂度为O(N*M)。 法3我们首先把所有样本按照score排序依次用rank表示他们如最大score的样本rankn (nn0n1其中n0为负样本个数n1为正样本个数)其次为n-1。那么对于正样本中rank最大的样本rank_max有n1-1个其他正样本比他score小那么就有(rank_max-1)-(n1-1)个负样本比他score小。其次为(rank_second-1)-(n1-2)。最后我们得到正样本大于负样本的概率如下其计算复杂度为O(NM) 下面有一个简单的例子 真实标签为 (1, 0, 0, 1, 0) 预测结果10.9, 0.3, 0.2, 0.7, 0.5 预测结果20.9, 0.3, 0.2, 0.7, 0.8
分别对两个预测结果进行排序并提取他们的序号 结果1 (5, 2, 1, 4, 3) 结果2 (5, 2, 1, 3, 4)
对正分类序号累加 结果1SUM正样本rank(score))549 结果2SUM正样本rank(score))538
计算两个结果的AUC 结果1AUC (9-2*3/2)/61 结果2AUC (8-2*3/2)/60.833
2.8 KS Kolmogorov-Smirnov
KS值是在模型中用于区分预测正负样本分隔程度的评价指标一般应用于金融风控领域。
与ROC曲线相似ROC是以FPR作为横坐标TPR作为纵坐标通过改变不同阈值从而得到ROC曲线。
而在KS曲线中则是以阈值作为横坐标以FPR和TPR作为纵坐标KS曲线则为TPR-FPRKS曲线的最大值通常为KS值。
为什么这样求KS值呢 我们知道当阈值减小时TPR和FPR会同时减小当阈值增大时TPR和FPR会同时增大。而在实际工程中我们希望TPR更大一些FPR更小一些即TPR-FPR越大越好即KS值越大越好。
可以理解TPR是收益FPR是代价KS值是收益最大。图中绿色线是TPR、蓝色线是FPR。 好了关于机器学习常用评估指标就说到这里在后续的学习中我们还会遇到更多的指标到时候我们再一一解释。相信大家已经有些云里雾里了尤其是关于混淆矩阵和ROCAUC。可以反复多看几遍慢慢体会也推荐看看周志华老师《机器学习》西瓜书里关于这一部分的描述。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/90270.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!