快速了解——逻辑回归及模型评估方法

一、逻辑回归

应用场景:解决二分类问题

1、sigmoid函数

        1. 公式:

        2. 作用:把 (-∞,+∞) 映射到 (0, 1)

        3. 数学性质:单调递增函数,拐点在x=0,y=0.5的位置

        4. 导函数公式:f ′(x) = f(x) (1 – f(x))

2、相关概念

        概率:事件发生的可能性

        联合概率:两个或多个随机变量同时发生的概率

        条件概率:表示事件A在另外一个事件B已经发生条件下的发生概率,P( A | B )

        极大似然估计:根据 观测到的结果 来估计模型算法中的未知参数,即通过极大化概率事                                         件,来估计最优参数

        对数函数:如果a^b = N (a > 0,b != 1),那么 b 叫做以 a 为底 N 的对数。

                         性质:(a,M,N > 0)

3、概念

        一种分类模型,把线性回归的输出,作为逻辑回归的输入,输出是(0, 1)之间的值

4、假设函数

5、损失函数:对数似然损失

   工作原理:真实类别对应的位置,概率值越大越好

6、API

sklearn.linear_model.LogisticRegression ( solver = ' liblinear ',penalty = ' l2 ',C = 1.0 )

solver:损失函数优化方法( liblinear 对小数据集场景训练速度更快,sag 和 saga 对大数据集更                 快一些。)
penalty:正则化的种类,L1 或者 L2
C:正则化力度

tips:默认将类别数量少的当做正例,sag、saga 支持 L2 正则化或者没有正则化,liblinear 和           saga 支持 L1 正则化

二、模型评估

1、混淆矩阵


真正例 TP:True Positive,伪反例 FN:False Negative

伪正例 FP:False Positive,真反例 TN:True Negative

TP + FN + FP + TN = 总样本数量

1. 导包:from sklearn.metrics import confusion_matrix

2. 使用:result = confusion_matrix ( y_true,y_pred1,labels = labels)

from sklearn.metrics import confusion_matrixresult = confusion_matrix ( y_true,y_pred1,labels = labels)

2、精确率 ( Precision )

        概述:查准率,对正例样本的预测准确率

        计算方法:

        1. 导包:from sklearn.metrics import precision_score

        2. 使用:result = precision_score(y_true,y_pred1,pos_label = ' 恶性 ' )

from sklearn.metrics import precision_scoreresult = precision_score(y_true,y_pred1,pos_label = ' 恶性 ' )

3、召回率 ( Recall )

        概述:查全率,指的是预测为真正例样本占所有真实正例样本的比重

        计算方法:

        1. 导包:from sklearn.metrics import recall_score

        2. 使用:result = recall_score(y_true,y_pred1,pos_label = ' 恶性 ' )

from sklearn.metrics import recall_scoreresult = recall_score(y_true,y_pred1,pos_label = ' 恶性 ' )

4、F1- score

        概述:对模型的精度 (Precision)、召回率 (Recall) 都有要求,评估综合预测能力 ( 精确率和                       召回率 的调和平均数 )

        计算方法:

        1. 导包:from sklearn.metrics import f1_score

        2. 使用:result = f1_score ( y_true,y_pred1,pos_label = ' 恶性 ' )

from sklearn.metrics import f1_scoreresult = f1_score ( y_true,y_pred1,pos_label = ' 恶性 ' )

5、ROC 曲线

        真正率(TPR):正样本中被预测为正样本的概率(True Positive Rate)

        假正率(FPR):负样本中被预测为正样本的概率(False Positive Rate),FP / FP + TN

        概述:(Receiver Operating Characteristic curve)是一种常用于 评估 分类模型 性能 的可视化工具。ROC曲线以模型的 真正率TPR 为纵轴,假正率FPR 为横轴,它将模型在 不同阈值下的表现以曲线的形式展现出来。

6、AUC 曲线下面积

        概述:ROC曲线的优劣可以通过曲线下的面积(AUC)来衡量,AUC越大表示分类器 性能越好

        当AUC <= 0.5 时,表示分类器的性能等同于随机猜测

        当AUC = 1时,表示分类器的性能完美,能够完全正确地将正负例分类。

点(0, 0) :所有的负样本都预测正确,所有的正样本都预测错误,相当于点的 (FPR值0, TPR值0)

点(1, 0) :所有的负样本都预测错误,所有的正样本都预测错误。相当于点的 (FPR值1, TPR值0)                    即最不好的效果

点(1, 1):所有的负样本都预测错误,所有的正样本都预测正确。相当于点的 (FPR值1,TPR值1)

