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

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曲线以及如何分析它们。

编译出品

    推荐阅读
  • 偏偏宠爱正版淘宝有卖吗 偏偏宠爱正版的防伪

    偏偏宠爱正版淘宝有卖,《偏偏宠爱》是晋江文学城的一本爱情类网络小说,作者是藤萝为枝,在当当、淘宝、京东上均可购买。网络小说是依托网络基础平台,由网络作家发表的小说。它是随着网络的快速发展而出现的一种新兴小说类型。网络小说风格自由,题材不限,发表阅读方式都较为简单,主要题材以玄幻和言情居多。网络小说的语法会更近口语并充斥网络流行语,另外除了文字内容,利用符号图案排版等进行变化也是特色。

  • 槿字取名的寓意是啥(槿字取名的寓意是什么)

    我们一起去了解并探讨一下这个问题吧!槿字取名的寓意是啥名字中,一般选用“瑾”。槿字取名寓意如下:槿,读作jǐn,本意是指开花时间只有一个白天的木本植物,即木槿,锦葵科,落叶灌木。出自五代张正见的《白头吟》。瑾,读作jǐn,表示美玉,如瑾瑕(瑾,美玉;瑕,有疵的玉。比喻美丑,优劣),出自《左传·宣公十五年》:“谚曰:‘高下在心,川泽纳污,山薮藏疾,瑾瑜匿瑕’”。

  • 孕妇感冒对胎儿有影响吗 孕妇感冒对胎儿有影响吗孕中期

    孕妇感冒对胎儿的影响1、胎儿畸形感冒由流感病毒引起的,孕妇感冒对胎儿的影响就表现在流感病毒对胎儿的影响上。影响胎儿器官发育,造成胎儿畸形或先天性缺陷。整个怀孕期间,药物不容易被排泄和解毒,会有蓄积性的中毒现象发生,再孕早期,药物对胎儿器官的形成也有一定的影响。

  • 上海滩演员现状如何(上海屋檐下演员今昔照)

    并选择了上海电影制片厂的众多老戏骨出演剧中的角色,他们精湛的表演,成为了这部电视剧的最大亮点。匡复入狱时,将杨彩玉母女托付给了林志成照顾。而当他们得知匡复已去世的消息后,两个苦命人走到了一起。却没想到10年后,匡复竟意外回来了。如今秦怡100岁了,是“人民艺术家”国家荣誉称号的获得者。如今朱曼芳81岁,依然优雅迷人。2001年3月29日,张伐因病去世,享年82岁。于飞已于1998年去世了,享年76岁。

  • 坚持锻炼的句子(关于坚持锻炼的说说)

    真佩服自己毅力,每天这么累,仍然坚持晚上锻炼身体——出去玩耍。九月八号,锻炼五十分钟,热身十分,仰卧起九组,健身操四组,放弃俩个不虐动作直接虐到爆炸。今天答谢宴,吃好吃的吃多了。健身期间没吃过几次好吃的的我。回家想了点她她。还有最满意的一张蓝天羽毛。为拍戏健身,后来一直坚持锻炼,妥妥的八块腹肌,为这份坚持和敬业点赞。

  • 14款第八代索纳塔(体验第10代索纳塔)

    全新一代的索纳塔为我们提供有2.0T8AT黄金动力组合,这也让消费者对它给予了很高的期待,接下来我们就借着体验第10代索纳塔自动豪华版的机会,跟大家聊一聊这款车型。自动豪华版车型在动力方面配备的是2.0T涡轮增压发动机,最大输出功率为240马力,峰值扭矩为353牛米,传动系统方面配备的是8速手自一体变速箱。

  • 桂枝芍药知母汤是什么(桂枝芍药知母汤有什么功能)

    跟着小编一起来看一看吧!桂枝芍药知母汤是什么桂枝芍药知母汤是一种汤药,该方含麻黄附子汤、芍药甘草附子汤、甘草附子汤、桂枝加附子汤(去枣)。主要功能是祛风除湿、通阳散寒、佐以清热。主治诸肢节疼痛、身体尪羸、脚肿如脱、头眩短气、温温欲吐者。

  • 唐山大地震电影剧情(唐山大地震电影简介)

    唐山大地震电影剧情影片《唐山大地震》是根据张翎的小说《余震》改编而成,由导演冯小刚执导。徐帆、张静初、李晨、陈道明、陆毅、张国强和陈瑾等联袂出演。影片于2010年7月12日在中国河北省唐山市举行全球首映式。1969年,卡车司机方大强在祈祷中迎来了自己的龙凤胎儿女:方登和方达。母女、姐弟从此天各一方,直到32年后的汶川大地震,他们的生命轨迹才重新走到一起。

  • 简爱是怎么成功的(简爱为什么能成为经典)

    孤寂的小简爱受尽了别人的白眼,十岁时被送往管教严格的罗伍德孤儿院。妹妹艾米丽因弟弟的去世伤心过度,感染肺结核却没有及时治疗,于1848年12月去世。在青霉素问世之前,肺结核夺去了无数欧洲人的生命。女性作家被认为违背了女性气质,会受到男性的激烈攻击。简爱的父母去世后,她被舅舅收养。当父亲和哥哥去世后,罗切斯特继承了财产。知道真相后的简爱伤心离开,罗切斯特把这当做对他的惩罚。

  • 全国疫情高中风险区5+60(全国疫情高中低风险区一览表)

    据通告,1月20日,通化市东昌区全域调整为高风险地区。据梳理发现,截至1月20日11时30分,目前全国现有5个高风险地区,其中3个在河北省,分别为河北省石家庄市藁城区全域、石家庄市新乐市全域、邢台市南宫市全域;1个在黑龙江,为黑龙江省绥化市望奎县全域;另一个就是在吉林省,通化市东昌区全域。截至1月20日11时30分,全国现有60个中风险地区,其中5个在北京、41个在河北、2个在辽宁、7个在黑龙江,5个在吉林。