机器学习算法/模型——逻辑回归

逻辑回归模型详解(Logistic Regression) 目录 广义线性模型 极大似然法 逻辑回归的假设函数 逻辑回归的损失函数 为什么LR模型损失函数使用交叉熵不用均方差 交叉熵损失函数 交叉熵损失函数的数学原理 交叉熵简介 交叉熵损失函数的直观理解 逻辑回归优缺点 其他 逻辑回归与线性回归的区别与联系 LR一般需要连续特征离散化原因 广义线性模型 逻辑回归与线性回归都是一种广义线性模型(generalized linear model,GLM)。具体的说,都是从指数分布族导出的线性模型,线性回归假设Y|X服从高斯分布,逻辑回... 阅读详情

逻辑回归类似于多元线性回归,只是结果是二元的。它使用多种变换将问题转换成可以拟合线性模型的问题。更准确地说,逻辑回归也是一种线性模型 y = wTx,为了解决分类问题而引入了一个非线性的决策函数g(·),用来将输出由实数变为离散标签—— LR 选择的是Sigmoid 函数,即 y = Sigmoid(wTx)。

0. 本质和概述

本质:y 表达了正例的可能性

利用 y = wTx + b 对新样本 x 进行分类,并用预测出的 y 值与一个阈值进行比较。
例如通常在 y > 0.5(1-y < 0.5)时判别为正例,否则为反例。

核心:直接从样本估计出它属于正负样本的概率

Logistic 回归 或者叫 逻辑回归 虽然名字有回归,但是它是用来做分类的。其主要思想是: 根据现有数据对分类边界线(Decision Boundary)建立回归公式,以此进行分类。

在这里插入图片描述

概念/术语

  • Logistic 函数
    一种能将属于某个类的概率映射到 ±∞ 范围上(而不是 0 到 1 之间)的函数。(注意并不是最终的比例)
    Logistic 函数 = 对数几率函数
  • 几率
    “成功”(1)与“不成功”(0)之间的比率。
  • 结果变量:标签是 1 的概率 p(而不是简单二元标签)
    结果变量 = 变量 y

1. 假设函数

建模过程:用对数几率去拟合一条线性回归线

首先,我们不能将结果变量简单看作二元标签,而应视为标签是 1 的概率 p。
若直接建模,并不能确保概率 p 位于 [0, 1] 区间内:
在这里插入图片描述
下面换一种做法。我们通过在预测因子中应用逻辑响应函数(逆逻辑回归函数)去建模p:
在这里插入图片描述
这一转换确保了 p 值位于 [0, 1] 区间内。

注意:
在这里插入图片描述
对等式两端取对数,得:

在这里插入图片描述
对数几率函数也称Logistic函数。
完成这样的转换过程后,我们就可以使用线性模型去预测概率。

逻辑回归模型

  • 线性回归模型的模型
    在这里插入图片描述
  • Sigmoid函数
    逻辑回归的模型定义(需要借助Sigmoid函数):
    在这里插入图片描述
    在这里插入图片描述
  • 逻辑回归的模型
    在这里插入图片描述
  • 逻辑回归的模型的预测

假定上个表达式是等于类 1 的概率,自然等于类 0 的概率等于1减去等于类 1 的概率。
在这里插入图片描述
就是将上面两个式子整合为下面一个公式:

在这里插入图片描述

2. 损失函数

先求出由所有样本组成的似然函数,转化为对数似然,转化为梯度下降,根据梯度下降的方向更新迭代权重参数,选取代价函数本次与上次的差小于某个阈值的迭代思路。

  • 似然函数
    在这里插入图片描述
    m表示样本个数。

对数似然如下:
在这里插入图片描述

然后,利用对数极大似然估计,即求上式的极大值,引入因子 -1/m,转化为求下式的极小值:

在这里插入图片描述
即为逻辑回归代价函数(log损失函数)

3. 优化算法

