【机器学习】一文掌握逻辑回归全部核心点(上)。

逻辑回归核心点-上

  • 1、引言
  • 2、逻辑回归核心点
    • 2.1 定义与目的
    • 2.2 模型原理
      • 2.2.1 定义解析
      • 2.2.2 公式
      • 2.2.3 代码示例
    • 2.3 损失函数与优化
      • 2.3.1 定义解析
      • 2.3.2 公式
      • 2.3.3 代码示例
    • 2.4 正则化
      • 2.4.1 分类
      • 2.4.2 L1正则化
      • 2.4.3 L2正则化
      • 2.4.4 代码示例
  • 3、总结

1、引言

小屌丝:鱼哥,你说逻辑归回需要掌握哪些技能?
小鱼:我上一篇不是写了逻辑回归的的博文嘛~
小屌丝:意犹未尽,我还想探索的更深层的。
小鱼:额… 有多深?
小屌丝:逻辑回归的核心要点有哪些?
小鱼:这个…
小屌丝:这个不可以吗?
小鱼:这个可以啊。
小屌丝:吓我一跳,我还以为不行呢。
小鱼:鉴于最近学习这么认真,我们今天就来聊一聊逻辑回归的核心要点。
在这里插入图片描述

2、逻辑回归核心点

2.1 定义与目的

  • 定义:逻辑回归是一种广义的线性模型,用于解决二分类问题。尽管名字中包含“回归”,但逻辑回归实际上是一种分类算法,它输出的是样本属于某个类别的概率。
  • 目的:逻辑回归的目的是根据给定的输入特征预测样本所属的类别。它通常用于处理二分类问题,但也可以通过一些技术扩展到多分类问题。
  • 应用场景:逻辑回归广泛应用于各种领域,如垃圾邮件检测、疾病预测、金融风险评估等

2.2 模型原理

2.2.1 定义解析

  • 线性回归部分:逻辑回归首先通过线性回归模型计算出一个得分或线性预测值。这个值是基于输入特征和相应权重的加权和,再加上一个偏置项。
  • 逻辑函数(sigmoid函数):线性预测值通过sigmoid函数转换为概率值。sigmoid函数将任何实数映射到(0, 1)区间内,使得输出可以解释为属于某个类别的概率。
  • 决策边界:根据权重和偏置项,逻辑回归模型定义了一个决策边界,用于分隔不同类别的样本。这个边界可以是线性的,也可以是非线性的,取决于特征的变换和选择。

2.2.2 公式

sigmoid函数的公式为:

[ σ ( z ) = 1 1 + e − z ] [ \sigma(z) = \frac{1}{1 + e^{-z}} ] [σ(z)=1+ez1]

2.2.3 代码示例

便于理解,代码展示

# 使用上面定义的sigmoid函数  
z = 2.0  
probability = sigmoid(z)  
print("sigmoid函数输出:", probability)

2.3 损失函数与优化

2.3.1 定义解析

  • 对数损失函数(log-loss):逻辑回归使用对数损失函数来衡量模型预测与实际标签之间的差异。对数损失函数鼓励模型对正确类别的预测概率接近1,而对错误类别的预测概率接近0。
  • 优化算法:为了最小化损失函数,逻辑回归通常使用梯度下降法或其变种(如随机梯度下降、批量梯度下降等)进行优化。这些算法通过迭代更新权重和偏置项来逐步降低损失函数的值。
  • 学习率与收敛条件:在优化过程中,学习率是一个重要的超参数,它控制权重更新的步长。此外,还需要设置收敛条件来确定优化何时停止,以避免过度拟合或过早停止训练。

2.3.2 公式

对数损失函数的公式为:

[ J ( θ ) = − 1 m ∑ i = 1 m [ y ( i ) log ⁡ ( h ( x ( i ) ; θ ) ) + ( 1 − y ( i ) ) log ⁡ ( 1 − h ( x ( i ) ; θ ) ) ] ] [ J(\theta) = -\frac{1}{m} \sum_{i=1}^{m} [y^{(i)} \log(h(x^{(i)}; \theta)) + (1 - y^{(i)}) \log(1 - h(x^{(i)}; \theta))] ] [J(θ)=m1i=1m[y(i)log(h(x(i);θ))+(1y(i))log(1h(x(i);θ))]]

