机器学习 | 掌握逻辑回归在实践中的应用

目录

初识逻辑回归

逻辑回归实操

分类评估方法


初识逻辑回归

逻辑回归(LogisticRegression)是机器学习中的一种分类模型,逻辑回归是一种分类算法,虽然名字中带有回归,但是它与回归之间有一定的联系。由于算法的简单和高效,在实际中应用非常广泛。

逻辑回归就是解决二分类问题的利器,以下是逻辑回归的应用场景:

1)广告点击率 2)是否为垃圾邮件 3)是否患病  4)金融诈骗 5 )虚假账号

逻辑回归原理:逻辑回归是一种常用于解决二分类问题的统计学习方法。它的原理基于以下几个关键概念:

假设函数:逻辑回归的输入值就是一个线性回归的结果:

Sigmoid 函数:sigmoid 函数是一种常用的激活函数,它将任意实数映射到 (0, 1) 的区间内。它的定义如下:

回归的结果输入到sigmoid函数当中,其输出结果:[0,1]区间中的一个概率值,默认为0.5为阈值

逻辑回归最终的分类是通过属于某个类别的概率值来判断是否属于某个类别,并且这个类别默认标记为1(正例),另外的一个类别会标记为0(反例)。 (方便损失计算)

输出结果解释(重要):假设有两个类别A,B,并且假设我们的概率值为属于A(1)这个类别的概率值。现在有一个样本的输入到逻辑回归输出结果0.55,那么这个概率值超过0.5,意味着我们训练或者预测的结果就是A(1)类别。那么反之,如果得出结果为0.3那么,训练或者预测结果就为B(0)类别。

关于逻辑回归的阈值是可以进行改变的,比如上面举例中,如果你把阈值设置为0.6,那么输出的结果0.55,就属于B类。

损失函数:逻辑回归使用最大似然估计来确定模型的参数。为了最大化似然函数,通常采用对数似然损失函数(log-likelihood loss),逻辑回归的损失,称之为对数似然损失,公式如下:

其中y为真实值,hθ(x)为预测值。

无论何时,我们都希望损失函数值,越小越好。分情况讨论,对应的损失函数值:

接下来我们进行举例:

接下来我们呢就带入上面那个例子来计算一遍,就能理解意义了:

逻辑回归实操

接下来通过肿瘤预测案例,学会如何使用逻辑回归对模型进行训练,原始数据的下载地址大家可以参考:网址 ,里面有众多数据集供大家训练,大家根据自身情况进行选择:

本次使用的数据集描述:

1)699条样本,共11列数据,第一列用语检索的id,后9列分别是与肿瘤相关的医学特征,最后一列表示肿瘤类型的数值。

2)包含16个缺失值,用"?"标出。

下面这段代码是一个使用逻辑回归进行二分类问题预测的示例:

import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression# 获取数据
names = ['Sample code number', 'Clump Thickness', 'Uniformity of Cell Size', 'Uniformity of Cell Shape','Marginal Adhesion', 'Single Epithelial Cell Size', 'Bare Nuclei', 'Bland Chromatin','Normal Nucleoli', 'Mitoses', 'class']
data = pd.read_csv("https://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/breast-cancer-wisconsin.data", names=names)# 基本数据处理
data = data.replace(to_replace="?", value=np.nan) # 缺失值处理
data = data.dropna()x = data.iloc[:, 1: -1] # 确定特征值
y = data["class"] # 确定目标值
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=22) # 分割数据# 特征工程标准化
transfer = StandardScaler()
x_train = transfer.fit_transform(x_train)
x_test = transfer.fit_transform(x_test)# 机器学习(逻辑回归)
estimator = LogisticRegression()
estimator.fit(x_train, y_train)# 模型评估
ret = estimator.score(x_test, y_test) # 准确率
print("准确率为: \n", ret)
y_pre = estimator.predict(x_test) # 预测值
print("预测值为: \n", y_pre)

它主要涉及到数据获取、基本数据处理、数据集划分、特征工程标准化、机器学习(逻辑回归)和模型评估等步骤。通过这个示例,可以学习到如何使用逻辑回归模型进行二分类问题的预测。 

分类评估方法

在逻辑回归中,分类评估方法是用来评估模型在分类问题中的性能和准确度的一种方法。在分类任务下,预测结果(PredictedCondition)与正确标记(TrueCondition)之间存在四种不同的组合,构成混淆矩阵(适用于多分类):

以下是一些常见的分类评估方法:

精确率:表示模型预测为正例的样本中真正为正例的比例,即在所有预测为正例的样本中,有多少是真正的正例。精确率可以用来评估模型的预测结果中的假阳性率。

召回率:表示模型成功预测为正例的样本占所有实际正例的比例,即在所有实际为正例的样本中,有多少被成功预测为正例。召回率可以用来评估模型的预测结果中的假阴性率。

接下来我们对上文的案例进行一个精确率与召回率的测试,导入如下库:

