点击上方关注,All in AI中国
虽然有很多指标可以用来衡量机器学习模型的性能,如Accuracy和Recall,但ROC曲线和CAP曲线对于分类问题非常有用。在本文中,我将探讨ROC和CAP是什么以及如何使用Python和虚拟数据集来创建这些曲线。
即使在探索了很多关于CAP Curve的文章之后,我还是找不到一篇详细解释如何创建它们的文章,这同时也是我写这篇文章的原因。
完整的代码可以从以下GitHub存储库中看到
https://github.com/kb22/ML-Performance-Evaluation
数据集
我创建了自己的数据集。主要有两个特性,年龄和经验。基于这两个特征,输出标签为0.0,表示小于$200k的薪水,1.0表示薪水大于或等于$200k
完整的数据集
绿点代表薪水超过或等于20万美元,红点代表薪水低于20万美元。我还确保了两个类之间存在一些重叠,因此数据会更加真实,不易分离。
分类
首先,我将数据分为两组,70%的训练数据和30%的测试数据。我使用支持向量分类器和线性内核来训练数据,然后在测试数据上测试模型。该模型的得分达到95%。
测试数据分类
绩效评估
受试者工作特征曲线 (ROC)
又称为感受性曲线,是测量分类模型性能的绝佳方法。真阳性率(TPR)与假阳性率(FPR)是分类器预测概率的对应关系。然后,计算图下的面积。
曲线下面积越大,区分类别的模型就越好。
导入文件并创建基线
首先,我从sklearn.metrics导入roc_curve和auc,这样我就可以创建ROC曲线并计算曲线下面积。我还将数字大小定义为20x12,并创建从(0,0)到(1,1)的基线。
值r--表示该线的颜色为红色,它是一条虚线( - - - - - - - - - - - - - )。
计算概率并确定TPR和FPR
接下来,使用predict_proba计算预测的概率并将其存储在probs中。它由两列组成,第一列包括第一类概率(薪水<$200k),第二列包括第二类概率(薪水≥$200k)。所以,我使用probs [:,1]选择第二类的概率。
roc_curve生成roc曲线并返回fpr、tpr和阈值。最后,使用fpr和tpr作为auc内部的输入,我计算该模型曲线下的面积,并将其保存在roc_auc中。 roc_auc现在具有由支持向量分类器生成的曲线下面积。
绘制ROC曲线
我使用fpr作为x值绘制曲线,使用tpr作为y值绘制曲线,颜色为绿色,线宽为4。此曲线的标签包括曲线下面积, x轴标签设置为假阳性率,y轴标签设置为真阳性率。标题是接收器操作特性,图例显示在图的右下角。文本大小设置为16。
ROC曲线
曲线下面积为0.98,非常惊人,并提供了我们的模型表现出色的信息。
累积精度曲线(CAP)
CAP曲线尝试分析如何使用最少的尝试次数有效地识别给定类的所有数据点。在这个数据集中,我试图确定支持向量分类器能够多快地识别薪水大于或等于$ 200K的个人。
计算每个类的人数
首先,我找到测试数据中的总数据点(60)并将其保存在变量total中。测试标签是0.0或1.0,所以如果我添加所有值,我将获得类1.0(31)的计数,我可以将其保存在class_1_count中。从总数中减去这个数字会得到class_0_count(29)。
我还将数字大小设置为20x12,使其大于正常值。
随机模型
首先,我们绘制一个随机模型,该模型基于1.0类的正确检测将线性增长的事实。
颜色为红色,样式为虚线,使用 - 定义。我将标签设置为随机模型。
随机模型
完美模型
接下来,我绘制完美的模型。一个完美的模型是一个能够检测与1.0级数据点相同次数的所有1.0级数据点的模型。完美模型需要31次尝试来识别31个1.0级数据点。
我把情节涂成灰色,标签设置为完美模型。
完美模型
训练模型(支持向量分类器)
最后,我绘制了支持向量分类器的结果。首先,就像在ROC曲线中一样,我在变量probs中提取类1.0的概率。
我把probs和y_test压缩在一起。然后,按照概率的相反顺序对此zip进行排序,使得最大概率首先出现,然后出现概率较低的概率。我只提取数组中的y_test值并将其存储在model_y中。
np.cumsum()创建一个值数组,同时将数组中的所有先前值累加到当前值。例如,如果我们有一个数组[1,1,1,1,1]。应用cumsum将产生[1,2,3,4,5]。我用它来计算y值。此外,我们需要在数组前面为起点(0,0)追加0。 x值的范围从0到总 1。我添加了一个,因为np.arange()不包括终点,我希望端点是total。
然后我用蓝色绘制结果并标记支持向量分类器。我还在剧情中包括了另外两个模型。
支持向量分类器
使用曲线下面积进行CAP分析
分析CAP曲线的第一种方法是使用曲线下面积。让我们将随机模型下的区域视为a。我们使用以下步骤计算准确率:
计算完美模型(aP)下的面积直到随机模型(a)计算预测模型(aR)下的面积直到随机模型(a)计算准确率(AR)= aR / aP精度率越接近1,模型越好。
使用auc,我计算了所有区域,然后使用这些值计算了准确率。该比率约为0.97,非常接近1,表明我们的模型确实有效。
使用Plot进行CAP分析
另一种分析CAP曲线的方法包括读取我们上面生成的图。同样的步骤是:
从x轴绘制50%的垂直线,直到它越过支持向量分类器图。在垂直线与训练模型相交的地方,绘制一条水平线,使其与y轴相交。计算1类标签相对于1类标签总数的百分比。一旦我们知道百分比,我们就可以使用以下括号来分析它:
1.低于60%:垃圾模型60% - 70%:模型不佳70% - 80%:良好的模式80% - 90%:非常好的模型超过90%:太好了请注意,如果该值大于90%,则测试过拟合是一种很好的做法。
首先,我通过计算总测试数据的50%的int值来找到索引。我用它来绘制从这一点到训练模型的垂直虚线( - - - )。接下来,我绘制从这个交点到y轴的直线。我通过将目前观察到的1.0级值除以总类1.0数据点并将其乘以100来确定百分比。我得到的值为93.55%。
CAP曲线分析
尽管百分比是93.55%,大于90%,但结果是可以预期的。当我们在开始研究数据集和分类时,该模型在分割数据方面非常有效。虽然我在测试数据上使用了CAP分析,但我们也可以使用相同的方法来训练数据,并分析我们的模型在训练数据方面的了解程度。
结论
本文概述了如何在Python中计算ROC曲线和CAP曲线以及如何分析它们。
编译出品
机器学习检测指标选择(衡量机器学习模型性能)
2024-11-24 10:47:18 作者:樱婲涙 网址:https://m.xinb2b.cn/know/nrv293133.html
- 阿玛尼有哪几款香水(阿玛尼绝对密码)
- 2024-11-25阿玛尼绝对密码阿玛尼绝对密码GiorgioArmaniArmaniCodeAbsolu前调:橘子苹果中调:橙花肉豆蔻胡萝卜籽后调:绒面革零陵香豆香草木质香①前调果香蛮清新的,柑橘与苹果糅合的一个果香调,带有一点水感。
- 解密黄家驹的经典(两代人的摇滚记忆)
- 2024-11-25两代人的摇滚记忆每年的6月23日,黄家驹的墓前都有很多人来祭拜这一天,对很多人来说都是悲伤的因为这一天,被张学友视为偶像,被成龙看做为香港音乐的骄傲,影响了林俊杰等无数音乐艺人的黄家驹永远的离开了这个世界!黄家驹出生。
- 小学生的格林童话故事(格林童话狼和七只小山羊)
- 2024-11-25格林童话狼和七只小山羊格林童话·《狼和七只小山羊》从前有只老山羊它生了七只小山羊,并且像所有母亲爱孩子一样爱它们一天,它要到森林里去取食物,便把七个孩子全叫过来,对它们说:“亲爱的孩子们,我要到森林里去一下,你们一定要提防。
- 婚礼鲜花设计(这些创意婚礼路引更个性)
- 2024-11-25这些创意婚礼路引更个性如今,大多婚礼都有新娘挽着父亲的手走向仪式台的流程,因此婚礼走道的布置非常重要下面这些创意婚礼路引,让你的婚礼更有个性!1、创意婚礼路引——卡片:简单又易于制作的爱心卡片纸需要彩纸和竹签就能完美打造小。
- 朱马别克vs姚红刚(姚红刚VS居马别克三番战)
- 2024-11-25姚红刚VS居马别克三番战6月22日昆仑决·子弹飞格斗冠军赛将在北京举行,这次的压轴赛为姚红刚VS居马别克间的三番对决姚红刚与居马别克都是早期进入综合格斗的中国选手,姚红刚是摔跤手出身有“鬼跤”之称居马别克则是继张铁泉后第二位。
- 长安逸动plus哪个配置性价比最高(10万左右的家用车)
- 2024-11-2510万左右的家用车胡老师,长安逸动plus1.6L顶配和1.4t低配哪款性价比高一点,求教,谢谢逸动卖的也不错,这个作为10万左右的家用车啊,它的这个性价比十足,它有两个动力总成,一个是1.6(L)的一个是1.4T的,。
- 阿富汗特种兵击落米17(印米-17是被自己人击落)
- 2024-11-25印米-17是被自己人击落2月27日,印度一架负责搜救被击落的米格-21飞行员阿比南丹的米-17在执行任务时坠毁机上两名飞行员赛达斯·瓦什特和尼纳德·曼达瓦以及搭载的特战队员共六人死亡根据印度媒体自己的报道,这架米-17很可能。
- 鞠婧祎不愧四千年难遇第一美女(4000年一遇的美女鞠婧祎)
- 2024-11-254000年一遇的美女鞠婧祎导语:4000年一遇的鞠婧祎,体重只有76斤,身材也十分娇小,看到她吃饭的样子瞬间就懂了爱美是一个女人的天性,而她们往往以瘦为美在娱乐圈中,女明星往往都是很瘦的,凡是胖了一点的,总会遭到别人的嘲讽,毕。
- 伊利金领冠奶瓶怎么做凳子
- 2024-11-25伊利金领冠奶瓶怎么做凳子工具材料:胶带,布,软垫操作方法01首先,将3个奶粉罐摆成一个三角形用胶带纸将这三个奶粉罐牢牢地固定在一起02然后,用布在外圈裹上一层03然后按照奶粉罐的最外圈在纸板上花线,给小凳子用纸板做一个盖子0。
- 计算机简史图解(终于有大佬把34)
- 2024-11-25终于有大佬把34计算机的历史算盘和机械计算机有很多民族自豪感爆棚的兄弟会把算盘当成计算机的起源,还有爆破天的兄弟会把阴阳当成二进制0和1的起源,我觉得这件事儿就有点儿不靠谱了如果非要追究计算机的鼻祖,那就得讲讲17世。
- 防卫过当导致对方多人重伤(男子玩真心话大冒险)
- 2024-11-25男子玩真心话大冒险“真心话大冒险”是不少年轻人在聚会时经常选择的游戏无论是真心话还是大冒险都存在一定风险近日南昌市东湖区人民法院就审结了一起由“真心话大冒险”引发的生命权、身体权、健康权纠纷案件案件详情2021年9月4。
- 蒸苹果吃了有什么好处(蒸苹果吃了有啥好处)
- 2024-11-25蒸苹果吃了有啥好处增强身体素质蒸苹果的性质更温和,人们吃了它以后能把它含有的丰富维生素和果酸以及氨基酸与矿物质等尽快吸收和利用,特别是那些处于发育期的婴幼儿或青少年,在吃蒸苹果以后能吸收丰富营养,可满足身体正常代谢时对。