其中,

  • ( m ) 是样本数量。
  • ( y^{(i)} ) 是第 ( i ) 个样本的实际标签(0或1)。
  • ( h(x^{(i)}; \theta) ) 是第 ( i ) 个样本的预测概率。
  • ( \theta ) 是参数向量,包括权重和偏置项。

2.3.3 代码示例

代码示例

# -*- coding:utf-8 -*-
# @Time   : 2024-03-02
# @Author : Carl_DJimport numpy as np  # 定义对数损失函数  
def log_loss(y_true, y_pred):  m = len(y_true)  cost = -np.sum(y_true * np.log(y_pred) + (1 - y_true) * np.log(1 - y_pred)) / m  return cost  # 示例真实标签和预测概率  
y_true = np.array([0, 1, 1, 0])  
y_pred = np.array([0.1, 0.9, 0.8, 0.4])  # 计算对数损失  
loss = log_loss(y_true, y_pred)  
print("对数损失:", loss)

2.4 正则化

2.4.1 分类

  • L1正则化:通过在损失函数中加入权重系数的绝对值之和,L1正则化可以产生稀疏的权重矩阵,即许多权重为0。这有助于减少模型的复杂度,并可能提高模型的泛化能力。
  • L2正则化:L2正则化通过在损失函数中加入权重系数的平方和来实现。它倾向于使权重整体偏小,但并不使它们为0。L2正则化有助于减少过拟合,提高模型的稳定性。
  • 正则化系数的选择:正则化系数 (\lambda) 是一个超参数,需要手动设置。选择合适的 (\lambda) 值对于平衡模型的复杂度和拟合能力至关重要。通常,我们可以通过交叉验证等技术来选择最优的 (\lambda) 值。

2.4.2 L1正则化

L1正则化的损失函数为:

[ J ( θ ) = − 1 m ∑ i = 1 m [ y ( i ) log ⁡ ( h ( x ( i ) ; θ ) ) + ( 1 − y ( i ) ) log ⁡ ( 1 − h ( x ( i ) ; θ ) ) ] + λ ∑ j = 1 n ∣ θ j ∣ ] [ J(\theta) = -\frac{1}{m} \sum_{i=1}^{m} [y^{(i)} \log(h(x^{(i)}; \theta)) + (1 - y^{(i)}) \log(1 - h(x^{(i)}; \theta))] + \lambda \sum_{j=1}^{n} |\theta_j| ] [J(θ)=m1i=1m[y(i)log(h(x(i);θ))+(1y(i))log(1h(x(i);θ))]+λj=1nθj]

2.4.3 L2正则化

L2正则化的损失函数为:

[ J ( θ ) = − 1 m ∑ i = 1 m [ y ( i ) log ⁡ ( h ( x ( i ) ; θ ) ) + ( 1 − y ( i ) ) log ⁡ ( 1 − h ( x ( i ) ; θ ) ) ] + λ 2 ∑ j = 1 n θ j 2 ] [ J(\theta) = -\frac{1}{m} \sum_{i=1}^{m} [y^{(i)} \log(h(x^{(i)}; \theta)) + (1 - y^{(i)}) \log(1 - h(x^{(i)}; \theta))] + \frac{\lambda}{2} \sum_{j=1}^{n} \theta_j^2 ] [J(θ)=m1i=1m[y(i)log(h(x(i);θ))+(1y(i))log(1h(x(i);θ))]+2λj=1nθj2]

2.4.4 代码示例

