机器学习——逻辑回归(学习笔记)

目录

一、认识逻辑回归

二、二元逻辑回归(LogisticRegression)

[1. 损失函数](#1. 损失函数)

[2. 正则化](#2. 正则化)

[3. 梯度下降](#3. 梯度下降)

[4. 二元回归与多元回归](#4. 二元回归与多元回归)

三、sklearn中的逻辑回归(自查)

[1. 分类](#1. 分类)

[2. 参数列表](#2. 参数列表)

[3. 属性列表](#3. 属性列表)

[4. 接口列表](#4. 接口列表)

四、逻辑回归优点

五、学习中产生的疑问,以及文心一言回答

[1. 正则化的相关问题](#1. 正则化的相关问题)

(1)正则化的原理

(2)L1和L2正则化的优缺点

[2. 分箱问题](#2. 分箱问题)

(1)在IV中要乘WOE,怎样理解?表示了什么意义?

(2)分箱流程

(3)为什么箱子越多,IV必然越小?


一、认识逻辑回归

逻辑回归,是一种名为 "回归" 的线性分类器,其本质是由线性回归变化而来的,一种广泛使用于分类问题中的广义回归算法。

首先理解线性回归算法:

𝜃 被统称为模型的参数,其中 𝜃₀被称为截距(intercept),𝜃₁~𝜃n 被称为系数。这个表达式,和 y=ax+b 是同样的性质。可以 使用矩阵来表示 这个方程,其中 x 和 𝜃 都可以被看做是一个 列矩阵,则有:

线性回归的任务,就是构造一个预测函数 z 来映射输入的特征矩阵 x 和 标签值 y 的线性关系,而构造预测函数的 核心 就是找出模型的参数:𝜃T 和 𝜃₀

通过函数 z,线性回归 使用输入的特征矩阵 x 来输出一组连续型的标签值 y_pred,以完成各种预测连续型 变量的任务。如果 得到的标签是 离散型变量,尤其是满足 0-1 分布的 离散型变量,我们可以通过引入 联系函数(link function) ,将线性回归方程 z 变换为 g(z),并且令 g(z)的值分布在(0,1)之间,且当 g(z)接近 0 时样本的标签为类别 0,当 g(z)接近1时样本的标签为类别 1,这样就得到了一个 分类模型。而这个联系函数对于 逻辑回归来说,就是 Sigmoid函数:

Sigmoid 函数 与 MinMaxSclaer 同理,是 属于数据预处理中的 "缩放" 功能,可以将数据压缩到[0,1]之内。区别在于 MinMaxScaler 归一化之后,是可以取到 0 和 1 的(最大值归一化后就是 1,最小值归一化后 就是 0),但 Sigmoid 函数只是 无限趋近于 0 和 1。

将 z 带入,可得到 二元逻辑回归模型的 一般形式:

而 y(x)就是逻辑回归 返回的 标签值。此时,y(x)的取值都在 [0,1] 之间,因此 y(x)和 1-y(x)相加必然为 1。如果令 y(x)除以1-y(x)可以得到 **形似几率(odds)**的式子,在此基础上取对数,可以得到:

y(x)的形似几率取 对数的 本质其实就是线性回归 z,我们实际上 是在对线性回归 模型的 预测结果取对数几率 来让其的结果 无限逼近 0 和 1。因此,其对应的模型被称为 "对数几率回归" (logistic Regression),也就是 逻辑回归,这个名为 "回归" 却是用来 做分类工作的 分类器。

二、二元逻辑回归(LogisticRegression)

涉及模块:sklearn.linear_model

1. 损失函数

逻辑回归 有着 基于训练数据求解参数 𝜃 的需求,并且 希望训练出来的模型 能够尽可能地 拟合训练数据,即模型在训练集上的 预测准确率越靠近 100%越好

使用 "损失函数" 这个评估指标,来衡量参数为 𝜃 的模型拟合 训练集时产生的 信息损失的 大小,并以此衡量 参数 𝜃 的优劣。*++损失函数小,模型在训练集上 表现优异,拟合充分,参数优秀;损失函数大,模型在 训练集上表现 差劲,拟合不足,参数糟糕。++*我们追求,能够让损失函数最小化的 参数组合。损失函数具体 可以写成:

其中,𝜃 表示求解出来的 一组参数,m是 样本的个数,yi 是样本 i 上真实的标签,y𝜃(xi)是样本i上,基于 参数 𝜃 算出来的逻辑回归 返回值,xi 是样本 i 各个特征的 取值。

由于追求损失函数的最小值,让 模型在训练集上 表现最优,可能会引发另一个问题:如++果模型在训练集上表示优秀,却在测试集上表现糟糕,模型就会 过拟合++。虽然 逻辑回归 和线性回归 是天生 欠拟合的模型,但我们 还是需要控制 过拟合的技术来帮助 我们调整模型。对 逻辑回归中 过拟合的控制,通过 正则化来实现。

2. 正则化

涉及参数:penalty & C

正则化是用来防止模型过拟合的过程,常用的有 L1 正则化 和 L2 正则化 两种选项,分别通过在 损失函数后加上 参数向量 0 的 L1范式 和 L2范式 的倍数来实现。这个增加的范式,被称为 "正则项",也被称为 "惩罚项"。

L1 正则化会将参数压缩为 0,L2 正则化 只会让参数 尽量小,不会取到 0。L1 正则化 本质是一个 特征选择的过程,掌管了参数的 "稀疏性",L1 正则化 越强,参数向量中 就越多的参数为 0,参数就 越稀疏,选出来的 特征就越少,以此来 防止过拟合;L2 正则化在 加强的过程中,会尽量让 每个特征对模型都 有一些小的贡献,但 携带信息少,对 模型贡献不大的 特征的参数 会非常接近于 0。

3. 梯度下降

涉及参数:max_iter

根据损失函数:

对这个 函数上的 自变量 𝜃 求 偏导,就可以得到 梯度向量在第 j 组 𝜃 的坐标点上 的 表示形式:

在这个公式下,只要给定一组 𝜃 的取值 𝜃j;,再带入特征矩阵 x,就可以求得这一组 𝜃 取值下的预测结果 y𝜃(xi),结合 真实标签向量 y,就可以 获得这一组 𝜃j 取值下的 梯度向量,其 大小表示为 dj。我们的 目的是在可能的 𝜃 取值上 进行遍历,一次次计算 梯度向量,并在 梯度向量的反方向上 让损失函数 J 下降至 最小值。在这个过程中,我们的 𝜃 和 梯度向量的大小 d 都会不断改变,而我们遍历 𝜃 的过程可以描述为:

其中 𝜃 j+1 是第 j 次迭代后的 参数向量,𝜃j 是第 j 次迭代是的参数向量,𝛂被称为 步长,控制着每走一步(每迭代一次)后 𝜃 的变化,并以此来 影响每次迭代后 的梯度向量的 大小和方向。

sklearn当中,我们设置参数 max_iter 最大迭代次数来 代替步长,帮助我们控制 模型的迭代速度 并适时地 让模型停下。++max_iter 越大,代表步长越小,模型迭代时间越长,反之,则代表 步长设置很大,模型迭代 时间很短。++

4. 二元回归与多元回归

涉及参数:solver & multi_class

"liblinear" 是二分类专用。

三、sklearn中的逻辑回归(自查)

1. 分类

2. 参数列表

3. 属性列表

4. 接口列表

四、逻辑回归优点

1. 逻辑回归对线性关系的拟合效果非常好,特征与标签之间的线性关系极强的数据,都是逻辑回归的强项。

2. 对于线性数据,逻辑回归的拟合和计算都非常快,计算效率优于SVM和随机森林。

3. 逻辑回归返回的分类结果不是固定的 0、1,而是以小数形式呈现的类概率数字,因此可以把逻辑回归返回的结果当成连续型数据来利用。

五、学习中产生的疑问,以及文心一言回答

1. 正则化的相关问题

(1)正则化的原理
(2)L1和L2正则化的优缺点

2. 分箱问题

(1)在IV中要乘WOE,怎样理解?表示了什么意义?
(2)分箱流程
(3)为什么箱子越多,IV必然越小?
相关推荐
幻风_huanfeng16 分钟前
线性代数中的核心数学知识
人工智能·机器学习
volcanical24 分钟前
LangGPT结构化提示词编写实践
人工智能
weyson1 小时前
CSharp OpenAI
人工智能·语言模型·chatgpt·openai
RestCloud1 小时前
ETLCloud异常问题分析ai功能
人工智能·ai·数据分析·etl·数据集成工具·数据异常
IT古董1 小时前
【机器学习】决定系数(R²:Coefficient of Determination)
人工智能·python·机器学习
鲜枣课堂2 小时前
5G-A如何与AI融合发展?华为MBBF2024给出解答
人工智能·5g·华为
武子康3 小时前
大数据-213 数据挖掘 机器学习理论 - KMeans Python 实现 距离计算函数 质心函数 聚类函数
大数据·人工智能·python·机器学习·数据挖掘·scikit-learn·kmeans
武子康3 小时前
大数据-214 数据挖掘 机器学习理论 - KMeans Python 实现 算法验证 sklearn n_clusters labels
大数据·人工智能·python·深度学习·算法·机器学习·数据挖掘
weixin_518285053 小时前
深度学习笔记11-神经网络
笔记·深度学习·神经网络
封步宇AIGC4 小时前
量化交易系统开发-实时行情自动化交易-Okex K线数据
人工智能·python·机器学习·数据挖掘