Scikit-Learn逻辑回归

news2024/11/26 11:53:41

Scikit-Learn逻辑回归

    • 1、逻辑回归概述
      • 1.1、逻辑回归
      • 1.2、逻辑回归的优缺点
      • 1.3、逻辑回归与线性回归
    • 2、逻辑回归的原理
      • 2.1、逻辑回归的概念与原理
      • 2.2、逻辑回归的损失函数
      • 2.3、梯度下降法求解逻辑回归的最优解
    • 3、Scikit-Learn逻辑回归
      • 3.1、决策边界
      • 3.2、Scikit-Learn逻辑回归API
      • 3.3、逻辑回归案例(鸢尾花分类)



1、逻辑回归概述


逻辑回归(Logistic Regression)主要解决二分类问题,用来表示某个事件发生的可能性。逻辑回归在机器学习知识结构中的位置如下:

在这里插入图片描述

1.1、逻辑回归


逻辑回归的思想最早可以追溯到19世纪,由英国统计学家Francis Galton在研究豌豆遗传问题时首次提出。然而,真正将逻辑回归应用于机器学习的是加拿大统计学家Hugh Everett,他在1970年代提出了广义线性模型(GLM),其中包括逻辑回归

逻辑回归这个算法的名称有一定的误导性。虽然它的名称中有“回归”,但它在机器学习中不是回归算法,而是分类算法。因为采用了与回归类似的思想来解决分类问题,所以它才会被称为逻辑回归

在逻辑回归中,我们不是直接预测输出值,而是预测输出值属于某一特定类别的概率。例如,一封邮件是垃圾邮件的概率(是与不是),广告被点击的概率(点与不点)等

逻辑回归通过Sigmoid函数将样本的特征与样本发生的概率联系起来,在拟合样本数据发生概率的时候,其实是在解决一个回归问题,当概率计算出来后,再根据概率进行分类处理。逻辑回归是在解决样本与样本发生的概率之间的回归问题

逻辑回归的函数表达式(Logistic函数或Sigmoid函数)为
g ( z ) = 1 1 + e − z \rm g(z)=\frac{1}{1+e^{-z}} g(z)=1+ez1

Sigmoid函数有时也用 σ ( z ) \sigma(z) σ(z)表示,其对应的图像为

import numpy as np
import matplotlib.pyplot as plt

z = np.arange(-5, 5, 0.01)
y = 1/(1+np.exp(-z))

plt.plot(z, y)
plt.show()

在这里插入图片描述

逻辑回归基于概率来进行分类。对于给定输入特征X,逻辑回归模型会计算输出标签y=1(正类)的条件概率:
P ( y = 1 ∣ X ) = 1 1 + e − ( θ T X + b ) P(y=1|X)=\frac{1}{1+e^{-(\theta^T X+b)}} P(y=1∣X)=1+e(θTX+b)1

其中, ω \omega ω是特征权重,b是偏置项

逻辑回归将线性回归的结果 y y y= θ T X \theta^T X θTX+ b b b带入到Sigmoid函数的自变量,并将其映射到0和1之间,使其可以解释为概率

逻辑回归与线性回归的关键区别在于,后者训练出来的模型的预测值域为( − ∞ -∞ ,+ ∞ ∞ ),换句话说,也就是对值域没有限制;而对于表示概率的值而言,其值域都是在(0,1)之间

更多关于逻辑回归的介绍见文章:传送门

1.2、逻辑回归的优缺点


优点:

  • 模型简单,分类计算量小,存储资源低,训练和预测速度快
  • 预测结果是观测样本的概率,易于理解,增加了解释性
  • 对逻辑回归而言,多重共线性并不是问题,它可以结合L2正则化来解决该问题

缺点:

  • 只能处理二分类问题,且逻辑回归假设数据是线性可分的,对于非线性特征,需要进行转换
  • 容易欠拟合,一般准确度不太高

1.3、逻辑回归与线性回归


逻辑回归与线性回归的区别详见文章:传送门

