python机器学习算法(赵志勇)学习笔记( Logistic Regression,LR模型)

article/2025/9/2 16:12:24

Logistic Regression(逻辑回归)

分类算法是典型的监督学习,分类算法通过对训练样本的学习,得到从样本特征到样本的标签之间的映射关系,也被称为假设函数,之后可利用该假设函数对新数据进行分类。

通过训练数据中的正负样本,学习样本特征到样本标签之间的假设函数,Logistic Regression算法是典型的线性分类器,有算法复杂度低、容易实现等特点。

Logistic Regression模型

线性可分和线性不可分

对于一个分类问题,通常可以分为线性可分与线性不可分两种。如果一个分类问题可以使用线性判别函数正确分类,则称该问题为线性可分否则为线性不可分问题

在这里插入图片描述

在这里插入图片描述

Logistic Regression模型

对于图1.1 所示的线性可分的问题,需要找到一条直线,能够将两个不同的类区分开,这条直线也称为超平面。 在Logistic Regression算法中,通过对训练样本的学习,最终得到该超平面,将数据分成正负两个类别如图1.1所示,

对于上述的超平面,可以使用如下的线性函数表示:
W x + b = 0 Wx+b=0 Wx+b=0
(W为权重,b为偏置,若在多维的情况下,权重W 和偏置b均为向量)

可以使用阈值函数,将样本映射到不同的类别中,常见的阈值函数有Sigmoid函数,其形式如下所示:
f ( x ) = 1 1 + e − x f(x)=\frac{1}{1+e^{-x}} f(x)=1+ex1
Sigmoid函数的图像

在这里插入图片描述

从Sigmoid函数的图像可以看出,其函数的值域为(0,1),在0附近的变化比较明显。其导函数 f′(x)为:

在这里插入图片描述

Python实现Sigmoid函数

import numpy as np
def sig(x):'''Sigmoid函数input: x(mat):feature*Woutput: sigmoid(x)(mat):Sigmoid值'''return 1.0/(1+np.exp(-x))

Sigmoid函数的输出为sigmoid值,对于输入向量X,其属于正例的概率为:

在这里插入图片描述

σ 表示的是Sigmoid函数。那么,对于输入向量X,其属于负例的概率为:
在这里插入图片描述
对于Logistic Regression算法来说,需要求解的分隔超平面中的参数,即为权重矩阵W 和偏置向量b,那么,这些参数该如何求解呢?为了求解模型的两个参数,首先必须定义损失函数。

损失函数

对于上述的Logistic Regression算法,其属于类别y的概率为:

在这里插入图片描述

要求上述问题中的参数W 和b,可以使用极大似然法对其进行估计。假设训练数据集有m个训练样本{(X(1),y(1)),(X(2),y(2)),…,(X(m) ,y(m))},则其似然函数为:

在这里插入图片描述
其中,假设函数为:

在这里插入图片描述

对于似然函数的极大值的求解,通常使用Log似然函数,在Logistic Regression算法中,通常是将负的Log似然函数作为其损失函数,即the negativelog-likelihood (NLL)作为其损失函数,此时,需要计算的是NLL的极小值。损失函数lW,b 为:

在这里插入图片描述

为了求得损失函数lW,b 的最小值,可以使用基于梯度的方法进行求解。

梯度下降法

在机器学习算法中,对于很多监督学习模型,需要对原始的模型构建损失函数l,接下来便是通过优化算法对损失函数l进行优化,以便寻找到最优的参数W。在求解机器学习参数W 的优化算法时,使用较多的是基于梯度下降的优化算法(Gradient Descent,GD)。

优点:求解过程中只需求解损失函数的一阶导数,计算成本较小,能在很多大规模数据集上得到应用

含义:通过当前点的梯度方向寻找到新的迭代点,并从当前点移动到新的迭代点继续寻找新的迭代点,直到找到最优解。

梯度下降法的流程

根据初始点在每一次迭代的过程中选择下降法方向,进而改变需要修改的参数,对于优化问题min f(w),梯度下降法的详细过程如下所示。

  • 随机选择一个初始点W0
  • 重复以下过程