逻辑回归代价函数没有已知的闭式方程(不存在一个标准方程的等价方程)来计算出最小化成本函数的θ值。但是,这是个凸函数,所以通过梯度下降(或是其他任意优化算法)保证能够找出全局最小值。

3.1 极大似如估计:去求解概率函数的极大值

L(θ) 就是 LR 的似然函数。我们要让它达到最大,也就是对其进行“极大估计”。因此,求解 LR 目标函数的过程,就是对 LR 模型函数进行极大似然估计的过程。

l(θ) 其实可以作为 LR 的目标函数。前面讲过,我们需要目标函数是一个凸函数,具备最小值。因此我们设定:J(θ)=−l(θ)。

这样,求 l(θ) 的最大值就成了求 J(θ) 的最小值。J(θ) 又叫做负对数似然函数。它就是 LR 的目标函数。

3.2 梯度下降法:求解极大值

在这里插入图片描述

4. 代码实例

4.1 一维(特征)数据

import matplotlib.pyplot as plt
import numpy as np 

from sklearn import datasets
from sklearn.linear_model import LogisticRegression
iris = datasets.load_iris()

list(iris.keys())
# 我们试试仅基于花瓣宽度这一个特征,创建一个分类器来检测Virginica鸢尾花。

X = iris["data"][:, 3:] # petal width
y = (iris["target"] == 2).astype(np.int) # 1 if Iris-Virginica, else 0
log_reg = LogisticRegression()

log_reg.fit(X, y)
X_new = np.linspace(0, 3, 1000).reshape(-1, 1)

y_proba = log_reg.predict_proba(X_new)

y_proba
plt.scatter(X, y)

plt.plot(X_new, y_proba)

# plt.plot(X_new, y_proba[:, 1], "g-", label="Iris-Virginica")

# plt.plot(X_new, y_proba[:, 0], "b--", label="Not Iris-Virginica")

在这里插入图片描述
注意,这里有一部分重叠。在大约1.6厘米处存在一个决策边界,这里“是”和“不是”的可能性都是50%

4.2 二维数据

  • 导入模块
import numpy as np 
import pandas as pd 
import matplotlib.pyplot as plt 
import seaborn as sns; sns.set()

from sklearn.datasets import make_blobs
from sklearn.linear_model import LogisticRegression
  • 准备数据
X, y = make_blobs(n_samples=100, centers=2, 
                       cluster_std=0.60, random_state=0)
 
plt.scatter(X[:, 0], X[:, 1], c=y, cmap='viridis') 

在这里插入图片描述

  • 拟合数据
logistic_model = LogisticRegression() 
logistic_model.fit(X, y) 
  • 预测数据
# 产生新(二维)数据 

rng = np.random.RandomState(0)
X_new = [-1, -1] + [5, 7] * rng.rand(2000, 2)
print(X_new.shape)
print(X_new[0:3, :])

plt.scatter(X_new[:, 0], X_new[:, 1], s=10) 

(2000, 2)
[[1.74406752 4.00632556]
 [2.01381688 2.81418228]
 [1.118274   3.52125879]]

新数据:
在这里插入图片描述

  • 预测
y_pred = logistic_model.predict(X_new)
print(y_pred.shape) 
print(y_pred[0:3])

(2000,)
[0 1 0]

  • 可视化逻辑回归训练结果
plt.scatter(X[:, 0], X[:, 1], c=y, cmap='viridis') 
plt.scatter(X_new[:, 0], X_new[:, 1], c=y_pred, s=5, alpha=0.5) 

在这里插入图片描述
可以清晰地看出模型的预测结果
(相对于可视化决策边界更加直观)

附:也可以使用 plt 的 pcolormesh() 函数进行绘制分类图(根据y的取值画上不同的颜色)
逻辑回归介绍
利用plt.pcolormesh绘制分类图

Softmax回归

逻辑回归模型经过推广,可以直接支持多个类别,而不需要训练并组合多个二元分类器。这就是Softmax回归,或者叫多元逻辑回归。

