Logistic回归算法原理详解及应用

目录

引言

基本原理

损失函数

参数估计

优缺点

应用

Logistic回归优化算法

具体案例

引言

逻辑回归(Logistic Regression)是一种广泛用于分类问题的统计方法,尤其是二分类问题。尽管名字中有“回归”二字,但它实际上是一种分类算法,主要用于估计一个样本属于某个类别的概率。逻辑回归通过逻辑函数(sigmoid函数)将线性回归模型的输出(通常是一个实数值)映射到(0,1)区间,从而得到属于某个类别的概率。

取定特征组 X∈ R ,称模型为一个Logistic模型,其中w∈ w\in R^n为模型参数

Logistic回归算法就是以Logistic模型为模型假设,以对数损失为损失函数的经验损失最小化算法。

基本原理

线性回归:首先,逻辑回归通过一组自变量(特征)的线性组合来预测一个因变量(通常是连续值)。但在逻辑回归中,我们不直接使用这个连续值作为预测结果。

Sigmoid函数:线性回归的输出被用作Sigmoid函数的输入。Sigmoid函数是一个S形曲线,它将任意实数值压缩到(0,1)区间内,其公式为:

二分类:在二分类问题中,我们设定一个阈值(通常是0.5),如果Sigmoid函数的输出大于这个阈值,则认为样本属于正类(标签为1的类别),否则属于负类(标签为0的类别)

损失函数

逻辑回归使用对数损失(log loss)或交叉熵损失(cross-entropy loss)作为损失函数。这个损失函数衡量了模型预测的概率分布与真实概率分布之间的差异。损失函数越小,模型的预测越准确。

  Logistic回归问题的目标函数称为交叉熵:

交叉熵统计意义:

在线性回归算法中,假设标签分布是以模型预测值为期望的正态分布

在Logistic回归算法中,假设标签分布是以模型概率预测值h_{w}(x) 为期望的伯努利分布

参数估计

逻辑回归的参数(即线性组合中的系数和截距)通常通过最大似然估计(MLE)或梯度下降等优化算法来求解。最大似然估计的目标是找到一组参数,使得在这组参数下,观测到当前样本集的概率最大。

优缺点

  • 优点
    • 实现简单,易于理解和实现。
    • 计算代价不高,容易扩展到大规模数据集上。
    • 输出结果是一个概率值,可以辅助决策过程。
  • 缺点
    • 对数据和场景的适应能力有局限,例如不适合处理非线性问题。
    • 对多重共线性数据敏感,可能导致过拟合。
    • 分类的类别数不宜过多,主要用于二分类问题。

应用

逻辑回归因其简单、易实现且可解释性强而被广泛应用于各种领域,如:

  • 垃圾邮件检测
  • 预测用户是否会点击广告
  • 医疗诊断(如预测病人是否患有某种疾病)
  • 风险评估(如信用评分)

总之,逻辑回归是一种简单而强大的分类算法,特别适用于处理二分类问题,并且其输出具有概率意义,便于理解和应用。

Logistic回归优化算法

具体案例

数据集是著名的鸢尾花(Iris)数据集,它常被用于分类算法的测试和教学。数据集包含了150个样本,每个样本都有4个特征(花萼长度Sepal.Length、花萼宽度Sepal.Width、花瓣长度Petal.Length、花瓣宽度Petal.Width)和一个目标变量(Species),即鸢尾花的种类。在这个数据集中,鸢尾花被分为三种类型:Setosa、Versicolour和Virginica。