点(0, 1):所有的负样本都预测正确,所有的正样本都预测正确。相当于点的 (FPR值0,TPR值1)                  即最好的效果

        API

        1.导包:from sklearn.metrics import roc_auc_score

        2. 使用:sklearn.metrics.roc_auc_score ( y_true,y_score )

                       y_true:每个样本的真实类别,必须为0 ( 反例 ),1 ( 正例 )标记

                       y_score:预测得分,可以是正例的估计概率、置信值或者分类器方法的返回值

from sklearn.metrics import roc_auc_scoresklearn.metrics.roc_auc_score ( y_true,y_score )

7、EDA(探索性数据分析)

        概述:围绕目标值进行分析,找到和目标值相关性比较强的特征

8、分类评估报告

     sklearn.metrics.classification_report ( y_true,y_pred,labels = [ ],target_names = None ) 

     y_true:真实目标值
     ​y_pred:估计器预测目标值
     ​labels:指定类别对应的数字
     ​target_names:目标类别名称
​     return:每个类别精确率与召回率

sklearn.metrics.classification_report ( y_true,y_pred,labels = [ ],target_names = None ) 

     样本不均衡问题处理思路:希望 0、1 标签样本占比 1:1,方案:class_weight = ' balanced '

特征编码:处理类别型数据,做 one - hot 编码:churn_pd = pd.get_dummies ( churn_pd )

churn_pd = pd.get_dummies ( churn_pd )

模型保存:1. 导包:import joblib

                  2. 保存: joblib.dump ( estimator,' . / 文件名.pth ' )

import joblibjoblib.dump ( estimator,' . / 文件名.pth ' )

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/619597.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

让java程序就像脚本一样去写工具

背景&#xff1a; 接触了各种语言之后发现&#xff0c;java还是比go&#xff0c;.netcore之类的简单&#xff0c;成熟&#xff0c;我最终选择了jenkinsshelljava去部署我们的代码&#xff0c;此时很多人可能去使用js或者python之类的去写部署逻辑&#xff0c;毕竟java每次打包…

时序预测 | Matlab实现EEMD-SSA-BiLSTM、EEMD-BiLSTM、SSA-BiLSTM、BiLSTM时序预测对比

时序预测 | Matlab实现EEMD-SSA-BiLSTM、EEMD-BiLSTM、SSA-BiLSTM、BiLSTM时间序列预测对比 目录 时序预测 | Matlab实现EEMD-SSA-BiLSTM、EEMD-BiLSTM、SSA-BiLSTM、BiLSTM时间序列预测对比预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现EEMD-SSA-BiLSTM、…

计算机缺失msvcr100.dll如何修复?分享五种实测靠谱的方法

在计算机系统的日常运行与维护过程中&#xff0c;我们可能会遇到一种特定的故障场景&#xff0c;即系统中关键性动态链接库文件msvcr100.dll的丢失。msvcr100.dll是Microsoft Visual C Redistributable Package的一部分&#xff0c;对于许多基于Windows的应用程序来说&#xff…

Open3D 获取点云坐标最值(17)

Open3D 获取点云坐标最值(17) 一、算法介绍二、算法实现1.代码2.结果人生天地间,忽如远行客 一、算法介绍 快速获取点云块,沿着 x y z 各方向的坐标最值,这些在点云处理中的应用范围是如此广泛,这也是点云最常被用到的关键信息,后续的很多算法都会设置到这一处理方法。…

云端绘影,让青玉案跃然眼前

编辑&#xff1a;阿冒 设计&#xff1a;沐由 “东风夜放花千树&#xff0c;更吹落&#xff0c;星如雨。宝马雕车香满路。凤箫声动&#xff0c;玉壶光转&#xff0c;一夜鱼龙舞。” 每每诵读这首《青玉案》&#xff0c;那种花灯耀眼、乐声盈耳的元夕盛况就会立刻浮现在脑海中&am…

【开源】基于JAVA+Vue+SpringBoot的校园电商物流云平台

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 商品数据模块2.3 快递公司模块2.4 物流订单模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 商品表3.2.2 快递公司表3.2.3 物流订单表 四、系统展示五、核心代码5.1 查询商品5.2 查询快递公司5.3 查…

java..类文件具有错误的版本 61.0, 应为 55.0 请删除该文件或确保该文件位于正确的类路径子目录中。

第一步先打开pom.xml配置文件&#xff0c;找到版本号那几行&#xff0c;这里需要更改版本号。 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/X…

一文读懂ERP、OMS、WMS、TMS(1/2)

目录 一、ERP、OMS、WMS、TMS的定义 1.1 ERP&#xff08;Enterprise Resource Planning&#xff09; 1.2 OMS&#xff08;Order Management System&#xff09; 1.3 WMS&#xff08;Warehouse Management System&#xff09; 1.4 TMS &#xff08;Transportation Manageme…