参考

  1. 逻辑回归——非线性逻辑函数的由来

  2. 逻辑回归——用来做分类的回归模型

  3. 《机器学习实战基于scikitlearn和tensorflow》

  4. 一句话+一张图说清楚 Logistic回归 算法

逻辑回归模型及案例(Python) 1 简介 逻辑回归也被称为广义线性回归模型,它与线性回归模型的形式基本上相同,最大的区别就在于它们的因变量不同,如果是连续的,就是多重线性回归;如果是二项分布,就是Logistic回归。 Logistic回归虽然名字里带“回归”,但它实际上是一种分类方法,主要用于二分类问题(即输出只有两种,分别代表两个类别),也可以处理多分类问题。 线性回归是用来预测连续变量的,其取值范围(-∞,+∞),而逻辑回归模型是用于预测类别的,例如,用逻辑回归模型预测某物品是属于A类还是B类,在本质上预测的是该物品属于A类或 阅读详情

相关推荐

详解逻辑回归

目录1. 逻辑回归模型介绍1.1 Logistic分布1.2 Logistic回归1.3 代价函数1.4 求解1.5 正则化1.5.1 L1正则化1.5.2 L2正则化1.5.3 L1正则化和L2正则化区别2 与其他模型的对比2.1 与线性回归2.2 与 SVM2.3 与朴素贝叶斯3. 模型细节3.1 为什么适合离散特征3.2 为什么不用平方误差 1. 逻辑回归模型介绍 Logistic Regression虽然被称为回归,但其实际上是分类模型,并常用于二分类。Logistic Regression因为简单

suotanyu1595的博客 1828

一文彻底搞懂逻辑回归模型

1)逻辑回归即为数据服从伯努利分布,通过极大似然函数的方法,运用梯度下降法求解参数,来达到二分类的目的。2)逻辑回归是一个分类模型,解决分类问题(类别+概率),可以做ranking model。

weixin_44852067的博客 9130

Spark 2.0 机器学习 ML 库:常见的机器学习模型(Scala 版)

一、前言 机器学习中,人为地设计算法,需要一定的知识积淀。 而使用别人设计好的机器学习库如 Spark 2.0 ML,那是基本不需要什么基础的,开箱即用。 首先,看一个简单、完整、规范的案例,无疑是最好的方式。 之前的文章(内含短小精悍的案例): Spark 2.0 机器学习 ML 库:特征提取、转化、选取(Scala 版) Spark 2.0 机器学习 ML 库:机器学...

IT小村 1万+

逻辑回归(Logistic Regression)

逻辑回归是线性分类器(线性模型)—— 主要用于二分类问题【拓:如何判别一个模型是否为线性模型理论上分辨:线性模型是可以用曲线来拟合样本的,但是分类的决策边界一定是直线的数学表达上分辨:表达式中的系数w乘上自变量x(一个w系数影响一个自变量维度x)】(1)penalty:表示惩罚项(正则化类型)。字符串类型,取值为’l1’ 或者 ‘l2’,默认为’l2’。l1:向量中各元素绝对值的和,作用是产生少量的特征,而其他特征都是0,常用于特征选择;

tt丫的博客 9万+

[机器学习算法]逻辑回归模型、优缺点及spark ml机器学习库实现LR

目录 一、逻辑回归模型-log损失函数 1.1 模型定义 1.2 损失函数 1.3 梯度下降求解参数 二、利用最大似然估计求解逻辑回归模型参数 三、逻辑回归模型优缺点分析 四、spark ml机器学习库实现逻辑回归模型 五、离散特征作为模型输入 一、逻辑回归模型-log损失函数 1.1 模型定义    1.2 损失函数                    ...

woniu201411的博客 2856

机器学习算法: 基于逻辑回归的分类预测模型

基于逻辑回归的分类预测模型一、Demo实例Step1:库函数导入Step2:模型训练Step3:模型参数查看Step4:数据和模型可视化可视化构造得数据样本点可视化决策边界可视化预测新样本Step5:模型预测二、基于鸢尾花(iris)数据集的逻辑回归分类实践Step1:函数库导入Step2:数据读取/载入Step3:数据信息简单查看Step4:可视化描述Step5:利用 逻辑回归模型 在二分类上 进行训练和预测Step6:利用 逻辑回归模型 在三分类(多分类)上 进行训练和预测三、逻辑回归原理简介 一、De