在这里插入图片描述

  • 决定梯度下降的方向
  • 选择步长a
  • 更新:Wi+1=Wi+a·di
  • 直到满足终止条件

具体过程如图1.4所示

在这里插入图片描述

在初始时,在点w0 处,选择下降的方向d0 ,选择步长α ,更新w的值,此时到达w1 处,判断是否满足终止的条件,发现并未到达最优解w ,重复上述的过程,直至到达w

凸优化与非凸优化

凸优化问题是指只存在一个最优解的优化问题,即任何一个局部最优解即全局最优解,如图1.5所示。

在这里插入图片描述

非凸优化是指在解空间中存在多个局部最优解,而全局最优解是其中的某一个局部最优解,如图1.6所示。

在这里插入图片描述

最小二乘(Least Squares)、岭回归(Ridge Regression)和Logistic回归(Logistic Regression)的损失函数都是凸优化问题。

利用梯度下降法训练Logistic Regression模型

对于上述的Logistic Regression算法的损失函数可以通过梯度下降法对其进行求解,其梯度为:


http://chatgpt.dhexx.cn/article/YQg9sUkI.shtml

相关文章

推荐系统实战中LR模型训练(二)

背景: 上一篇推荐系统实战中LR模型训练(一) 中完成了LR模型训练的代码部分。本文中将详细讲解数据准备部分,即将文本数据数值化为稀疏矩阵的形式。 文本数据: 稀疏矩阵: 实现过程: 文本数据格…

机器学习 | LR逻辑回归模型

逻辑回归(Logistic Regression,简称LR)名为“回归”却是用来分类工作、在线性数据上表现优异的分类器。 视频教程:第07讲:逻辑回归是线性分类器的佼佼者 LR是数据挖掘领域常用的一种分类模型,常用于解决二分类问题,例如垃圾邮件判定、经济预测、疾病诊断(通过年龄、性…

推荐系统实战中LR模型训练(一)

背景: 在“批量导入数据到Redis” 中已经介绍了将得到的itema item1:score1,item2:score2…批量导入到Redis数据库中。本文的工作是运用机器学习LR技术,抽取相应的特征,进行点击率的估计。 点击率(Click-Through-Rate, CTR&#…

Prometheus TSDB存储原理

Python微信订餐小程序课程视频 https://blog.csdn.net/m0_56069948/article/details/122285951 Python实战量化交易理财系统 https://blog.csdn.net/m0_56069948/article/details/122285941 Prometheus 包含一个存储在本地磁盘的时间序列数据库,同时也支持与远程…

数据库必知必会:TiDB(8)TiDB 数据库 SQL 执行流程

数据库必知必会:TiDB(8)TiDB 数据库 SQL 执行流程 数据库 SQL 执行流程DML语句读流程概述SQL的Parse与CompileSQL的Execute DML语句写流程概述执行 DDL语句流程概要执行 知识点回顾 数据库 SQL 执行流程 在TiDB中三个重要组件: …

时不我待,TSDB崛起正当时

近期有小伙伴问Jesse,为什么你们要在现在这个时点做TSDB,这是个好时点吗?我认为这是个挺好的问题,因为再强的个人也比不上一个团队,再牛的团队也需要顺势而为。我们其实一直在深度思考“Why Now”的问题,因…

时间序列数据库TSDB排名

DB-Engines 中时序列数据库排名 我们先来看一下DB-Engines中关于时序列数据库的排名,这是当前(2016年2月的)排名情况: 下面,我们就按照这个排名的顺序,简单介绍一下这些时序列数据库中的一些。下面要介绍的…

TiDB Server

目录 TiDB Server架构 Online DDL GC 缓存管理 热点小表缓存 例题 TiDB Server架构 Protocol Layer:负责处理客户端的连接 Parse,Compile:负责SQL语句的解析与编译,并生成执行计划 Executor,DistSQL&#xff0…

Prometheus TSDB

TSDB 概述: Head: 数据库的内存部分 Block: 磁盘上持久块,是不变的 WAL: 预写日志系统 M-map: 磁盘及内存映射 粉红色框是传入的样品,样品先进入Head中存留一会,然后到磁盘、内存映射中(蓝色框)。然后当内…

TiDB体系结构之TiDB Server

TiDB体系结构之TiDB Server TiDB ServerTiDB Server主要组成模块SQL语句的解析和编译行数据与KV的转化SQL读写相关模块在线DDL相关模块TiDB的垃圾回收TiDB Server的缓存 TiDB Server TiDB Server的主要作用如下: 处理客户端连接SQL语句的解析和编译关系型数据与KV…

TSDB助力风电监控

各位小伙伴大家好,本期Jesse想再来跟大家聊聊TSDB的应用场景,在此也感谢尹晨所著的《时序数据库在风电监控系统中的应用》一文,其为我们探究TSDB在风电系统中的应用提供了重要的帮助。 本文仅代表个人观点,如有偏颇之处&#xff…

dbt-tidb 1.2.0 尝鲜

作者: shiyuhang0 原文来源: https://tidb.net/blog/1f56ab48 本文假设你对 dbt 有一定了解。如果是第一次接触 dbt,建议先阅读 官方文档 或 当 TiDB 遇见 dbt 本文中的示例基于官方维护的 jaffle_shop 项目。关于此项目的细节介绍&a…

为啥用 时序数据库 TSDB

前言 其实我之前是不太了解时序数据库以及它相关的机制的,只是大概知晓它的用途。但因为公司的业务需求,我意外参与并主导了公司内部开源时序数据库influxdb的引擎改造,所以我也就顺理成章的成为时序数据库“从业者”。 造飞机的人需要时刻…

Prometheus 学习之——本地存储 TSDB

Prometheus 学习之——本地存储 TSDB 文章目录 Prometheus 学习之——本地存储 TSDB前言一、TSDB 核心概念二、详细介绍1.block1)chunks2)index3)tombstone4)meta.json 2.WAL 总结 前言 Prometheus 是 CNCF 收录的第二个项目&…

