机器学习算法(六)---逻辑回归
常见的十大机器学习算法:
机器学习算法(一)—决策树
机器学习算法(二)—支持向量机SVM
机器学习算法(三)—K近邻
机器学习算法(四)—集成算法
机器学习算法(五)—聚类
机器学习算法(六)—逻辑回归
机器学习算法(七)—Apriori 关联分析
机器学习中监督学习模型的任务重点在于根据已有经验知识对未知样本的目标/标记进行预测。根据目标预测变量的类型不同,把监督学习任务大体分为分类学习和回归预测两类。分类学习是最为常见的监督学习问题,其中,最基础的是二分类问题,除此之外还有多分类问题。
一、逻辑回归
1.1 模型介绍
逻辑回归是在数据服从伯努利分布的假设下,通过极大似然的方法,运用梯度下降法来求解参数,从而达到将数据二分类的目的。
逻辑回归是一种用于二分类问题的统计方法,引入了一种 S型曲线(Sigmoid函数),它能将输出值压缩到0和1之间,从而解决了线性回归不适用分类问题的问题。
Sigmoid函数:

其中,Z=w0+w1x1+w2x2+…+(wn)xn=W*X,逻辑回归可以将 z 映射为一个 0 到 1 之间的概率。X表示特征向量,W表示模型的参数。

1.2 工作原理
逻辑回归主要用于估计某个事件发生的概率,核心思想是使用线性回归来计算一个分数(即Z ),然后通过 Sigmoid函数将这个分数转化为概率,再以此概率进行分类。逻辑回归的参数是通过极大似然估计来确定。

(1)损失函数
使用交叉熵损失函数来衡量模型预测的概率与真实类别标签之间的差距。交叉熵损失定义如下:

其中,yi是真实类别,pi是模型的预测概率,m 是样本数量。
(2)优化算法
使用梯度下降法来更新权重和偏置项,以最小化损失函数。
1.3 算法流程
1、初始化
设定初始参数 W,可以随机选择,也可以设为零。
2、前向传播
对每一个样本计算线性组合,应用逻辑回归函数计算概率
3、计算损失
使用对数似然函数计算损失
4、梯度计算
计算梯度
5、参数更新
更新参数
6、迭代
重复前向传播、损失计算、梯度计算和参数更新,直到收敛或达到预设的迭代次数。
7、分类决策
使用训练好的模型对新数据进行预测,根据计算出的概率 p 和阈值进行分类。
1.4 逻辑回归优缺点
优点:
- 1.形式简单,模型的可解释性好
- 2.训练速度较快
- 3.方便调整输出结果,通过调整阈值的方式
缺点:
- 1.无法自动进行特征筛选
- 2.只能处理二分类问题
- 3.很难处理数据不平衡问题
1.5 案例
案例数据为‘良/恶性乳腺肿瘤预测数据’,该数据共有569条样本,1列表征肿瘤类型的数值,以及30列与肿瘤相关的医学特征(30个特征(10个平均值,10个标准差,10个最值))。

import pandas as pd
import numpy as np
from sklearn.datasets import load_breast_cancer #引入乳腺癌的数据集
from sklearn.model_selection import train_test_split #用于分割数据集
from sklearn.preprocessing import StandardScaler # 归一化
from sklearn.linear_model import LogisticRegression # 导入逻辑回归模型
from sklearn.linear_model import SGDClassifier #导入随机梯度下降分类模型
from sklearn.metrics import classification_report
cancer = load_breast_cancer()
print(cancer.data.shape)
print(cancer.target.shape)

x=cancer.data
y=cancer.target
x

y

x_train,x_test,y_train,y_test = train_test_split(x,y,test_size=0.3,random_state=33)
#标准化数据,使得每个维度特征数据方差为1,均值为0,预测结果不会被某些维度过大的特征值而主导
ss=StandardScaler()
X_train=ss.fit_transform(x_train)
X_test=ss.transform(x_test)
#初始化
lr=LogisticRegression()
sgdc=SGDClassifier()
#调用LogisticRegression中fit函数/模块训练参数
lr.fit(X_train,y_train)
#使用训练好的模型lr对x_test数据进行预测
lr_y_predict=lr.predict(X_test)#调用SGDClassifier中fit函数/模块训练参数
sgdc.fit(X_train,y_train)
#使用训练好的模型lr对x_test数据进行预测
sgdc_y_predict=sgdc.predict(X_test)#对于乳腺癌肿瘤预测问题,显然更加关注召回率和精确率更加接近的模型给予更高的分数。
print('Accuracy of LR Classifier:',lr.score(X_test,y_test))
print(classification_report(y_test,lr_y_predict,target_names=['Benign','Malignant']))
#Benign:良性 Malignant:恶性
#macro avg 即宏均值,可理解为普通的平均值。对应的概念还有微均值 micro avg
#weighted avg 加权平均