weixin_48626051的博客 4024

机器学习 | 算法模型 —— 回归:一元/多元/逻辑回归 (以深度学习框架TensorFlow实现)

0.线性回归的基本假定 ①所有解释变量之间互不相关(无多重共线性) ② ③假设变量(偏差)与随机变量不相关 ④随机扰动项满足正太分布 ⑤数据基本服从线性回归 1.一元线性回归[数据计算方式] 1.1 批量输入 and 批量计算 下部程序中在进行最后的数值迭代过程中,使用的是批量计算的方式进行计算 优点:一次性将所有数据加载到内存中,让计算模型在短时间内对数据进行处理 缺点...

也许有一天我们再相逢 睁开眼睛看清楚 我才是英雄! 1283

python机器学习小记——基于逻辑回归模型的多分类场景预测实战

【阿里天池云-龙珠计划】python机器学习小记 <task01: 基于sklearn的Logistic Regression分类实现> 目录【阿里天池云-龙珠计划】python机器学习小记一、逻辑回归算法原理及应用介绍 二、入门Demo 三、基于鸢尾花(iris)数据集的逻辑回归分类实践 那么我们开始吧~~ 1. 逻辑回归算法原理及应用介绍 1.1. 逻辑回归的介绍 逻辑回归(Logistic regression,简称LR)是一个分类模型,并且广泛应用于各个领域之中。 其最为突出的两点

Cedric_Chen_的博客 3117

Spark ML分布式算法实现全揭秘:从理论到实践

Spark ML是Apache Spark生态系统中用于机器学习的核心库,它提供了丰富的分布式算法实现,能够高效处理大规模数据集。本指南将带你深入了解Spark ML的核心算法原理及其分布式实现机制,从分类回归到聚类推荐,全方位掌握Spark ML的实战应用。 ## 一、核心算法架构解析 Spark ML的算法实现基于弹性分布式数据集(RDD)和DataFrame API,通过有向无环图(DA

gitblog_00715的博客 442

机器学习:逻辑回归模型算法原理(附案例实战)

逻辑回归模型虽然名字中有回归两字,其本质却是分类模型。 分类模型与回归模型的区别在于其预测的变量不是连续的,而是离散的一些类别,以最常见的二分类模型为例,分类模型可以预测一个人是否会违约、客户是否会流失、肿瘤是属于良性肿瘤还是恶性肿瘤等

阿极的博客 3610

深入详解人工智能机器学习算法——逻辑回归算法

深入详解人工智能机器学习算法——逻辑回归算法

编程技术探索者,分享C/C++、C#、Java、数据库等开发经验,聚焦实战技巧与AI兴趣,助力编程爱好者成长。 4508

机器学习/数据挖掘/算法岗位面试题汇总

几个月前刚刚经历校招,投的多是机器学习和算法相关的岗位,特此分享面试中遇到及自己认为比较重要的内容: 1、过拟合和欠拟合怎么判断,如何解决?答:主要可以通过训练误差和测试误差入手判断是否过拟合或欠拟合。一般而言训练误差很低,但是测试误差较高,过拟合的概率较大,如果训练误差和测试误差都很高,一般是欠拟合。过拟合可以从增加样本量,减少特征数,降低模型复杂度等方面入手,实际的例子比如线性回归中,对于几

AI之路 1万+

Python机器学习算法源码实战:手写KNN与逻辑回归

机器学习算法的核心价值在于可解释的源码实现,而不仅是调用现成库。KNN作为惰性学习算法,预测时通过距离计算与投票完成分类;逻辑回归则利用梯度下降优化权重,二者原理互补,覆盖了距离度量与参数学习两大基础范式。手写这些算法时,numpy矩阵运算、特征缩放、交叉验证等环节直接影响模型的可靠性与可扩展性。在实际工作中,从零搭建算法源码有助于团队调试模型、复现实验,并为后续扩展更深度的模型打下工程基础。内容从源码组织到验证流程,完整展示了KNN与逻辑回归的fit/predict接口实现、超参数调优与验证机制,适合需要