from sklearn.metrics import classification_report

然后我们测试精确率与召回率:

最终得到的结果如下:

F1 分数(F1-Score):F1 分数是精确率和召回率的调和平均值,它综合考虑了精确率和召回率的性能指标。F1 分数越高,说明模型的综合性能越好。 

ROC 曲线和 AUC:ROC 曲线(Receiver Operating Characteristic Curve)是以真正例率(True Positive Rate,TPR)为纵轴,假正例率(False Positive Rate,FPR)为横轴绘制的曲线。ROC 曲线可以用来评估二分类模型在不同阈值下的性能表现。AUC(Area Under the Curve)是 ROC 曲线下的面积,用来衡量模型分类性能的一个综合指标。AUC 值越大,说明模型的分类性能越好。

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

AUC指标

1)AUC的概率意义是随机取一对正负样本,正样本得分大于负样本得分的概率

2)AUC的范围在[0,1]之间,并且越接近1越好,越接近0.5属于乱猜

3)AUC=1,完美分类器,采用这个预测模型时,不管设定什么阈值都能得出完美预测。绝大多数预测的场合,不存在完美分类器。

4)0.5<AUC<1,优于随机猜测。这个分类器(模型)妥善设定阈值的话,能有预测价值。

我们在上一个案例中导入如下第三方库进行auc计算:

from sklearn.metrics import roc_auc_score

最终打印的结果如下:

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

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

相关文章

【Spark系列2】Spark编程模型RDD

RDD概述 RDD最初的概述来源于一片论文-伯克利实验室的Resilient Distributed Datasets&#xff1a;A Fault-Tolerant Abstraction for In-Memory Cluster Computing。这篇论文奠定了RDD基本功能的思想 RDD实际为Resilient Distribution Datasets的简称&#xff0c;意为弹性分…

【大厂AI课学习笔记】1.3 人工智能产业发展(2)

&#xff08;注&#xff1a;腾讯AI课学习笔记。&#xff09; 1.3.1 需求侧 转型需求&#xff1a;人口红利转化为创新红利。 场景丰富&#xff1a;超大规模且多样的应用场景。主要是我们的场景大&#xff0c;数据资源丰富。 抗疫加速&#xff1a;疫情常态化&#xff0c;催生新…

Windows11通过Hyper-V创建VM,然后通过vscode连接vm进行开发

这边需要在win11上建立vm来部署docker(这边不能用windows版本的docker destop)&#xff0c;学习了下&#xff0c;记录。 下载系统镜像 首先下载系统镜像&#xff1a;https://releases.ubuntu.com/focal/ 这边使用的是ubuntu20.04.6 LTS (Focal Fossa) &#xff0c;Server inst…

CIFAR-10数据集详析:使用卷积神经网络训练图像分类模型

1.数据集介绍 CIFAR-10 数据集由 10 个类的 60000 张 32x32 彩色图像组成&#xff0c;每类 6000 张图像。有 50000 张训练图像和 10000 张测试图像。 数据集分为5个训练批次和1个测试批次&#xff0c;每个批次有10000张图像。测试批次正好包含从每个类中随机选择的 1000 张图像…

易优CMS采集插件使用教程

本易优CMS采集教程说明如何使用易优CMS采集插件&#xff0c;批量获取互联网上的文章数据&#xff0c;并自动更新到易优cms&#xff08;eyoucms&#xff09;网站&#xff0c;快速丰富网站的内容。 目录 1. 下载并安装易优CMS采集插件 2. 对接网页文章采集工具 3. 采集数据发…

GPT-4级别模型惨遭泄露!引爆AI社区,“欧洲版OpenAI”下场认领

大家好&#xff0c;我是二狗。 这两天&#xff0c;一款性能接近GPT-4的模型惨遭泄露&#xff0c;引发了AI社区的热议。 这背后究竟是怎么回事呢&#xff1f; 起因是1月28日&#xff0c;一位名为“Miqu Dev”的用户在 HuggingFace 上发布了一组文件&#xff0c;这些文件共同组…

智慧工地可视化综合管理云平台 PC+APP

目录 一、智慧工地可视化数据大屏功能一览 1.首页 2.视频监控 3.机械设备 4.环境监测 5.安全管理 6.质量管理 7.劳务分析 8.进度管理 9.报警统计 二、项目人员管理 1.信息管理 2.信息采集 3.证件管理 危大工程管理 一、智慧工地可视化数据大屏功能一览 包括&am…

【C语言】const修饰指针的不同作用

目录 const修饰变量 const修饰指针变量 ①不用const修饰 ②const放在*的左边 ③const放在*的右边 ④*的左右两边都有const 结论 const修饰变量 变量是可以修改的&#xff0c;如果把变量的地址交给⼀个指针变量&#xff0c;通过指针变量的也可以修改这个变量。 但…

电脑文件打不开是什么原因?常见原因有这9点

