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

一、逻辑回归

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

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.rhkb.cn/news/239630.html

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

相关文章

【镜像制作】OS云主机镜像的制作——以H3C为例

一、云主机镜像简介 1&#xff0e;云主机镜像 云主机镜像不同于容器镜像&#xff0c;是一个含有引导分区、操作系统以及必要应用的单一文件&#xff0c;可以理解成是对整个系统安装光盘所有数据的克隆文件。云用户在创建和申请云主机时可通过选择不同的镜像来快速获取相应操作…

一文读懂「Prompt Engineering」提示词工程

在了解提示过程之前&#xff0c;先了解一下什么是提示prompt&#xff0c;见最后附录部分 一、什么是Prompt Engingering&#xff1f; 提示工程&#xff08;Prompt Engingering&#xff09;&#xff0c;也被称为上下文提示&#xff08;In-Context Prompting&#xff09;&#x…

Android的setContentView流程

一.Activity里面的mWindow是啥 在ActivityThread的performLaunchActivity方法里面&#xff1a; private Activity performLaunchActivity(ActivityClientRecord r, Intent customIntent) {ActivityInfo aInfo r.activityInfo;if (r.packageInfo null) {r.packageInfo getP…

常见面试题之CSS

CSS3的新特性 新增选择器&#xff1a;:nth-child()、:first-of-type、:last-of-type等 弹性盒子&#xff1a;display: flex 媒体查询&#xff1a;media根据设备的特性和屏幕大小应用不同的样式规则 多列布局&#xff1a;column-count和column-with等属性可以实现将内容分为多…

SpringBoot读取配置文件中的内容

文章目录 1. 读取配置文件application.yml中内容的方法1.1 Environment1.2 Value注解1.3 ConfigurationProperties 注解1.4 PropertySources 注解&#xff0c;获取自定义配置文件中的内容&#xff0c;yml文件需要自行实现适配器1.5 YamlPropertiesFactoryBean 加载 YAML 文件1.…

缓存和数据库一致性

前言&#xff1a; 项目的难点是如何保证缓存和数据库的一致性。无论我们是先更新数据库&#xff0c;后更新缓存还是先更新数据库&#xff0c;然后删除缓存&#xff0c;在并发场景之下&#xff0c;仍然会存在数据不一致的情况&#xff08;也存在删除失败的情况&#xff0c;删除…

软件测试|解决Github port 443 : Timed out连接超时的问题

前言 GitHub是全球最大的开源代码托管平台之一&#xff0c;许多开发者和团队使用它来管理和协作开源项目。但在当下&#xff0c;我们在clone或者提交代码时会经常遇到"GitHub Port 443: Timed Out"错误&#xff0c;这意味着我们的电脑无法建立与GitHub服务器的安全连…

鸿蒙Harmony--AppStorage--应用全局的UI状态存储详解

无所求必满载而归&#xff0c;当你降低期待&#xff0c;降低欲望&#xff0c;往往会得到比较好的结果&#xff0c;把行动交给现在&#xff0c;用心甘情愿的态度&#xff0c;过随遇而安的生活&#xff0c;无论结果如何&#xff0c;都是一场惊喜的获得! 目录 一&#xff0c;定义 …

MySQL单表查询练习题

一、创建表的素材 表名&#xff1a;worker——表中字段均为中文&#xff0c;比如&#xff1a;部门号、工资、职工号、参加工作等 CREATE TABLE worker ( 部门号 int(11) NOT NULL, 职工号 int(11) NOT NULL, 工作时间 date NOT NULL, 工资 float(8,2) NOT NULL, 政治面貌 …

MySQL进阶45讲【1】基础架构:一条SQL查询语句是如何执行的?

1 前言 我们经常说&#xff0c;看一个事儿千万不要直接陷入细节里&#xff0c;应该先鸟瞰其全貌&#xff0c;这样能够帮助你从高维度理解问题。同样&#xff0c;对于MySQL的学习也是这样。平时我们使用数据库&#xff0c;看到的通常都是一个整体。比如&#xff0c;有个最简单的…

uniapp 字母索引列表插件(组件版) Ba-SortList