2、逻辑回归的原理

2.1、逻辑回归的概念与原理


逻辑回归的概念与原理推导详见文章:传送门

2.2、逻辑回归的损失函数


在逻辑回归(详见:传送门)一文中,我们已经给出并推导了逻辑回归的损失函数
J ( θ ) = − 1 m ∑ i = 1 m [ y i ln ⁡ y ^ i + ( 1 − y i ) ln ⁡ ( 1 − y ^ i ) ] J(\theta)=-\frac{1}{m}\sum_{i=1}^m[y_i\ln \hat y_i+(1-y_i)\ln(1-\hat y_i)] J(θ)=m1i=1m[yilny^i+(1yi)ln(1y^i)]

其中

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

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

相关文章

Hololens 2应用开发系列(3)——MRTK基础知识及配置文件配置(中)

Hololens 2应用开发系列(3)——MRTK基础知识及配置文件配置(中) 一、前言二、输入系统2.1 MRTK输入系统介绍2.2 输入数据提供者(Input Data Providers)2.3 输入动作(Input Actions)2…

AI入门笔记(三)

神经网络是如何工作的 神经网络又是如何工作的呢?我们用一个例子来解释。我们看下面这张图片,我们要识别出这些图片都是0并不难,要怎么交给计算机,让计算机和我们得出同样的结果?难点就在于模式识别的答案不标准&…

rabbitmq基础(1)

1、背景 能实现消息队列的框架软件有很多,kafka、rabbitmq、RocketMq、activeMq、Redis(非专业),各有各的特点和优缺点。但是之前的公司数据需求规模并非很大,所以采用rabbitmq作为消息队列。 2、rabbitMq的基础架构…

基于umdf2的驱动程序

源码下载:https://download.csdn.net/download/mao0514/88915667 win10 64位系统vs2019wdk inf安装: VOID UMDF2Driver1EvtIoDeviceControl(_In_ WDFQUEUE Queue,_In_ WDFREQUEST Request,_In_ size_t OutputBufferLength,_In_ size_t InputBufferLen…

Docker基础系列之DockerFile

Docker基础系列之Dockerfile 文章目录 Docker基础系列之Dockerfile1. Dockerfile是什么?1.1 Dockerfile概述1.2 构建三步骤 2. Dockerfile构建过程解析2.1 Dockerfile内容基础知识2.2 执行Dockerfile的大致流程 3. DockerFile体系结构(保留字指令)4. 案例4.1 首先创…

BUUCTF-MISC-[GUET-CTF2019]soul sipse1

题目链接:BUUCTF在线评测 (buuoj.cn) 下载附件是一个音频文件,使用au打开没有什么发现 试试kali中的steghide steghide extract -sf /root/桌面/out.wav 无密码分离出download.txt 打开txt文件发现是个网址,访问看看 下载后使用binwalk查看照…

同态加密+区块链,在大健康数据隐私保护中的应用

PrimiHub一款由密码学专家团队打造的开源隐私计算平台,专注于分享数据安全、密码学、联邦学习、同态加密等隐私计算领域的技术和内容。 近几年,越来越多的隐私计算技术被用于解决临床和研究数据共享中的隐私和安全问题。 当然,对这些技术的法…

Android 14后台服务永久保活的技术方法

Android 14后台服务永久保活的技术方法 在本篇博客中,我们将探讨如何创建一个在Android系统中不会被杀死的后台服务。 第一步:创建一个后台服务。 在这一步中,我们需要创建一个后台服务的代码。 第二步:在AndroidManifest.xml中…

HDFS简介与部署以及故障排错(超简单)

文章目录 一、HDFS介绍1、简介2、结构模型3、文件写入过程4、文件读取过程5、文件块的存放6、存储空间管理机制6.1 文件删除和恢复删除6.2 复制因子配置6.3 文件命名空间6.4 数据复制机制 二、环境搭建(单机版)1、修改主机名2、配置ssh免密登录3、Hadoop…