# -*- coding:utf-8 -*-
# @Time   : 2024-03-02
# @Author : Carl_DJimport numpy as np  # 定义sigmoid函数  
def sigmoid(z):  return 1 / (1 + np.exp(-z))  # 定义L2正则化逻辑回归的损失函数  
def logistic_regression_loss(w, b, X, y, lambda_val):  m = len(y)  A = sigmoid(np.dot(X, w) + b)  cost = (-1 / m) * np.sum(y * np.log(A) + (1 - y) * np.log(1 - A))  regularization = (lambda_val / (2 * m)) * np.sum(w**2)  return cost + regularization  # 定义梯度下降优化函数  
def gradient_descent(w, b, X, y, learning_rate, lambda_val, num_iterations):  m = len(y)  J_history = []  for i in range(num_iterations):  A = sigmoid(np.dot(X, w) + b)  dw = (1 / m) * np.dot(X.T, (A - y)) + (lambda_val / m) * w  db = (1 / m) * np.sum(A - y)  w = w - learning_rate * dw  b = b - learning_rate * db  J = logistic_regression_loss(w, b, X, y, lambda_val)  J_history.append(J)  return w, b, J_history  # 示例数据  
X = np.array([[1, 2], [2, 3], [3, 4], [4, 5]])  
y = np.array([0, 0, 1, 1])  # 初始化参数  
w = np.zeros(X.shape[1])  
b = 0  # 设置超参数  
learning_rate = 0.1  
lambda_val = 0.1  
num_iterations = 1000  # 运行梯度下降  
w, b, J_history = gradient_descent(w, b, X, y, learning_rate, lambda_val, num_iterations)  # 输出训练过程中的损失值  
print("训练过程中的损失值:", J_history)

3、总结

为了让大家更容易的理解与吸收这些知识,小鱼分两篇来分享。

  • 【机器学习】一文掌握逻辑回归全部核心点(上)。》

  • 【机器学习】一文掌握逻辑回归全部核心点(下)。
    我是小鱼

  • CSDN 博客专家

  • 阿里云 专家博主

  • 51CTO博客专家

  • 多个名企认证讲师等

  • 认证金牌面试官

  • 名企签约职场面试培训、职场规划师

  • 多个国内主流技术社区的认证专家博主

  • 多款主流产品(阿里云等)测评一、二等奖获得者

关注小鱼,学习机器学习领域的知识。

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

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

相关文章

OPENCV(0-1之0.0)

OPENCV 第1周:基础知识和安装目标内容 第2-3周:图像处理基础目标内容 第4-5周目标内容 第6-7周目标内容 第8周及以后目标内容 时间安排如下: 第1周:基础知识和安装 目标 了解计算机视觉的基本概念,安装OpenCV&#x…

xcode15,个推推送SDK闪退问题处理办法

个推iOS推送SDK最新版本 优化了xcode15部分场景下崩溃问题,以及回执上传问题,近期您的应用有发版计划,建议更新SDK: 1)GTSDK更新到3.0.5.0以及以上版本; 2)GTCommonSDK更新到3.1.0.0及以上版本…

如何进行软件安全性测试?CMA、CNAS软件安全测试报告获取

软件安全性测试是保障软件应用安全的重要手段,通过对软件系统的安全性进行全面评估和检测,以确保软件能够抵御各种潜在的安全威胁和风险。那么如何进行软件安全性测试?CMA、CNAS软件安全测试报告又该如何获取呢? 软件安全性测试是一种基于黑盒测试的方…

齐鲁制药集团勇担社会责任,以行动诠释担当

作为一家深具家国情怀的医药企业,齐鲁制药集团在专注药品创新与品质升级的同时,始终谨记企业公民的社会责任,凭借在医药健康领域的专业优势,数十年如一日参与各类社会公益事业,时至今日,齐鲁足迹早已遍布全…

【数据结构】二叉树---AVL树的实现

