机器学习 day03(四)

逻辑斯蒂回归

二分类问题的性能指标

前我们判断分类问题的性能如:准确率、查正率(精确率)、查全率(召回率)、F1值,这些性能指标在二分类中都适用,除了这些以外,二分类还有其他以下性能检测技术。

1、混淆矩阵

针对于二分类问题,将实例可以分为正例和反例,也称为阳性和阴性。在实际的情况下有4种。
1)预测为阳性实际为阳性,我们称为真阳性(也称为真正例),记为:TP (True Postive)
2)预测为阳性实际为阴性,我们称为假阳性(也称为假正例),记为:FP(False Postive)
3)预测为阴性实际为阴性,我们称为真阴性(也称为真负例),记为:TN(True Negative)
4)预测为阴性实际为阳性,我们称为假阴性(也称为假负例),记为:FN(False Negative)

接着前面的癌细胞的数据,癌细胞的标签是阴性和阳性,这是一个典型的二分类问题

混淆矩阵:一个混淆矩阵可以对阴性和阳性的情况做可视化的显示,具体如下:这个矩阵是一个2*2的矩阵,矩阵的每一行是一个实例的真实类,矩阵的每一列是一个实例预测类

1.1 举个简单的例子
  1. 创建混淆矩阵
    在这里插入图片描述
    矩阵的每一行是一个实例的真实类
    在这里插入图片描述
    矩阵的每一列是一个实例预测类
    在这里插入图片描述
    混淆矩阵
    在这里插入图片描述
    对角线上为真假,先阴后阳

  2. 画出这个混淆矩阵
    在这里插入图片描述

1.2 癌细胞数据
  1. 查看标签
    在这里插入图片描述
  2. 导入算法,预测标签,进行对比
    在这里插入图片描述
  3. 画出癌细胞预测的混淆矩阵图
    在这里插入图片描述
2、ROC与AUC
2.1 阀值

二分类问题,在预测的时候,并不是直接预测出类别,而是预测出一个[0,1]之间的连续的值,这个值一般是一个概率值,如果这个概率大于或者等于某个阀值(比如逻辑斯蒂中阀值默认为0.5)就认为是1,即为阳性(正例),否则就认为是0,即为阴性(负例)

  1. 两种预测
    在这里插入图片描述
  2. 对比
    在这里插入图片描述
  3. 对于逻辑斯蒂而言,y_proba的第二列数据如果某一个大于等于0.5就认为是1,否则就认为是0
    在这里插入图片描述
2.2 ROC与AUC

召回率:某个类别预测正确的数据量占这个类别真实数据量比例;对于二分类问题,召回率指定是真阳性除以真阳性与假阴性的和,即recall = TP/(FN+TP),其中FN+TP实际上就是真实数据阳性的数量

衰退(假阳性率):假阳性除以假阳性与真阴性的和,即F = FP/(TN+FP),其中TN+FP实际上就是真实数据中阴性数据的数量

ROC曲线:受试者操作特征曲线

ROC曲线描绘了分类器召回率和衰退之间的关系,x轴代表衰退(假阳性率)记为FPR,y轴代表召回率(真阳性率),记为TPR。ROC曲线可以对一个分类器的性能进行可视化。
二分类问题一般是先将特征预测为一个[0,1]之间概率,然后设置一个阀值,不同的阀值对应预测结果也不一样,即不同的阀值对应的TPR和FPR也不一样

ROC曲线上每一个点都对应着一对TPR和FPR的组合,也就是说ROC曲线上的每一个点都对应一个阀值预测的结果的性能

举个例子:

现有真实数据 y_true = [1, 0, 0, 1, 1, 1, 0, 0, 0, 1]
预测概率数据 y_proba =[0.6, 0.15, 0.45, 0.78, 0.80, 0.9, 0.3, 0.48, 0.1, 0.69]

设置3个阀值分别是threshes = [0.4,0.5,0.7]

判断三个阀值下的预测值、TPR和FPR

  1. 阀值为0.4的时候:预测值如下:[1,0,1,1,1,1,0,1,0,1],
    真实数据:[1,0,0,1,1,1,0,0,0,1]
    TP=5 FP=2 TN=3 FN=0
    TPR=TP/(TP+FN)=1
    FPR=FP/(FP+TN)=2/5 = 0.4
  2. 阀值为0.5的时候:预测数据如下:[1,0,0,1,1,1,0,0,0,1]
    真实数据:[1,0,0,1,1,1,0,0,0,1]
    TP=5 FP=0 TN=5 FN=0
    TPR=1 FPR=0
  3. 阀值为0.7的时候:预测数据如下:[0,0,0,1,1,1,0,0,0,0]
    真实数据:[1,0,0,1,1,1,0,0,0,1]
    TP=3 FP=0 TN=5 FN=2
    TPR=3/5=0.6 FPR=0

AUC就是ROC曲线以下面积,AUC值越大,说明模型性能越好

2.3 对癌细胞预测数据绘制ROC曲线

在这里插入图片描述
可以输出一下每一个阀值对应的类别结果和混淆矩阵

在这里插入图片描述

绘制ROC曲线
在这里插入图片描述
AUC就是ROC曲线以下面积
在这里插入图片描述
在这里插入图片描述

2.4 绘制红酒数据的ROC曲线
  1. 导入红酒数据集数据
    在这里插入图片描述
    由target可知,这是一个三分类数据集,我们讨论的问题为二分类

  2. 类别2的数据去掉
    在这里插入图片描述

  3. 创建逻辑斯蒂模型
    在这里插入图片描述
    对比标签,可以明显发现准确还是比较多的

  4. 测每个样本取正例和取反例的概率,级联对比y_pred和y_proba
    在这里插入图片描述

  5. 接收3个返回值
    在这里插入图片描述

  6. 绘制ROC曲线
    在这里插入图片描述

  7. 精确率、召回率与阀值之间的关系

有的业务关注于召回率,例如:我们给出100个某种类别的样本,关注模型能够预测准几个

有的业务关注于精确率,例如:我们预测100个某个类别的样本,关注有多少个是正确的

有的业务既关注召回率,又关注精确率,例如:我们给出100个阳性样本,关注模型能够预测正确多少;还关注如果预测出来100个阳性样本,其中正确的有几个
在这里插入图片描述
绘制图像
在这里插入图片描述
精确率是不断上升的,召回率是不断下降的,如果既追求精确率,又追求召回率,找到两条线相交的点,将阀值设置为这个平衡点,这样预测既追求精确率,又追求召回率

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值