肥宅钓鱼网
当前位置: 首页 钓鱼百科

python画曲线最大值(如何在Python中计算ROC曲线和CAP曲线)

时间:2023-08-10 作者: 小编 阅读量: 3 栏目名: 钓鱼百科

真阳性率与假阳性率是分类器预测概率的对应关系。ROC曲线曲线下面积为0.98,非常惊人,并提供了我们的模型表现出色的信息。然后,按照概率的相反顺序对此zip进行排序,使得最大概率首先出现,然后出现概率较低的概率。让我们将随机模型下的区域视为a。该比率约为0.97,非常接近1,表明我们的模型确实有效。计算1类标签相对于1类标签总数的百分比。CAP曲线分析尽管百分比是93.55%,大于90%,但结果是可以预期的。

点击上方关注,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。我们使用以下步骤计算准确率:

  1. 计算完美模型(aP)下的面积直到随机模型(a)
  2. 计算预测模型(aR)下的面积直到随机模型(a)
  3. 计算准确率(AR)= aR / aP

精度率越接近1,模型越好。

使用auc,我计算了所有区域,然后使用这些值计算了准确率。该比率约为0.97,非常接近1,表明我们的模型确实有效。

使用Plot进行CAP分析

另一种分析CAP曲线的方法包括读取我们上面生成的图。同样的步骤是:

  1. 从x轴绘制50%的垂直线,直到它越过支持向量分类器图。
  2. 在垂直线与训练模型相交的地方,绘制一条水平线,使其与y轴相交。
  3. 计算1类标签相对于1类标签总数的百分比。

一旦我们知道百分比,我们就可以使用以下括号来分析它:

  1. 1.低于60%:垃圾模型
  2. 60% - 70%:模型不佳
  3. 70% - 80%:良好的模式
  4. 80% - 90%:非常好的模型
  5. 超过90%:太好了

请注意,如果该值大于90%,则测试过拟合是一种很好的做法。

首先,我通过计算总测试数据的50%的int值来找到索引。我用它来绘制从这一点到训练模型的垂直虚线( - - - )。接下来,我绘制从这个交点到y轴的直线。我通过将目前观察到的1.0级值除以总类1.0数据点并将其乘以100来确定百分比。我得到的值为93.55%。

CAP曲线分析

尽管百分比是93.55%,大于90%,但结果是可以预期的。当我们在开始研究数据集和分类时,该模型在分割数据方面非常有效。虽然我在测试数据上使用了CAP分析,但我们也可以使用相同的方法来训练数据,并分析我们的模型在训练数据方面的了解程度。

结论

本文概述了如何在Python中计算ROC曲线和CAP曲线以及如何分析它们。