【SpringCloud】之网关应用(进阶使用)

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是君易--鑨&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的博客专栏《SpringCloud开发之网关应用》。&#x1f3af;&a…

微机原理常考简答题(二)

一&#xff0c;简述8086CPU响应可屏蔽中断的条件及过程。 CPU响应可屏蔽中断的条件是有中断请求&#xff0c;中断标志IF1开中断&#xff0c;现行指令执行结束。 CPU响应可屏蔽中断的过程&#xff1a;CPU在INTR引脚上接到一个中断请求信号&#xff0c;如果此时IF1&#xff0c;并…

group by 查询慢的话,如何优化?

1、说明 根据一定的规则&#xff0c;进行分组。 group by可能会慢在哪里&#xff1f;因为它既用到临时表&#xff0c;又默认用到排序。有时候还可能用到磁盘临时表。 如果执行过程中&#xff0c;会发现内存临时表大小到达了上限&#xff08;控制这个上限的参数就是tmp_table…

Vue3函数式弹窗实现

要在一些敏感操作进行前要求输入账号和密码&#xff0c;然后将输入的账号和密码加到接口请求的header里面。如果每个页面都去手动导入弹窗组件&#xff0c;在点击按钮后弹出弹窗。再拿到弹窗返回的账号密码后去请求接口也太累了&#xff0c;那么有没有更简单的实现方式呢&#…

强化学习(一)简介

强化学习这一概念在历史上来源于行为心理学&#xff0c;来描述生物为了趋利避害而改变自己行为的学习过程。人类学习的过程其实就是为达到某种目的不断地与环境进行互动试错&#xff0c;比如婴儿学习走路。强化学习算法探索了一种从交互中学习的计算方法。 1、强化学习 强化学…

kylin3集群问题和思考(单机转集群)

目录 单机改集群注意事项 问题 思考 建议 单机改集群注意事项 之前是使用的单机版&#xff0c;但后面查询压力过大&#xff0c;一个方案是改成集群。 由于是同一个集群的&#xff0c;元数据没有变化&#xff0c;所以&#xff0c;直接将原本的kylin使用scp的方式发送到其他节…

【重学C语言】二、前期准备和第一个C程序

【重学C语言】二、前期准备和第一个C程序 1. VS 项目1.1 创建项目 2. Clion 项目(本博主主用)2.1 创建项目2.2 Clion 配置 3. 构建类型4. 构建模式5. 注释6. 第一个 C 程序7. 程序闪退8. 新手遇到的问题 1. VS 项目 1.1 创建项目 打开 VS 创建新项目 创建 main.c 书写以下…

【LabVIEW FPGA入门】模拟输入和模拟输出

1.简单模拟输入和输出测试 1.打开项目&#xff0c;在FPGA终端下面新建一个VI 2.本示例以模拟输入卡和模拟输出卡同时举例。 3.新建一个VI编写程序&#xff0c;同时将卡1的输出连接到卡2的输入使用物理连线。 4.编译并运行程序&#xff0c;观察是否能从通道中采集和输出信号。 5…

【LeetCode】19. 删除链表的倒数第 N 个结点(中等)——代码随想录算法训练营Day04

题目链接&#xff1a;19. 删除链表的倒数第 N 个结点 题目描述 给你一个链表&#xff0c;删除链表的倒数第 n 个结点&#xff0c;并且返回链表的头结点。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5], n 2 输出&#xff1a;[1,2,3,5] 示例 2&#xff1a; 输入&a…

行为型设计模式——迭代器模式

迭代器模式 迭代器模式也是非常的简单&#xff0c;定义如下&#xff1a; 提供一个对象来顺序访问聚合对象中的一系列数据&#xff0c;而不暴露聚合对象的内部表示。 相信大家都使用过类似下面的迭代器&#xff1a; List<String> list new ArrayList<>(); Iterat…

通过shell脚本确定当前平台

shell中的变量OSTYPE存储操作系统的名称&#xff0c;也可以使用uname命令来确认当前所在的平台。 shell中的变量HOSTTYPE存储操作系统的架构。 测试代码如下所示&#xff1a; #! /bin/bashecho "use OSTYPE:" if [[ "$OSTYPE" "linux-gnu&quo…

【自译】【精华】MIT麻省理工学院技术双月刊(The Bimonthly MIT Technology Review)2024年1~2月【创新版块概览(一)】

导读&#xff1a; 今年是 《MIT技术评论杂志》 创刊125周年纪念年&#xff08;该杂志自1899年创刊&#xff09;&#xff0c;笔者将2024开年第1期&#xff08;1月~2月号&#xff09;的创新版块&#xff08;Innovation Issue&#xff09;中的重要内容进行梳理&#xff0c;获得近年…