import pandas as pd
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import precision_recall_fscore_support, confusion_matrix, roc_curve, auc
import matplotlib.pyplot as plt
import numpy as np# 加载数据
data = pd.read_csv('iris.csv')# 假设最后一列是目标变量
X = data.iloc[:, :4]
y = data.iloc[:, 4]# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)# 使用逻辑回归模型
model = LogisticRegression(random_state=42, max_iter=200)  # 增加max_iter以避免收敛警告
model.fit(X_train, y_train)# 预测测试集
y_pred = model.predict(X_test)# 计算准确率、精确率、召回率
accuracy = model.score(X_test, y_test)
precision, recall, _, _ = precision_recall_fscore_support(y_test, y_pred, average='weighted')
print("Accuracy: {:.2%}".format(accuracy))
print("Precision: {:.2%}".format(precision))
print("Recall: {:.2%}".format(recall))# 绘制混淆矩阵
unique_labels = y.unique()  # 获取目标列的唯一值
conf_mat = confusion_matrix(y_test, y_pred)
plt.figure(figsize=(10, 7))
plt.imshow(conf_mat, cmap='Blues', interpolation='nearest')
plt.colorbar()
tick_marks = np.arange(len(unique_labels))
plt.xticks(tick_marks, unique_labels, rotation=45)
plt.yticks(tick_marks, unique_labels)
plt.tight_layout()
plt.ylabel('True label')
plt.xlabel('Predicted label')
plt.show()


 

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

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

相关文章

Vue3总结汇总(不间断更新)

一、常用依赖插件汇总 1.1 依赖 UI组件库:1、AntDesignVue2、ElementPlus 网络请求:axios 组件通信:mitt ID生成:nanoid 路由:vue-router 三维:cesium 构建工具:Vite vite-plugin-vue-setup-extend:简化set…

编译打包自己的云手机(redroid)镜像

前言 香橙派上跑云手机可以看之前的文章: 香橙派5plus上跑云手机方案一 redroid(带硬件加速)香橙派5plus上跑云手机方案二 waydroid 还有一个cuttlefish方案没说,后面再研究,cuttlefish的优势在于可以自定义内核且selinux是开启的&#xf…

推荐5个实用的可视化工具

面对海量的数据,我们应该如何高效地提取其价值,让复杂的信息一目了然?这正是可视化工具大显身手的舞台。今天,我就来分享几款非常好用的数据可视化工具,它们不仅能够帮助你轻松驾驭数据,还能让你的工作汇报…

HCIE是什么等级的证书?

HCIE(华为认证互联网专家,Huawei Certified Internetwork Expert)是华为认证体系中的最高等级证书。它要求考生具备在复杂网络环境中规划、设计、部署、运维和优化网络的能力。HCIE认证是华为认证体系中最具挑战性和含金量的认证之一&#xf…

鸿蒙语言基础类库:【@ohos.application.testRunner (TestRunner)】 测试

TestRunner TestRunner模块提供了框架测试的能力。包括准备单元测试环境、运行测试用例。 如果您想实现自己的单元测试框架,您必须继承这个类并覆盖它的所有方法。 说明: 开发前请熟悉鸿蒙开发指导文档:gitee.com/li-shizhen-skin/harmony-…

浪潮天启防火墙TQ2000远程配置方法SSL-V偏、L2xx 配置方法

前言 本次设置只针对配置V偏,其他防火墙配置不涉及。建议把防火墙内外网都调通后再进行V偏配置。 其他配置可参考:浪潮天启防火墙配置手册 配置SSLVxx 在外网端口开启SSLVxx信息 开启SSLVxx功能 1、勾选 “启用SSL-Vxx” 2、设置登录端口号&#xff0…

使用Apache服务部署静态网站

前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除 目录 一、网站服务程序 ​二、配置服务文件参数 ​三、SELinux安全子系统 四、个人用户主页功能 ​五、虚拟网站主机功能 六、Apache的访问控制…

CSA笔记1-基础知识和目录管理命令

[litonglocalhost ~]$ 是终端提示符,类似于Windows下的cmd的命令行 litong 当前系统登录的用户名 分隔符 localhost 当前机器名称,本地主机 ~ 当前用户的家目录 $ 表示当前用户为普通用户若为#则表示当前用户为超级管理员 su root 切换root权限…

计算器原生js

目录 1.HTML 2.CSS 2.JS 4.资源 5.运行截图 6.下载连接 7.注意事项 1.HTML <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-s…

pytorch学习(六):卷积层的使用

卷积函数的概念 卷积核从输入特征图的左上角开始&#xff0c;按照设定的步长&#xff08;Stride&#xff09;滑动。步长决定了卷积核每次滑动的像素数&#xff0c;这里我们假设步长 s1。在每次滑动时&#xff0c;卷积核与输入特征图对应位置的元素相乘&#xff0c;然后将这些乘…