阿里云IoT物模型上报数据流转到实例内TSDB

阿里云物联网平台上存储的数据最多为30天,为了能让数据永久保存下来,就需要把物联网平台的数据流转到其他的数据库,对于企业版实例,内部有一个实例内的时空数据库TSDB,正好可以利用。下边就介绍一下物联网平台的物模型…

使用TSDB自动检测时序数据的异常情况

本期Jesse就带大家来继续了解一下TSDB的应用问题,小伙伴们,让我们直接步入正题吧。 本文仅代表个人观点,如有偏颇之处,还请海涵~ 现今,每天都有数千亿个传感器产生大量时序数据。公司收集大量数据使得分析…

TSDB 存储引擎介绍

本文介绍 DolphinDB 在2.0版本中新推出的存储引擎 TSDB。 1. OLAP 与 TSDB 适用的场景 OLAP 是 DolphinDB 在2.0版本之前的唯一存储引擎。数据表中每个分区的每一列存为一个文件。数据在表中的存储顺序与数据写入的顺序一致,数据写入有非常高的效率。 OLAP 引擎的…

TSDB与Blockchain

各位小伙伴们我们又见面了,伴随着区块链技术的推广,很多企业也在思考是否将其应用。其实TSDB与区块链有很多共通之处,本期Jesse就来和大家聊聊TSDB与区块链。本文参考了Nicolas Hourcard的文章“You Don’t Need a Blockchain, You Need a Ti…

FlashDB嵌入式数据库之TSDB数据存储解析

一、驱动层:SFUD(Serial Flash Universal Driver) 是一款开源的串行 SPI Flash 通用驱动库 二、中间层:FAL(FLASH ABSTRACTION LAYER))FLASH 抽象层 三、应用层:FlashDB(FlashDB 是一…

时间序列数据库 (TSDB)

参考文档:时间序列数据库 TSDB_时间序列数据库 TSDB-阿里云帮助中心 什么是时序数据库 时序数据是随时间不断产生的一系列数据,简单来说,就是带时间戳的数据。数据可能来自服务器和应用程序的指标、物联网传感器的读数、网站或应用程序上的…