weixin_32597009的博客 243

如何选择合适的机器学习算法?

选择合适的机器学习算法是机器学习中非常重要的一步,它可以影响机器学习模型的性能和准确度。以下是一些有用的指导原则来帮助选择合适的机器学习算法:

m0_60720471的博客 1286

手把手教你用TP4056和PMOS管搭建锂电池自动切换电路(含元器件选型指南)

本文详细介绍了如何使用TP4056和PMOS管搭建锂电池自动切换电路,包括核心架构设计、元器件选型指南和PCB布局优化。通过智能充电算法和电源路径切换模块,实现外部供电与锂电池的无缝切换,提升便携式设备的电源管理效率。

julia4scientist的博客 888

面积二次矩second moment of area 极惯性矩polar moment of area 转动惯量moment of inertia面积一次矩first moment of area

看论文记录一下力学的名词专业术语,后面可以查看。

subtitle_的博客 5368

ml.js部署指南:如何在生产环境中集成机器学习功能

ml.js是一个强大的JavaScript机器学习库,它允许开发者在生产环境中轻松集成机器学习功能。本指南将详细介绍如何从环境准备到模型部署的完整流程,帮助你快速上手ml.js的生产环境部署。 ## 环境准备:快速搭建开发环境 在开始集成ml.js之前,需要确保你的开发环境满足以下要求: - Node.js 14.x或更高版本 - npm 6.x或更高版本 首先,克隆ml.js项目仓库到本

gitblog_00266的博客 1109

【Web攻防】SQLMap实战进阶:从数据猜解到高权限渗透的全流程指南

本文介绍了SQLMap工具在Web安全渗透测试中的实战应用,重点讲解了数据猜解、高权限操作、复杂请求提交、Tamper脚本开发和指纹绕过等核心场景。文章提供了可直接复用的命令示例,包括数据库信息获取、文件读写、命令执行等操作,并详细说明了POST/JSON/Cookie注入的实现方法。同时,介绍了Tamper脚本的开发模板和指纹伪装技巧,帮助降低检测风险。最后强调SQLMap在自动化渗透全链路中的价值,从漏洞发现到权限提升的完整流程,并提供了优化测试效率的实用建议。所有技术内容仅限合法授权场景使用。

YsChunQiu777的博客 440

机器学习算法之线性回归&逻辑回归

另外我们这里的数据是经过z标准化处理过的,由数值有正有负可以看出,其中有Amount列没有标准化,Time是用户登记的时间,一般银行进行业务的窗口不止有一个,所以时间有一样的,这里Time并没有什么用,前面都是数据,最后target就是最后结果。选择的标准其实就是,w1权重,有三个零,这样无论未知数为多少,都为0,只有x1自己发挥作用,而w2中权重分布比较均匀,每个未知数值都能发挥其值的作用。欠拟合的模型可以多进行训练,关键是过拟合的模型存在的问题该怎么解决,是需要我们思考的。

2201_75573294的博客 1384

AI辅助发明专利撰写实战:30分钟高效生成高质量技术专利文档

在技术专利撰写领域,尤其是软件、算法或系统架构相关的发明专利,如何将创新的技术构思快速、规范地转化为符合《专利法》要求的申请文件,是许多开发者和技术团队面临的共同挑战。传统的人工撰写方式不仅耗时耗力,对撰写人的法律和技术双重背景要求极高,还容易因格式或术语不规范导致审查意见增多。本文将分享一套利用 AI 辅助工具,系统化、高效率地完成一篇高质量发明专利说明书撰写的实战流程。通过清晰的步骤拆解、可复制的提示词(Prompt)工程以及关键注意事项,即使是首次接触专利撰写的开发者,也能在短时间内掌握从技术方案梳理