简介&#xff08;下载地址&#xff09; Ba-SortList 是一款字母索引列表组件版插件&#xff0c;可自定义样式&#xff0c;支持首字母字母检索、首字检索、搜索等等&#xff1b;支持点击事件。 支持首字母字母检索支持首字检索支持搜索支持点击事件支持长按事件支持在uniapp界…

八:分布式锁

1、为什么要使用分布式锁 锁是多线程代码中的概念&#xff0c;只有多任务访问同一个互斥的共享资源时才需要锁。单机应用开发时一般使用synchronized或lock。多线程的运行都是在同一个JVM之下。应用是分布式集群&#xff0c;属于多JVM的工作环境&#xff0c;JVM之间已经无法通过…

STM32 定时器输入捕获2——捕获高电平时长

由上图我们可以知道&#xff0c;高电平时间t2-t1。在代码中&#xff0c;可以记录此时t1的时间然后再记录t2的时间&#xff0c;t2-t1&#xff0c;就是我们所想要的答案。 但是&#xff0c;还有更简单一点点的&#xff0c;当到达t1的时候&#xff0c;我们把定时器清零&#xff0c…

MIT_线性代数笔记:第 26 讲 复矩阵;快速傅里叶变换

目录 复向量 Complex vectors复矩阵 Complex matrices傅里叶变换 Fourier transform快速傅里叶变换 Fast Fourier transform 实矩阵也可能有复特征值&#xff0c;因此无法避免在矩阵运算中碰到复数&#xff0c;本讲学习处理复数矩阵和复向量。 最重要的复矩阵是傅里叶矩阵&…

Linux CentOS 7.6安装JDK详细保姆级教程

一、检查系统是否自带jdk java --version 如果有的话&#xff0c;找到对应的文件删除 第一步&#xff1a;先查看Linux自带的JDK有几个&#xff0c;用命令&#xff1a; rpm -qa | grep -i java第二步:删除JDK&#xff0c;执行命令&#xff1a; rpm -qa | grep -i java | xarg…

【Nuxt3】Nuxt3脚手架nuxi安装项目和项目目录介绍

简言 最近学了Nuxt3,并使用它创建了自己的小网站。记录下学习到的nuxt3内容。 Nuxt3官网 Nuxt 是一个免费的开源框架&#xff0c;可通过直观、可扩展的方式使用 Vue.js 创建类型安全、高性能、生产级的全栈 Web 应用程序和网站。 支持SSR、SPA、建立静态网站&#xff0c;也可以…

【大数据】Flink 详解(九):SQL 篇 Ⅱ

《Flink 详解》系列&#xff08;已完结&#xff09;&#xff0c;共包含以下 10 10 10 篇文章&#xff1a; 【大数据】Flink 详解&#xff08;一&#xff09;&#xff1a;基础篇【大数据】Flink 详解&#xff08;二&#xff09;&#xff1a;核心篇 Ⅰ【大数据】Flink 详解&…

若依在表格中如何将字典的键值转为中文

文章目录 一、需求&#xff1a;二、问题解决步骤1、给需要转换的列绑定formatter属性2、获取字典项3、编写formatter属性绑定的方法 一、需求&#xff1a; 后端有时候返回的是字典的键值&#xff0c;在前端展示时需要转成中文值 后端返回的是dictValue&#xff0c;现在要转换…

QT -狗狗管理工具

QT -狗狗管理工具 一、演示效果二、UML三、关键代码四、程序链接 一、演示效果 二、UML 三、关键代码 #include <QFrame> #include <QHBoxLayout> #include <QVBoxLayout> #include <QLabel> #include <QSizePolicy> #include <QDialog> …

谷歌aab包在Android 14闪退而apk没问题(targetsdk 34)

问题原因 Unity应用(target SDK 34)上线到GooglePlay&#xff0c;有用户反馈fold5设备上&#xff08;Android14系统&#xff09;疯狂闪退&#xff0c;经测试&#xff0c;在小米手机Android14系统的版本复现成功了&#xff0c;奇怪的是apk直接安装没问题&#xff0c;而打包成aa…