在日常生活和工作中&#xff0c;我们经常会使用电脑来处理文件。然而&#xff0c;有时候我们会遇到电脑文件打不开的情况&#xff0c;这给我们的工作和生活带来了很大的不便。本文将为大家介绍电脑文件打不开的原因&#xff0c;帮助大家更好地应对这一问题。 原因1、文件格式问…

论文解读:DeepBDC小样本图像分类

Joint Distribution Matters: Deep Brownian Distance Covariance for Few-Shot Classification 摘要 由于每个新任务只给出很少的训练样例&#xff0c;所以few -shot分类是一个具有挑战性的问题。解决这一挑战的有效研究路线之一是专注于学习由查询图像和某些类别的少数支持…

shell脚本自动备份数据库表

今日目标&#xff1a;shell脚本自动备份数据库中的表并记录执行日志和mysql输出日志 编写思路&#xff1a; &#xff08;1&#xff09;shell脚本运行mysql命令 &#xff08;2&#xff09;脚本输出记录到日志中 &#xff08;3&#xff09;定时任务自动执行shell脚本 1、she…

【Tomcat与网络9】提高Tomcat启动速度的八大措施

本文我们来看一下如何对Tomcat进行调优&#xff0c;我们对于Tomcat的调优主要集中在三个方面&#xff1a;提高启动速度、提高系统稳定性和提高并发能力&#xff0c;后两者很多时候是相辅相成的&#xff0c;我们放在一起看。 Tomcat现在一般都嵌入在SpringBoot里&#xff0c;因…

Linux 驱动开发基础知识——总线设备驱动模型(八)

个人名片&#xff1a; &#x1f981;作者简介&#xff1a;学生 &#x1f42f;个人主页&#xff1a;妄北y &#x1f427;个人QQ&#xff1a;2061314755 &#x1f43b;个人邮箱&#xff1a;2061314755qq.com &#x1f989;个人WeChat&#xff1a;Vir2021GKBS &#x1f43c;本文由…

动网格-尺寸函数耦合运动(五)

尺寸函数 **尺寸函数(Size Function)**通常和局部体网格重构结合使用&#xff0c;尺寸函数用于控制重构过程中的网格分布。简单地说&#xff0c;尺寸函数的功能就是在运动边界处约束网格&#xff0c;使其维持在一个较小的尺度&#xff0c;在远离运动边界处&#xff0c;逐步将其…

Windows存储空间不足局域网文件共享 Dism备份系统空间不足

问题情景 在日常使用中难免遇到Windows的空间不足的情况&#xff0c;常用办法是清理垃圾释放空间&#xff0c;部分场景例如我们需要使用Dism备份完整系统&#xff0c;所以需要非常大的存储空间不够&#xff0c;如果空间不够什么才是最有效的方案呢&#xff1f; 我们假设身边没有…

如何使用docker部署Swagger Editor并实现无公网ip远程协作编辑文档

文章目录 Swagger Editor本地接口文档公网远程访问1. 部署Swagger Editor2. Linux安装Cpolar3. 配置Swagger Editor公网地址4. 远程访问Swagger Editor5. 固定Swagger Editor公网地址 Swagger Editor本地接口文档公网远程访问 Swagger Editor是一个用于编写OpenAPI规范的开源编…

【方案】TSINGSEE青犀智能分析网关V4+EasyCVR智慧服务区一体化监控平台

随着年关将近&#xff0c;春运大潮已然开启&#xff0c;届时又伴随着大雨暴雪天气&#xff0c;高速路况的新闻层出不穷。由于长期驾车且高速拥堵严重&#xff0c;不少人就聚集在服务区休息&#xff0c;导致服务区流量爆满&#xff0c;空前的拥堵极易导致服务区瘫痪。如何利用智…

计算机毕业设计 | springboot 多功能商城 购物网站(附源码)

1&#xff0c; 概述 国家大力推进信息化建设的大背景下&#xff0c;城市网络基础设施和信息化应用水平得到了极大的提高和提高。特别是在经济发达的沿海地区&#xff0c;商业和服务业也比较发达&#xff0c;公众接受新事物的能力和消费水平也比较高。开展商贸流通产业的信息化…

OpenHarmony—编辑器使用技巧

DevEco Studio支持使用多种语言进行应用/服务的开发&#xff0c;包括ArkTS、JS和C/C。在编写应用/服务阶段&#xff0c;可以通过掌握代码编写的各种常用技巧&#xff0c;来提升编码效率。 代码高亮 支持对代码关键字、运算符、字符串、类、标识符、注释等进行高亮显示&#x…

少儿编程教育市场分析:行业规模有望在2025年达到约500亿元

少儿编程教育是通过编程游戏启蒙、可视化图形编程等课程&#xff0c;培养学生的计算思维和创新解难能力的课程。与成人的编程不同&#xff0c;少儿编程教育并非高等教育那样学习如何写代码、编制应用程序&#xff0c;而是通过编程游戏启蒙、可视化图形编程等课程&#xff0c;培…