news 2026/4/15 15:47:45

机器学习--逻辑回归

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
机器学习--逻辑回归

1、概述

逻辑回归是一种用于解决二分类问题的统计方法,尽管名称中包含"回归",但实际上是一种分类算法。它通过将线性回归的输出映射到Sigmoid函数,将预测值转换为概率值(0到1之间),从而进行分类决策。

逻辑回归的核心目标是:
预测一个样本属于某个类别的概率。

2、数学原理和推导

1) 假设函数(sigmoid 函数)


逻辑回归通过将线性回归的结果输入一个S型函数,将结果映射到 0 到 1 的区间:

其中:

hθ(x)​是预测结果(属于类别1的概率)

θ是参数向量(权重)

x 是输入特征向量
当: hθ(x)≥0.5,预测为类别1

hθ(x)<0.5,预测为类别0

3)求解

3、梯度下降法

1)偏导数

我们知道一个多变量函数的偏导数,就是它关于一个变量的导数而保持其他变量恒定,该函数的整个求导

2)梯度

梯度可以定义为一个函数的全部偏导数构成的向量,梯度向量的方向即为函数值增长最快的方向

3)梯度下降法

是一个一阶最优化算法,通常也称为最陡下降法,要使用梯度下降法找到一个函数的局部极小值
步长(学习率):梯度可以确定移动的方向。学习率将决定我们采取步长的大小。不易过小和过大

4、评价方式

混淆矩阵:

真阴性(TN):非 0 数字被正确预测的数量;
真阳性(TP):0 被正确预测的数量;
假阴性(FN):0 被误判为非 0 的数量;
假阳性(FP):非 0 被误判为 0 的数量


1)准确率

适用于类别平衡的数据集,但对不平衡数据可能产生误导。

2)精确率

适用于需要高置信度正类预测的场景(如垃圾邮件分类)

3)召回率

适用于漏报成本高的场景(如疾病检测)

4)F1值

适用于需要平衡精确率和召回率的场景。

5、欠拟合和过拟合

1)欠拟合

概念:就是模型没有训练好,一般训练的数据较少,会出现这种情况

2)过拟合

概念:模型在训练集表现良好,但在测试集上的表现就不行

原因:

1、训练集上为追求好的效果(包括损失小、准确率高等)

2、模型参数过于复杂

6、正则化惩罚

目的:防止过拟合

概念:Minimize your error while regularizing your parameters.规则化参数的同时最小化误差。【被翻译为正则化】

L1正则(Lasso):鼓励稀疏解

L2正则(Ridge):平滑模型参数

# 带正则化项的逻辑回归
LogisticRegression(penalty='l2', C=1.0,max_iter=100)
参数Penalty:正则化方式,有l1和l2两种。用于指定惩罚项中使用的规范。

参数C:正则化强度。为浮点型数据。正则化系数λ的倒数,float类型,默认为1.0。必须是正浮点型数。像SVM一样,越小的数值表示越强的正则化

参数max_iter:算法收敛最大迭代次数,int类型,默认为100。仅在正则化优化算法为newtoncg, sag和lbfgs才有用,算法收敛的最大迭代次数。

1)损失函数

逻辑回归使用最大似然估计来求解

其对应的损失函数为:

m:表示样本数量

y^(i):表示第i个样本的标签

2)正则化惩罚

就是在损失函数的基础上加了

7、交叉验证

在将数据进行标准化以及改变阈值后,得到的召回率不是很高时,我们就可以使用交叉验证,来得到一个最好的C的值

就是将要训练的数据按比例分割成n份,第一次训练1到n-1份,第二次训练1到n-2份加上第n份,一直按规律训练,一直到最后一次训练2到n份

使用cross_val_score可以进行这个操作

例如:

score=cross_val_score(lr,x_train,y_train,cv=10,scoring='recall')

代表正则化惩罚的基础上,训练将x_train,y_train分割成10份,求训练后召回率的平均值

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/15 4:01:46

连续数组(哈希+前缀和)

这道题可以利用 前缀和 哈希表 来解决。1. 将 0 视为 -1题目要求找“0 和 1 数目相等”的最长子数组。 如果把数组中的 0 当作 -1&#xff0c;那就等价于&#xff1a;找到一个子数组&#xff0c;使得这个子数组的元素和为 0。2. 使用哈希表记录前缀和第一次出现的位置设 prefi…

作者头像 李华
网站建设 2026/4/4 17:08:48

Linux平台设备驱动

Linux内核使用总线来处理设备&#xff0c;总线连接了CPU与这些设备。有些总线足够智能&#xff0c;并内嵌了可发现性逻辑以枚举连接到总线上的设备。在引导阶段的初期&#xff0c;Linux内核会请求这些总线提供它们所枚举的设备以及这些设备正常工作所需的资源&#xff08;如中断…

作者头像 李华
网站建设 2026/4/5 3:04:38

初探 Mysql Docker

前言我在專案開發階段常使用 MySQL Docker&#xff0c;主要是好處&#xff0c;快速啟動、零安裝成本、版本切換&#xff0c;不污染本機系統(不喜歡本機裝一堆有的沒的&#xff0c;特別是有的只會用那麼一次)。而且如果在需要&#xff0c;任何時間、任何機器&#xff0c;都能還原…

作者头像 李华
网站建设 2026/4/8 0:49:37

大数据传输时代:如何选择高效可靠的数据传输工具?

在数据驱动决策的今天&#xff0c;大数据已成为企业核心资产。然而&#xff0c;随着数据量呈几何级数增长&#xff0c;海量数据的快速、安全、稳定迁移与同步&#xff0c;正成为众多企业数字化转型道路上的严峻挑战。传统的传输方式在TB甚至PB级的数据洪流面前&#xff0c;如同…

作者头像 李华
网站建设 2026/4/13 5:05:59

企业网盘私有化部署,构建安全高效的数据资产管理基石

在数字化转型浪潮中&#xff0c;企业数据资产的价值与日俱增&#xff0c;如何安全、高效地存储、管理与协作这些核心资产&#xff0c;成为每个组织必须面对的关键议题。近年来&#xff0c;越来越多的企业将目光投向网盘系统的私有化部署&#xff0c;这一模式正逐渐成为保障数据…

作者头像 李华
网站建设 2026/4/15 13:15:57

39、深入探究 Linux 中的睡眠与计时机制

深入探究 Linux 中的睡眠与计时机制 在 Linux 系统编程中,睡眠和计时是常见的操作,它们在很多场景下都发挥着重要作用。本文将详细介绍 Linux 中不同的睡眠和计时接口,包括它们的特点、使用方法以及适用场景。 1. 纳秒级睡眠:nanosleep() Linux 中, usleep() 函数已被…

作者头像 李华