目录 一. 什么是AVL树 二. AVL树的结点结构定义 三. AVL树的动态平衡法 1. 左单旋转 --- RL(RotateLeft) 型调整操作 2. 右单旋转 --- RR(RotateRight) 型调整操作 3. 先左后右双旋转 --- RLR (RotateLeftRight) 型调整操作 4. 先右后左双旋转 --- RRL (RotateRightL…

综合利用Cisco Packet Tracer模拟器配置园区网

1. 内容 1.在课室交换机中创建各个课室的VLAN,并将1-20端口平均分配给各个课室。 2.使用课室交换机的每个端口只能接入一台计算机,发现违规就丢弃未定义地址的包。3.网络内部使用DHCP分配各课室的IP地址,在课室交换机按照第一题划分的VLAN地…

PHP使用AES进行加解密

前言 对接一个第三方平台,其使用AES对称加密 代码 //方式1 //加密 function enAES($originTxt, $keyQ6Mr6rDpn12iZb){return base64_encode(openssl_encrypt($originTxt, AES-128-ECB,$key, OPENSSL_RAW_DATA)); }//解密 function deAES($originTxt, $keyQ6Mr6rD…

Linux/BountyHunter

Enumeration nmap 第一次扫描发现系统对外开放了21,22,80端口,端口详细信息如下 和以前一样,先从80端口的http服务开始探索 TCP/80 访问站点,主页有三个按钮,about,contact和portal。看起来…

3D全景:为各行业提供更真实的交互体验

近年来,随着科技的不断发展,3D全景技术逐渐融入到了我们的日常生活中来。3D全景技术的应用落地,为广大用户提供了全新的视觉体验,让人们能够更加真实、直观地感受各行业的场景。 3D全景的优势就在于真实感和互动性,可以…

NDSS 2023

30th Annual Network and Distributed System Security Symposium, NDSS 2023, San Diego, California, USA, February 27 - March 3, 2023. 第30届年度网络与分布式系统安全研讨会,NDSS 2023,美国加利福尼亚州圣地亚哥,2023年2月27日至3月…

原型模式(Clone)——创建型模式

原型模式(clone)——创建型模式 什么是原型模式? 原型模式是一种创建型设计模式, 使你能够复制已有对象, 而又无需依赖它们所属的类。 总结:需要在继承体系下,实现一个clone接口,在这个方法中以本身作为拷…

openssl3.2 - exp - export ecc pubkey from ecc priv key

文章目录 openssl3.2 - exp - export ecc pubkey from ecc priv key概述笔记END openssl3.2 - exp - export ecc pubkey from ecc priv key 概述 前面实验已经生成了ECC私钥, 现在做从ECC私钥(内容为公私钥对, 里面既有私钥信息, 也有公钥信息)导出ECC公钥. 实验对应的命令行…

v-model 粗略解析

v-model 粗略解析 v-model是什么? 双向数据绑定,可以从data流向页面,也可以从页面流向data通常用于表单收集,v-model 默认绑定 value 值书写形式: v-model:value"" 或 v-model v-model原理是什么&#xf…

信道模拟器广泛应用于通信产业 我国企业竞争力不断提高

信道模拟器广泛应用于通信产业 我国企业竞争力不断提高 信道模拟器,模拟通信信道受环境因素影响产生各种特征的仪器,主要由接收电路、发射电路、模拟器、主控CPU等组成,可用于外场环境或者实验室环境中。 根据新思界产业研究中心发布的《202…

微信小程序一次性订阅requestSubscribeMessage授权和操作详解

一次性订阅:用户订阅一次发一次通知 一、授权 — requestSubscribeMessage Taro.requestSubscribeMessage({tmplIds: [], // 需要订阅的消息模板的id的集合success (res) {console.log("同意授权", res)},fail(res) {console.log(拒绝授权, res)}})点击或…

【Nginx】使用普通用户安装和运行Nginx经验分享

各位做运维的小伙伴在日常工作中,可能都会习惯性的使用 root 超级用户来安装和运行 Nginx。但是,如果所在的公司有安全部门,他们就可能会强烈的建议你将 Nginx 的运行用户整改为普通用户,来提升系统的安全性。下面我来分享下自己整…

基于R语言piecewiseSEM结构方程模型在生态环境领域技术教程

原文链接:基于R语言piecewiseSEM结构方程模型在生态环境领域技术应用https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247597092&idx7&sn176695e746eccff68e04edda6521f131&chksmfa823dc3cdf5b4d5b77181eb1bd9a2d659ff38e23c7ea78d33bc1cc7d0…

vue3+Echarts实现中国地图

成品图: 准备工作: 1、创建一个vue3的项目 2、安装Echarts,最好是安装新版本或者比较稳定的版本 3、开发地图需要一个china.json文件 这里我就介绍一下如何获取china,json文件 阿里云 DataV - 数据可视化平台 (aliyun.com) 复制上面地址打开网…

直方图均衡化原理和实现

基本思想 将原始图像的直方图分布转换为一个均匀分布的直方图,这样原图中的高频率亮度值会被展宽,而低频率亮度值则被压缩,从而达到增强图像对比度的效果。 计算过程 假设我们有一个灰度图像,其像素值范围从0到L-1(…

并发编程,java实现连接池功能

1、并发编程 并发带来的问题:类中的属性值被不同的线程并发修改,而属性值的修改常常是在方法中去修改的,所以最终要解决方法被不同的线程并发执行。 并发编程的目标:同一个方法或者不同的方法,不能在不同的线程同时执…