分享好友 最新动态首页 最新动态分类 切换频道
2024年机器学习算法(3)—— 逻辑回归算法(1),2024年最新211本硕如何通过字节跳动、百度、美团大数据开发面试
2024-12-25 14:49

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导,让我们一起学习成长

注意
对于列名, pd.read_csv()的参数names;pd.Dataframe()的参数columns,我总是把二者弄混

在很多分类场景当中我们不一定只关注预测的准确率(准确率并不是衡量分类正确的唯一标准

比如以这个癌症举例子!我们并不关注预测的准确率,而是关注在所有的样本当中,癌症患者有没有被全部预测(检测)出来

4.1 混淆矩阵

  • 准确率

    • 预测正确的数占样本总数的比例
    • (TP+TN) / (TP+FP+FN+TN)

分类评估报告api

  • y_true:真实目标值
  • y_pred:估计器预测目标值
  • labels:指定类别对应的数字
  • target_names:目标类别名称
  • return:每个类别精确率与召回率
 
 
  • 一般认为数据比例4比1则为不均衡

问题:如何衡量样本不均衡下的评估
解答:AUC指标主要用于评估样本不均衡二分类问题

4.2 ROC曲线与AUC指标

  • TPR = TP / (TP + FN)
    • 召回率
    • 所有真实类别为1的样本中,预测类别为1的比例
  • FPR = FP / (FP + TN)
    • 所有真实类别为0的样本中,预测类别为1的比例

(1)ROC曲线

ROC曲线的横轴就是FPRate,纵轴就是TPRate,当二者相等时,表示的意义则是:对于不论真实类别是1还是0的样本,分类器预测为1的概率是相等的,此时AUC为0.5

AUC(Area Under Curve)被定义为ROC曲线下的面积,显然这个面积的数值不会大于1。又由于ROC曲线一般都处于y=x这条直线的上方,所以AUC的取值范围在0.5和1之间。

  • AUC的概率意义是随机取一对正负样本正样本得分大于负样本得分的概率
  • AUC的范围在 [0, 1] 之间,并且越接近1越好,越接近0.5属于乱猜
  • AUC=1,完美分类器,采用这个预测模型时,不管设定什么阈值都能得出完美预测。绝大多数预测的场合,不存在完美分类器。
  • 0.5<AUC<1,优于随机猜测。这个分类器(模型)妥善设定阈值的话,能有预测价值。

AUC计算API


  • 计算ROC曲线面积,即AUC值
  • y_true:每个样本的真实类别必须为0(反例),1(正例)标记
  • y_predict:预测得分,可以是正类的估计概率、置信值或者分类器方法的返回值
 

注意

  • AUC只能用来评价二分类
  • AUC非常适合评价样本不平衡中的分类器性能

4.3 ROC曲线绘制

关于ROC曲线的绘制过程,通过以下举例进行说明

假设有6次展示记录,有两次被点击了,得到一个展示序列(1:1,2:0,3:1,4:0,5:0,6:0,前面的表示序号,后面的表示点击(1)或没有点击(0)。
然后在这6次展示的时候都通过model算出了点击的概率序列。

下面看三种情况。

TPR = TP/(TP+FN)
FPR = FP/(TN+FP)

绘制的步骤是

  1. 把概率序列从高到低排序,得到顺序(1:0.9,3:0.8,2:0.7,4:0.6,5:0.5,6:0.4
  2. 从概率最大开始取一个点作为正类,取到点1,计算得到TPR=0.5,FPR=0.0
  3. 从概率最大开始,再取一个点作为正类,取到点3,计算得到TPR=1.0,FPR=0.0
  4. 再从最大开始取一个点作为正类,取到点2,计算得到TPR=1.0,FPR=0.25;
  5. 以此类推,得到6对TPR和FPR。

然后把这6对数据组成6个点(0,0.5),(0,1.0),(0.25,1),(0.5,1),(0.75,1),(1.0,1.0)。

  1. 把概率序列从高到低排序,得到顺序(1:0.9,2:0.8,3:0.7,4:0.6,5:0.5,6:0.4
  2. 从概率最大开始取一个点作为正类,取到点1,计算得到TPR=0.5,FPR=0.0
  3. 从概率最大开始,再取一个点作为正类,取到点2,计算得到TPR=0.5,FPR=0.25
  4. 再从最大开始取一个点作为正类,取到点3,计算得到TPR=1.0,FPR=0.25;
  5. 以此类推,得到6对TPR和FPR。

然后把这6对数据组成6个点(0,0.5),(0.25,0.5),(0.25,1),(0.5,1),(0.75,1),(1.0,1.0)。
这6个点在二维坐标系中能绘出来。

(3)如果概率的序列是(1:0.4,2:0.6,3:0.5,4:0.7,5:0.8,6:0.9

  1. 把概率序列从高到低排序,得到顺序(6:0.9,5:0.8,4:0.7,2:0.6,3:0.5,1:0.4
  2. 从概率最大开始取一个点作为正类,取到点6,计算得到TPR=0.0,FPR=0.25
  3. 从概率最大开始,再取一个点作为正类,取到点5,计算得到TPR=0.0,FPR=0.5
  4. 再从最大开始取一个点作为正类,取到点4,计算得到TPR=0.0,FPR=0.75;
  5. 以此类推,得到6对TPR和FPR。

然后把这6对数据组成6个点(0.25,0.0),(0.5,0.0),(0.75,0.0),(1.0,0.0),(1.0,0.5),(1.0,1.0)。
这6个点在二维坐标系中能绘出来。

  • 上面的第一种情况,从上往下取,无论怎么取,正样本的概率总在负样本之上,所以分对的概率为1,AUC=1。再看那个ROC曲线,它的积分是什么?也是1,ROC曲线的积分与AUC相等。
  • 上面第二种情况,如果取到了样本2和3,那就分错了,其他情况都分对了;所以分对的概率是0.875,AUC=0.875。再看那个ROC曲线,它的积分也是0.875,ROC曲线的积分与AUC相等。
  • 上面的第三种情况,无论怎么取,都是分错的,所以分对的概率是0,AUC=0.0。再看ROC曲线,它的积分也是0.0,ROC曲线的积分与AUC相等。

其实AUC的意思是——Area Under roc Curve,就是ROC曲线的积分,也是ROC曲线下面的面积。

绘制ROC曲线的意义很明显,不断地把可能分错的情况扣除掉,从概率最高往下取的点,每有一个是负样本,就会导致分错排在它下面的所有正样本,所以要把它下面的正样本数扣除掉(1-TPR,剩下的正样本的比例)。总的ROC曲线绘制出来了,AUC就定了,分对的概率也能求出来了。

当遇到数据类别不平衡的时候,我们该如何处理。在Python中,有Imblearn包,它就是为处理数据比例失衡而生的。

安装Imblearn包

 
 
 
  • 过采样方法
    • 增加数量较少那一类样本的数量,使得正负样本比例均衡。
  • 欠采样方法
    • 减少数量较多那一类样本的数量,使得正负样本比例均衡。

5.1 过采样方法

对训练集里的少数类进行“过采样”(oversampling,即增加一些少数类样本使得正、反例数目接近,然后再进行学习。

 
 
  • 对于随机过采样,由于需要对少数类样本进行复制来扩大数据集,造成模型训练复杂度加大。
  • 另一方面也容易造成模型的过拟合问题,因为随机过采样是简单的对初始样本进行复制采样,这就使得学习器学得的规则过于具体化,不利于学习器的泛化性能,造成过拟合问题。

为了解决随机过采样中造成模型过拟合问题,又能保证实现数据集均衡的目的,出现了过采样法代表性的算法SMOTE算法。

(2) 过采样代表性算法-SMOTE

  1. 先随机选定一个少数类样本 [公式] 。
  1. 找出这个少数类样本 [公式] 的K个近邻(假设K=5,5个近邻已经被圈出。
  1. 随机从这K个近邻中选出一个样本 [公式] (用绿色圈出来了)。

4)在少数类样本 [公式] 和被选中的这个近邻样本 [公式] 之间的连线上,随机找一点。这个点就是人工合成的新的样本点(绿色正号标出)。

SMOTE算法摒弃了随机过采样复制样本的做法,可以防止随机过采样中容易过拟合的问题,实践证明此方法可以提高分类器的性能。

最新文章
excel 区域内按行排序_在Excel 2010中对行进行排序
Most of the time when you're sorting in Excel, you sort based on the values in one or more columns. If your workbooks are like mine, it's rare that you sort horizontally, based on the values in a row. But if you ne
c编程向计算机发送数据,一文读懂一台计算机是如何把数据发送给另一台计算机的...
这是之前一篇文章的修订版,感觉是一篇很不错的文章,重新修改排版了下。前言天各一方的两台计算机是如何通信的呢?在成千上万的计算机中,为什么一台计算机能够准确着寻找到另外一台计算机,并且把数据发送
CTF 工具 集合
From:Hello CTF:在学习CTF前希望您具备一些CS领域的基础知识,这里推荐您先阅读 JANlittle师傅写的CS入门资料 ( 点此跳转 ) 大致具备CS领域的基本技能后再开始CTF的学习。 入入入入门(fén)综述࿱
AI小助手使用指南:涵盖TV版操作与百度AI小助手应用教程
在这个科技日新月异的时代人工智能()正在逐步渗透到咱们生活的各个角落从智能手机、智能家居到智能电视等设备。小助手作为人工智能技术的产物它能帮助我们更高效地完成日常任务如播放音乐、查询天气、设置闹钟等,甚至可以成为我们的生活
08山东电视台公共频道节目推介暨广告年会直播
12月2日19:00时现场直播2008山东电视台公共频道节目推介暨广告年会  【大片头】  【新闻女生组推介板块】  1、 开场歌舞:《魅力》2’40  表演:七名新闻女生  伴舞:20男生  【主持人开场】孙亮 郭培鑫  【《新闻女生组》
Android 的开源电话/通讯/IM聊天项目全集
一、Android的XMPP客户端 BeemBeem 是一个运行于 Android 手机平台的 XMPP (jabber) 的客户端软件,兼容标准的 XMPP 服务器和服务,例如 Ejabberd, Openfire, Facebook, 和 Gmail). 支持 SASL, 代理(Socks4, Socks5, HTTP), DNS SRV, and c
ai智能机器人源码定制开发快速搭建送服务器
聊天机器人chatai*近推出了一款新产品——-Lisa,它能帮助人们更好地交流和分享想法。这款软件目前还在测试阶段,已经有很多人使用过了。1:chat在线聊天机器人的开发背景随着移动互联网的发展,智能手机已经成为人们生活中不可或缺的工具
AI智能生成文字Logo:一站式解决个性化标识设计需求
在数字化浪潮的推动下形象已成为企业竞争力的关键组成部分。一个独有、个性化的标识不仅可以吸引消费者的目光还能传递企业的核心价值。传统的标识设计往往需要耗费大量时间和精力且难以满足个性化需求。如今智能生成文字Logo的出现为解决这
BTS WORLD
【基本介绍】『一睁眼竟是2012年,而且我还成了Big Hit的职员?!在BTS还没出现的世界,我成为了BTS的经纪人。现在他们能否出道,全看我了!』难道就是追星的最高境界?我还能回到原来的世界吗?如同梦境一般在眼前展开的的神秘故事,现在
Autodesk Maya 2023 for Mac 正版激活永久使用(支持M1)
兼容M1的Autodesk Maya 2023 终于更新啦!!玛雅是专业的三维动画设计工具,这次的maya2023中文版引入Blue Pencil,它取代了现有的油性铅笔工具,提供更多用于文本和形状的绘图工具,以及用于注释的图层系统,另外还更新了布尔建模、拓扑工
相关文章
推荐文章
发表评论
0评