Linux C语言基础 day9

目录 思维导图 学习目标&#xff1a; 学习内容&#xff1a; 1. 值传递与地址传递&#xff08;非常重要&#xff09; 1.1 值传递 1.2 地址传递 2. 递归函数 2.1 递归的概念 2.2 递归条件 2.3 递归思想 3. 指针 3.1 指针相关概念 3.2 指针变量的定义 3.2.1. 定义格…

对于GPT-5在一年半后发布的期待!

首先&#xff0c;如果GPT-5真如OpenAI首席技术官米拉穆拉蒂&#xff08;Mira Murati&#xff09;在采访中所透露的那样&#xff0c;在一年半后发布&#xff0c;并在某些领域达到博士级的智能&#xff0c;这无疑将是一个令人振奋的消息。这一预测不仅反映了AI技术的快速发展&…

Raw Socket(二)循环队列收发数据

完整代码在&#xff1a; 添加链接描述 其中tcp_handshake文件夹是实现TCP三次握手的demo。 完整代码参考&#xff1a; https://github.com/praveenkmurthy/Raw-Sockets 代码实现基于raw socket的TCP协议&#xff0c;发送http请求包并接收回包&#xff0c;…

C# Winform布局控件的几种方式

在 C# WinForms 应用程序中&#xff0c;布局控件和布局管理器可以帮助开发者创建响应式的用户界面&#xff0c;即使在窗口大小改变时也能保持控件的正确位置和尺寸。 通常我们采用Panel和Dock&#xff0c;辅助Anchor实现类似如下的布局。 以下是几种常见的布局控件和方法&…

07:串口通信二

串口编程 1、与波特率之相关的寄存器2、PCON寄存器3、SCON寄存器4、配置的代码分析5、向PC发送一段字符串6、PC机向单片机发送字符控制LED1灯的亮灭 1、与波特率之相关的寄存器 如图&#xff0c;与串口通信相关的寄存器主要是SCON和PCON寄存器。 2、PCON寄存器 SMOD&#xff1…

普通人还有必要学习 Python 之类的编程语言吗?

在开始前分享一些编程的资料需要的同学评论888即可拿走 是我根据网友给的问题精心整理的对于编程的重要性&#xff0c;这里就不详谈了。 未来&#xff0c;我们和机器的交流会越来越多&#xff0c;编程可以简单看作是和机器对话并分发给机器任务。机器不仅越来越强大&#xff0…

java面向对象进阶篇--static

一、前言 java进阶篇已经开始了&#xff0c;先从面向对象开始&#xff0c;由于时间原因今天就只更新了static部分&#xff0c;内容上特别详细&#xff0c;一些特别的注意事项也在反复的提醒大家。 温馨提示一下&#xff0c;往后的java篇会越来越难&#xff0c;希望大家能够坚…

IOS上微信小程序密码框光标离开提示存储密码解决方案

问题&#xff1a; ios密码框输入密码光标离开之后会提示存储密码的弹窗 解决方案 1、在苹果手机上面把 “自动填充密码”关闭&#xff0c;但是苹果这个默认开启&#xff0c;而且大部分客户也不会去自己关闭。 2、欺骗苹果手机&#xff0c;代码实现。 先说解决思路&#xf…

玩转HarmonyOS NEXT之IM应用首页布局

本文从目前流行的垂类市场中&#xff0c;选择即时通讯应用作为典型案例详细介绍HarmonyOS NEXT的各类布局在实际开发中的综合应用。即时通讯应用的核心功能为用户交互&#xff0c;主要包含对话聊天、通讯录&#xff0c;社交圈等交互功能。 应用首页 创建一个包含一列的栅格布…

[图解]SysML和EA建模住宅安全系统-14-黑盒系统规约

1 00:00:02,320 --> 00:00:07,610 接下来&#xff0c;我们看下一步指定黑盒系统需求 2 00:00:08,790 --> 00:00:10,490 就是说&#xff0c;把这个系统 3 00:00:11,880 --> 00:00:15,810 我们的目标系统&#xff0c;ESS&#xff0c;看成黑盒 4 00:00:18,030 --> …