串的匹配算法——KMP算法

目录 一.特点 二.算法思想 三.公式证明 四.next数组及其练习 五.找规律计算next[k] 六.代码实现 一.特点 BF算法的特点是i回退,KMP算法的最大特点是i不回退,由于i不回退,所以KMP算法的时间复杂度是O(nm)。 二.算法思想 在匹配主串和子…

Ubuntu 22.04修改静态ip

1. 备份原网络配置文件 # 配置文件名称因机器设置有异 cd /etc/netplan cp 01-network-config.yaml 01-network-config.yaml.bak# 文件内容如下 network:version: 2renderer: NetworkManager2. 修改配置文件 使用 ipconfig 命令查看网络信息,ip addr 命令也可 我这…

day52(vueJS)json-server模拟数据

json-server介绍:::JSON Server 是一个用于快速搭建 REST API 的工具,它可以帮助我们在开发过程中快速模拟 一个后端 API 服务器,方便前端开发人员进行接口调试和开发。使用 JSON Server,你可以通过创建一个…

【Vue】VueX仓库

📝个人主页:五敷有你 🔥系列专栏:Vue ⛺️稳中求进,晒太阳 目录 Vue概述 是什么 场景: 优势 构建多组件共享环境 创建一个空仓库 核心概念 - state 状态 1. 提供数据 2.使用数据 ​编辑 …

在虚拟机vm下的Linux系统下 安装redis 超详细

打开Linux后 右键打开终端 1.输入:su root 登录root 密码是123456 2.然后输入:yum -y install gcc-c 安装gcc基础依赖包 3.yum -y install centos-release-scl 4.yum -y install devtoolset-9-gcc devtoolset-9-gcc-c devtoolset-9-binutils //为了编译最新版本的Redis源码 用…

纯手工搭建一个springboot maven项目

前言&#xff1a;idea社区版无法自动搭建项目&#xff0c;手动搭建的经验分析如下&#xff1a; 1 包结构 参考下图&#xff1a; 2 项目结构 3 maven依赖 具体的项目如图&#xff1a; 依据这个结构配置一个springboot 的 pom依赖&#xff1a; <?xml version"1.0…

SanctuaryAI推出Phoenix: 专为工作而设计的人形通用机器人

文章目录 1. Company2. Main2.1 关于凤凰™ (Phoenix)2.2 关于碳™(Carbon)2.3 商业化部署2.4 关于 Sanctuary Corporation 3. My thoughtsReference彩蛋&#xff1a;将手机变为桌面小机器人 唯一入选《时代》杂志 2023 年最佳发明的通用机器人。 称机器人自主做家务的速度和灵…

js SheetJS 合并表格导出到同一个excel中

最近有个需求,我在一个页面显示了4个表格, 然后合并导出到excel文件中 四个表,四个sheet,一个excel文件 最后导出时这样: 实现: 1,页面有个导出的checkbox,勾选则导出,不勾选不处理 2,在一个函数中,集中处理四个表数据获取,并将结果返回出来 //获取数据后返回为…

【C++】递归 1241 - 角谷猜想 1108 - 正整数N转换成一个二进制数

文章目录 一、问题&#xff1a;1241 - 角谷猜想二、问题&#xff1a;1108 - 正整数N转换成一个二进制数三、总结四、感谢 一、问题&#xff1a;1241 - 角谷猜想 类型&#xff1a;有规律的循环、递归。 题目描述&#xff1a; 日本一位中学生发现一个奇妙的定理&#xff0c;请角…

如何判断可编程电子负载是否合格?

可编程电子负载是一种可以模拟实际负载的电子设备&#xff0c;广泛应用于电源、电池、充电器等产品的测试和研发。判断可编程电子负载是否合格&#xff0c;需要从以下几个方面进行考量&#xff1a; 精度是衡量电子负载性能的重要指标&#xff0c;包括电流精度、电压精度、功率精…

ImportError: Could not import docarray python package解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…