子夜轻风 952

麒麟服务器操作系统QT系列软件工具手册

对Qt提供的开发工具进行了一系列的优化之后,在日常的修复bug和维护框架的过程中,桌面研发对Qt的基础软件库也进行了部分优化工作,包括qtbase、qtwayland、qtscript、qt4-x11等Qt基础组件,涉及的Qt框架版本主要涉及到5.9和5.12两个版本。qt 的翻译,是由 ts 文件生成 qm 文件然后进行翻译,国产操作系统上qt 的翻译是由单独的qttranslations包中进行维护,其次部分汉化问题也是qt组件维护工作的一部分,qt的翻译机制如图4-7所示。

太极淘的博客 543

逻辑回归算法

逻辑回归原理推导 目的:分类还是回归? (经典的二分类算法)   什么是回归:比如说我们有两类数据,各有50个点组成,当我门把这些点画出来,会有一条线区分这两组数据,我们拟合出这个曲线(因为很有可能是非线性),就是回归。我们通过大量的数据找出这条线,并拟合出这条线的表达式,再有新数据,我们就以这条线为区分来实现分类。   机器学习算法选择:先逻辑回归再用复杂的,能简单还是用简单的  ...

qq_33543737的博客 324

思维链:让AI更接近人类思维的技术

本文将探讨一种名为“思维链”的技术,它旨在让AI更接近人类思维。文章首先介绍了问题背景与核心概念,接着讲解了算法原理和数学模型,随后阐述了系统分析与架构设计,最后通过项目实战展示了思维链的实际应用,并提供了最佳实践和小结。思维链是一种旨在模拟人类思维过程的技术,它通过构建一系列相互关联的思维方式,实现对复杂问题的分析和解决。思维链算法是一种基于人类思维过程的人工智能算法,它通过构建一系列思维链,实现对问题的分析和解决。智能问答系统是一种常见的人工智能应用,它能够回答用户提出的各种问题。

AI天才研究院 942

逻辑回归模型-逻辑回归算法原理-逻辑回归代码与实现-笔记整合

逻辑回归模型(Logistic Regression)包含了二元逻辑回归和多元逻辑回归,二元逻辑回归用来解决二分类问题,多元逻辑回归用来解决多分类问题。多元逻辑回归属于二元逻辑回归的拓展,但二元逻辑回归用得最多,学习应先从二元逻辑回归开始。多元逻辑回归在需要时可以选择性学习。一般所说的逻辑回归都是指二元逻辑回归,本文的逻辑回归也是指二元逻辑回归。

botf201802的博客 2641

STM32开发笔记85: SX1268驱动程序设计(芯片唤醒)

单片机型号:STM32L053R8T6 本系列开发日志,将详述SX1268驱动程序的整个设计过程,本篇介绍芯片唤醒驱动程序。 一、RxDutyCycle模式 在讲述本篇内容之前,我们先来看一下SX1268的一种模式RxDutyCycle,译为中文为接收占空比模式。其可使用SetRxDutyCycle命令进入RxDutyCycle模式,我们来看一下该命令的详细解释。 该命令具有2个参数,...

snmplink的博客 4068

【GlobalMapper精品教程】072:GlobalmapperV25中文版下载地址及安装教程

GlobalmapperV25中文版下载地址及安装教程安装包位于专栏完整数据包中,请订阅后从优快云私信查收!最新GlobalMapper中文版入门实战实验教程,图文并茂,实用性强,内容包括:GM基础操作、数据处理及地形图制作、航测内业数据处理、点云处理、地形分析、空间分析、数据库建库入库等。配套完整案例数据,持续同步更新!订阅专栏后,从私信查收中文安装包永久版(中文23.0+24.0)及配套实验数据包。

智慧空间实验室 4733
上一篇: 机器学习算法/模型——线性回归
下一篇: 机器学习算法/模型——支持向量机
Robin_Pi
博客等级 码龄9年 2万+粉丝 632原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值