编译出品

    推荐阅读
  • 豆沙紫薯包如何做(豆沙紫薯包怎么做)

    豆沙紫薯包如何做主料:紫薯300g、红豆适量、面粉适量、白糖适量、色拉油适量。红豆煮熟,将其放入料理机中打碎。慢慢搅拌至粘稠的红豆沙凉凉。紫薯去皮,切片。微波三分钟,碾成紫薯泥。加入色拉油一勺。加入面粉、白糖。豆沙馅均分成合适的大小。将紫薯面团放在保鲜膜上,盖上另一个保鲜膜,用擀面杖擀成薄饼。截掉保鲜膜,将豆沙馅放入。将保鲜膜拉起拧紧。将其放在烤盘上。刷蛋液撒白芝麻。烤箱预热180度,烤20分钟即可。

  • 秋季美食(代表秋天的美食有哪些)

    秋季美食大闸蟹:大闸蟹作为季节性美味,金灿灿的蟹黄让人垂涎欲滴。清蒸大闸蟹,是品尝美味的简单途径,起锅、烧水、螃蟹入锅、备好调味料、美味上桌。马上龙虾下档后,螃蟹无缝链接上市,接档武汉人的味蕾。蟹肥膏满,是超过瘾的享受。莲藕汤也是湖北名菜。武汉莲藕,湖北省武汉市特产,具有独特品质,不仅莲藕外观通长肥硕、质细白嫩、藕丝绵长,而且口味香甜、生脆少渣、极富营养,药用食补两宜。

  • 是哪些人守住了江山(一笔窃取了江山)

    当时西征的意义十分重大,涉及到清王朝的安危,由此,很多大臣都认为将来允禵一定是皇太子的不二人选。也有人说,康熙临死之际,只有四子允禛在身旁,隆科多端来了下了毒的人生汤,有允禛递上去服侍先皇服下,然后康熙驾崩。所以,从很多真实的历史角度来看,康熙传位允禛,其实应该是顺理成章,并非靠篡改“一笔”来窃取的江山!

  • 石蛤的做法(关于石蛤的做法)

    跟着小编一起来看一看吧!石蛤的做法石蛤宰杀去皮取肉,洗净后放入搅拌机内搅打成泥,放入生粉、蛋清、盐、味精调拌均匀;豆腐取出,切厚3厘米、长6厘米、宽4厘米的块,用刀将豆腐块的心挖去制成盒形,将调好的石蛤肉酿入豆腐盒内,上笼大火蒸5分钟出笼。芥兰入沸水中大火汆1分钟,取出后放在豆腐旁边。鯠3垍、頭锅樤中放入黄烩汁大火烧开,放入湿淀粉勾芡后出锅,浇在豆腐上。

  • 清蒸童子鸡(做清蒸童子鸡的步骤)

    以下内容希望对你有帮助!清蒸童子鸡先将童子鸡洗干净。童子鸡洗干净之后,把姜、葱塞到鸡肚子里边去。鸡腿菇切成片状,然后用盐水浸泡5分钟,浸泡完之后捞出来沥干水分。把沥干水分之后的鸡腿菇放在锅底,然后将童子鸡放上去。童子鸡放入炖锅之后把枸杞、红枣叶放进去,并加入大概一饭碗的黄酒。大概用蒸锅蒸一个小时,随后加上盐和糖调味即可出锅。

  • 滴滴出行怎么没有出租车选项(看完表演不用担心打不到车)

    2020第二届海南旅游美食购物嘉年华主活动正在火热进行中为做好交通出行服务保障主会场促销活动期间滴滴出行调配网约车运力推出“扫码上车”功能保障参与活动市民和游客的交通出行11月13日晚,市民在日月广场体验滴滴“扫码上车”功能。此外,在本次嘉年华活动期间,滴滴出行在日月广场周边的上车点安排了网约车作为保障车辆,同时配套了打车优惠券,方便市民出行。

  • 怎么检测电池是否换过(使用这个方法检测电池)

    目前两轮电动车上使用的电池,大部分都是密封型免维护铅酸蓄电池。因此是电动车配件、摩托车配件批发商的力争项目之一。每个厂家对于电池的退货有着严格的要求。各个厂家对于经销商产生的误退,有非常严厉的惩罚措施。我们以八个月之内得换新电池为例。当这个回升电压,超过12v,那么说明,该块电池是存在质量问题的。

  • 盘点整容的女星们(有种整容叫女星离婚)

    而黄奕与霍思燕这对昔日姐妹也撕破脸,不惜对簿公堂。但几年后姜凯发稿称,黄奕在自己事业出现危机时离婚,属于落井下石。2011年11月底,黄奕公开了与富二代黄毅清的恋情,2013年黄奕生女,2014年黄奕闹离婚。2014年10月,黄奕正式离婚。30岁的刘敏涛正处于事业巅峰期,但她选择结婚生子并隐退。就这样糊里糊涂地,闫妮拿到女儿抚养权之后就离婚了。爸爸的提醒,加上丈夫的背叛,加速了马伊琍的产后复出进程。

  • 美甲营养液使用方法(美甲营养液使用步骤)

    清理完死皮之后,用湿巾把指甲边缘清理的死皮打扫干净。接着在指甲边缘涂上一层营养油,补充维生素和营养元素,令指皮更光滑漂亮。双层有一定的加固效果,可以根据自己喜欢的深浅颜色选择涂抹几层。有花纹绘制的在涂抹完之后绘制花纹,然后放在烤灯里照干,接着再涂抹一层封层照干即可,封层可以延长美甲的时间。美甲后是不建议做一些重活的,像洗碗、洗衣服等,可以带塑胶手套进行,避免对手部和指甲造成伤害。

  • 大棚西红柿种植方法(大棚种植西红柿的种植技术和管理)

    如何预防西红柿落花落果的情况?西红柿种植在保证质量的前提下,提高产量,农民朋友能够多挣一些。希望这些可以帮到更多的农民朋友,收藏分享给更多的朋友。您有什么其他好的方法或者点子,可以在下方留言,欢迎大家积极的讨论、交流。大家如有疑问可在评论区留言讨论,可获取一对一指导。