print('Accuracy of sgdc Classifier:',sgdc.score(X_test,y_test))
print(classification_report(y_test,sgdc_y_predict,target_names=['Benign','Malignant']))

macro avg 即宏均值,可理解为普通的平均值。对应的概念还有微均值 micro avg
宏平均是先对每一个类统计指标值,然后在对所有类求算术平均值。微平均是对每一个实例不分类别进行统计建立全局混淆矩阵,然后计算相应指标。
如果每个class的样本数量相差不大,那么宏平均和微平均差异也不大,如果每个class的相差较大并且你想:更注重样本量多的class:使用宏平均;更注重样本量少的class:使用微平均。
LogisticRegression比起SGDClassifier在测试集上表现有更高的准确性,一般而言,对于训练数据规模在10万以上的数据,推荐使用随机梯度算法对模型参数进行估计。
1.6 classification_report()参数
classification_report(y_true,y_pred,labels=None,target_names=None,sample_weight=None,digits=2,output_dict=False,zero_division=“warn”)
y_true:真实值
y_pred:预测值
labels:标签索引列表,可选参数,数组形式
target_names:与标签匹配的名称,可选参数,数组形式
sample_weight:样本权重,当“output_dict”为“True”时,这将被忽略,并且返回的值不会四舍五入。
digits:格式化输出浮点值的位数。默认为2,是否输出字典。默认为False,如果为True则输出结果形式为字典。
zero_division:设置存在零除法时返回的值。默认为warn。如果设置为“warn”,这相当于0,但也会引发警告。
二、逻辑回归与线性回归的区别与联系
-
1.分类与回归:
线性回归模型是预测一个连续变量
逻辑回归是预测一个分类变量 -
2.输出:
线性回归 连续型 线性回归容易受异常值影响
逻辑回归 分类型 -
3.参数估计方法
线性回归使用的是最小平方误差损失函数,对偏离真实值越远的数据惩罚越严重
逻辑回归使用似然函数进行参数估计,使用交叉熵作为损失函数
相关文章:
机器学习算法(六)---逻辑回归
常见的十大机器学习算法: 机器学习算法(一)—决策树 机器学习算法(二)—支持向量机SVM 机器学习算法(三)—K近邻 机器学习算法(四)—集成算法 机器学习算法(五…...
计算机科学中的主要协议
1、主要应用层协议: HTTP、FTP、SMTP、POP、IMAP、DNS、TELNET和SSH等 应用层协议的主要功能是支持网络应用,定义了不同应用程序之间的通信规则。它们负责将用户操作转换为网络可以理解的数据格式,并通过传输层进行传输。应用层协议直接与用…...
下载maven 3.6.3并校验文件做md5或SHA512校验
一、下载Apache Maven 3.6.3 Apache Maven 3.6.3 官方下载链接: 二进制压缩包(推荐): ZIP格式: https://archive.apache.org/dist/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.zipTAR.GZ格式: https://archive.apache.org/dist/…...
【Android】View工作原理
View 是Android在视觉上的呈现在界面上Android提供了一套GUI库,里面有很多控件,但是很多时候我们并不满足于系统提供的控件,因为这样就意味这应用界面的同类化比较严重。那么怎么才能做出与众不同的效果呢?答案是自定义View&#…...
TIE算法具体求解-为什么是泊松方程和傅里叶变换
二维泊松方程的通俗理解 二维泊松方程 是偏微分方程的一种形式,通常用于描述空间中某个标量场(如位相场、电势场)的分布规律。其一般形式为: ∇ 2 ϕ ( x , y ) f ( x , y ) \nabla^2 \phi(x, y) f(x, y) ∇2ϕ(x,y)f(x,y) 其…...
postman中获取随机数、唯一ID、时间日期(包括当前日期增减)截取指定位数的字符等
在Postman中,您可以使用内置的动态变量和编写脚本的方式来获取随机数、唯一ID、时间日期以及截取指定位数的字符。以下是具体的操作方法: 一、postman中获取随机数、唯一ID、时间日期(包括当前日期增减)截取指定位数的字符等 获取…...
【计算机网络】实验3:集线器和交换器的区别及交换器的自学习算法
实验 3:集线器和交换器的区别及交换器的自学习算法 一、 实验目的 加深对集线器和交换器的区别的理解。 了解交换器的自学习算法。 二、 实验环境 • Cisco Packet Tracer 模拟器 三、 实验内容 1、熟悉集线器和交换器的区别 (1) 第一步:构建网络…...
flink学习(14)—— 双流join
概述 Join:内连接 CoGroup:内连接,左连接,右连接 Interval Join:点对面 Join 1、Join 将有相同 Key 并且位于同一窗口中的两条流的元素进行关联。 2、Join 可以支持处理时间(processing time)和事件时…...
HTTP协议详解:从HTTP/1.0到HTTP/3的演变与优化
深入浅出:从头到尾全面解析HTTP协议 一、HTTP协议概述 1.1 HTTP协议简介 HTTP(HyperText Transfer Protocol,超文本传输协议)是互联网上应用最广泛的通信协议之一。它用于客户端与服务器之间的数据传输,尤其是在Web…...
张量并行和流水线并行在Transformer中的具体部位
目录 张量并行和流水线并行在Transformer中的具体部位 一、张量并行 二、流水线并行 张量并行和流水线并行在Transformer中的具体部位 张量并行和流水线并行是Transformer模型中用于提高训练效率的两种并行策略。它们分别作用于模型的不同部位,以下是对这两种并行的具体说…...
WEB开发: 丢掉包袱,拥抱ASP.NET CORE!
今天的 Web 开发可以说进入了一个全新的时代,前后端分离、云原生、微服务等等一系列现代技术架构应运而生。在这个背景下,作为开发者,你一定希望找到一个高效、灵活、易于扩展且具有良好性能的框架。那么,ASP.NET Core 显然是一个…...
【论文阅读】Federated learning backdoor attack detection with persistence diagram
目的:检测联邦学习环境下,上传上来的模型是不是恶意的。 1、将一个模型转换为|L|个PD,(其中|L|为层数) 如何将每一层转换成一个PD? 为了评估第𝑗层的激活值,我们需要𝑐个输入来获…...
Gooxi Eagle Stream 2U双路通用服务器:性能强劲 灵活扩展 稳定易用
人工智能的高速发展开启了飞轮效应,实施数字化变革成为了企业的一道“抢答题”和“必答题”,而数据已成为现代企业的命脉。以HPC和AI为代表的新业务就像节节攀高的树梢,象征着业务创新和企业成长。但在树梢之下,真正让企业保持成长…...
【计算机网络】实验2:总线型以太网的特性
实验 2:总线型以太网的特性 一、 实验目的 加深对MAC地址,IP地址,ARP协议的理解。 了解总线型以太网的特性(广播,竞争总线,冲突)。 二、 实验环境 • Cisco Packet Tracer 模拟器 三、 实…...
如何在Spark中使用gbdt模型分布式预测
这目录 1 训练gbdt模型2 第三方包python环境打包3 Spark中使用gbdt模型3.1 spark配置文件3.2 主函数main.py 4 spark任务提交 1 训练gbdt模型 我们可以基于lightgbm快速的训练一个gbdt模型,训练相对比较简单,只要把训练样本处理好,几行代码可…...
Qt-5.14.2 example
官方历程很丰富,modbus、串口、chart图表、3D、视频 共享方便使用 Building and Running an Example You can test that your Qt installation is successful by opening an existing example application project. To run an example application on an Android …...
virtualbox给Ubuntu22创建共享文件夹
1.在windows上的操作,创建共享文件夹Share 2.Ubuntu22上的操作,创建共享文件夹LinuxShare 3.在virtualbox虚拟机设置里,设置共享文件夹 共享文件夹路径:选择Windows系统中你需要共享的文件夹 共享文件夹名称:挂载至wi…...
GPT打字机效果—— fetchEventSouce进行sse流式请求
EventStream基本用法 与 WebSocket 不同的是,服务器发送事件是单向的。数据消息只能从服务端到发送到客户端(如用户的浏览器)。这使其成为不需要从客户端往服务器发送消息的情况下的最佳选择。 const evtSource new EventSource(“/api/v1/…...
SpringBoot 在线家具商城:设计考量与实现细节聚焦
第4章 系统设计 市面上设计比较好的系统都有一个共同特征,就是主题鲜明突出。通过对页面简洁清晰的布局,让页面的内容,包括文字语言,或者视频图片等元素可以清晰表达出系统的主题。让来访用户无需花费过多精力和时间找寻需要的内容…...
每日速记10道java面试题07
其他资料: 每日速记10道java面试题01-CSDN博客 每日速记10道java面试题02-CSDN博客 每日速记10道java面试题03-CSDN博客 每日速记10道java面试题04-CSDN博客 每日速记10道java面试题05-CSDN博客 每日速记10道java面试题06-CSDN博客 目录 1.线程的生命周期在j…...
实战演练:基于快马与豆包开放平台,快速开发智能邮件处理助手
今天想和大家分享一个实战项目:基于豆包开放平台的智能邮件助手开发过程。这个工具特别适合需要频繁处理邮件的职场人士,能自动完成邮件摘要、待办事项提取、回复草拟等重复性工作。 项目背景与需求分析 日常工作中,我们经常要处理大量邮件。…...
人脸识别OOD模型在金融领域的身份验证应用
人脸识别OOD模型在金融领域的身份验证应用 1. 引言 想象一下这样的场景:一位银行客户正在通过手机APP进行大额转账,系统需要快速准确地确认他的身份。传统的人脸识别系统可能会因为光线不佳、佩戴口罩或者图像模糊而无法正常工作,甚至可能被…...
4步轻松搞定Windows系统优化:Win11Debloat让你的电脑重获新生
4步轻松搞定Windows系统优化:Win11Debloat让你的电脑重获新生 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter…...
CodeBlocks高效开发环境配置指南:从字体优化到智能编码
1. CodeBlocks开发环境基础配置 刚接触CodeBlocks时,我经常被默认的界面和功能搞得头晕眼花。经过多年实战,我发现合理的初始配置能让开发效率提升至少50%。我们先从最基础的视觉优化开始。 字体设置是影响编码舒适度的首要因素。默认的字体大小在1080p屏…...
基于Vue的川汇水产养殖管理系统[vue]-计算机毕业设计源码+LW文档
摘要:随着水产养殖业的快速发展,传统的管理方式已难以满足现代化水产养殖的需求。本文介绍了一款基于Vue框架开发的川汇水产养殖管理系统,该系统旨在提高水产养殖管理的效率和精准度。系统涵盖了系统用户管理、水质管理、药品管理、设备管理、…...
Memos笔记数据安全吗?手把手教你配置自动备份到GitHub/对象存储(防丢指南)
Memos数据安全全攻略:从本地备份到云端同步的完整方案 Memos作为一款轻量级开源笔记工具,凭借其简洁界面和本地存储特性赢得了不少用户青睐。但数据安全始终是悬在每位用户心头的一把剑——服务器宕机、硬盘损坏、误操作删除都可能让珍贵笔记瞬间消失。本…...
继电器触点粘接?手把手教你用NTC热敏电阻搞定大功率负载保护
大功率负载下继电器触点粘接的工程解决方案:NTC热敏电阻实战指南 当你在深夜调试一块电源板时,突然闻到焦糊味——继电器又粘接了。这不是个例,据统计,工业控制系统中约23%的继电器故障源于触点粘接,而大电流场景下这一…...
多智能体AI交易系统技术落地实践:从架构设计到生产部署
多智能体AI交易系统技术落地实践:从架构设计到生产部署 【免费下载链接】TradingAgents-CN 基于多智能体LLM的中文金融交易框架 - TradingAgents中文增强版 项目地址: https://gitcode.com/GitHub_Trending/tr/TradingAgents-CN 在金融科技快速发展的今天&am…...
电价狂降、负值频现!2026电力现货市场惊变,出清电价底层逻辑全拆解
当“0电价”甚至“负电价”成为常态,电力行业的盈利逻辑正在被彻底颠覆。2026年的春天,电力行业迎来了一场前所未有的“地震”。就在刚刚过去的一季度,辽宁电力现货市场全天均价首次跌入负值区间,1月1日至25日短短25天内ÿ…...
ROS2实战:用hdl_localization+Velodyne激光雷达实现室内机器人实时3D定位(环境配置与调参心得)
ROS2实战:hdl_localization与Velodyne激光雷达的室内3D定位调优指南 在机器人自主导航领域,实时精准定位始终是核心挑战之一。当你的移动机器人搭载着Velodyne激光雷达在复杂室内环境中穿行时,hdl_localization提供的3D点云匹配方案能带来令…...
