线性回归和逻辑回归笔记

一、线性回归算法(用于连续值预测)

1. 算法基础概述

  1. 核心作用:构建特征与连续目标值的线性加权关系,完成回归预测(房价、销量、温度等连续变量)。
  2. 核心假设 :输入特征与输出目标满足线性相关
  3. 预测模型公式

\(y=x_{1} w_{1}+x_{2} w_{2}+...+x_{n} w_{n}+b\) \(w_1...w_n\):特征权重;b:偏置项;\(x_1...x_n\):输入特征;y:预测输出。

  1. 损失函数:均方误差 MSE 衡量预测值与真实值整体误差,目标最小化该损失:

\(loss =\frac{1}{N} \sum_{i=1}^{N}\left(y_{i}-\hat{y}_{i}\right)^{2}\) N:样本总数;\(y_i\)真实标签;\(\hat{y}_i\)模型预测值。

2. 两种参数求解方法

(1)普通最小二乘法(解析解,无迭代)

直接矩阵运算一次性求出最优权重,数据量过大时矩阵求逆计算慢:

\(W = ( X ^ { T } X ) ^ { - 1 } X ^ { T } y\) X:特征矩阵;y:真实标签向量;W:最终权重 + 偏置参数。

(2)梯度下降法(迭代优化,工业主流)

通过多次迭代沿损失梯度反方向更新权重,适配大数据、深度学习场景:

\(w.data - = lr * w.grad\) lr:学习率;\(w.grad\):损失对权重的梯度;每次迭代小幅更新参数降低损失。

3. 线性回归实战

完整流程标准步骤:

  1. 加载回归数据集(如波士顿房价)
  2. 划分训练集、测试集
  3. 特征标准化(消除量纲影响)
  4. 最小二乘 / 梯度下降训练线性模型
  5. 使用 MSE、MAE、RMSE 评估回归效果

二、逻辑回归算法(二分类模型,输出概率)

1. 算法基础概述

  1. 定位 :名称带 "回归",实际是二分类算法,输出样本属于正类的概率 \(P(y=1 | x)\)。
  2. 核心逻辑:在线性回归输出基础上套 Sigmoid 激活函数,把值域\((-\infty,+\infty)\)压缩到\(0,1\)区间,代表概率。
  3. 分步公式 第一步:线性组合(同线性回归)

\(z=xw+b\) 第二步:Sigmoid 映射为概率

\(\sigma(z)=\frac{1}{1+e^{-z}}\)

2. 损失函数:二元交叉熵损失

专门适配分类概率预测,解决 MSE 在分类场景梯度消失问题:

\(loss =-\frac{1}{N} \sum_{i=1}^{N}\lefty_{i} log \\hat{y}_{i}+\\left(1-y_{i}\\right) log \\left(1-\\hat{y}_{i}\\right)\\right\) \(y_i\)真实标签只能取 0/1;\(\hat{y}_i\)模型输出 0~1 之间概率。

3. 参数优化与模型评估

  1. 参数更新:统一使用梯度下降,更新公式和线性回归一致:

\(w.data - = lr * w.grad\)

  1. 分类四大评估指标
  • Accuracy 准确率:整体预测正确样本占比
  • Precision 精准率:预测为正的样本中真实正样本比例
  • Recall 召回率:全部真实正样本中被预测出来的比例
  • F1-Score:精准率与召回率调和平均,平衡二者

4. 逻辑回归实战

标准完整流程:

  1. 加载二分类数据集(乳腺癌数据集)
  2. 划分训练 / 测试集
  3. 特征标准化(距离类、线性分类模型必备)
  4. 训练逻辑回归模型
  5. 预测概率,设定 0.5 阈值区分 0/1 类别
  6. 计算准确率、精准率、召回率、F1 评估效果

三、工程 & 统计学知识点

模块 1:方差计算核心注意事项

  1. 除数不能为 0 :标准差计算时加极小值防止除零报错:sigma + 1e-9

  2. 总体方差 vs 样本方差(核心区分)

    类型 分母 用途 工具默认行为
    总体方差 N 数据包含全部研究对象,仅描述当前数据 NumPy np.var() 默认(ddof=0,有偏估计)
    样本方差 (N-1) 用抽样样本估算整体总体方差(无偏校正) PyTorch tensor.var() 默认(ddof=1,无偏估计)
  3. 底层逻辑:机器学习属于统计实验,依靠样本数据特征推断整体数据分布;样本均值是无偏估计,样本方差必须除以\(N-1\)消除自由度偏差。

  4. Python 代码示例

python 复制代码
import numpy as np
# 总体方差(除以N)
data = np.array([1,2,3,4,5])
var_pop = np.var(data, ddof=0)
# 样本无偏方差(除以N-1)
var_sample = np.var(data, ddof=1)
# 防止标准差为0
std = np.std(data) + 1e-9

模块 2:模型持久化(序列化 / 反序列化)

  1. 概念定义
    • 序列化:内存中训练完成的模型对象 → 二进制字节流,保存到本地硬盘文件
    • 反序列化:硬盘模型文件读取 → 内存可直接预测的模型对象
  2. Python 工具对比
    • pickle:底层原生库,使用繁琐,大模型效率一般
    • joblib:sklearn 配套上层工具,对数值矩阵模型优化更好,推荐机器学习模型保存
  3. joblib 代码示例
python 复制代码
import joblib
from sklearn.linear_model import LinearRegression

# 训练模型
model = LinearRegression()
model.fit(X_train, y_train)

# 序列化保存
joblib.dump(model, "linear_model.pkl")
# 反序列化加载
loaded_model = joblib.load("linear_model.pkl")

模块 3:概率映射激活函数区分

  1. Sigmoid 函数:适配二分类,输出单个 0~1 概率,对应逻辑回归
  2. Softmax 函数:适配多分类,输出多个概率,总和为 1,用于多分类任务

模块 4:激活函数基础

Sigmoid 是最基础的激活函数,核心作用:将线性输出转换为概率值域,是逻辑回归、早期神经网络的基础组件。

四、线性回归 vs 逻辑回归核心对比总结

  1. 任务场景
    • 线性回归:回归任务,预测连续数值
    • 逻辑回归:二分类任务,输出类别概率
  2. 输出值域
    • 线性回归:\((-\infty,+\infty)\) 任意实数
    • 逻辑回归:\(0,1\) 概率值(Sigmoid 压缩)
  3. 损失函数
    • 线性回归:均方误差 MSE
    • 逻辑回归:二元交叉熵损失
  4. 评估指标
    • 线性回归:MAE、MSE、RMSE
    • 逻辑回归:准确率、精准率、召回率、F1-Score
  5. 共同点:都采用线性加权模型,参数都用梯度下降优化,训练前均需要特征标准化。
相关推荐
V哥AI增长4 小时前
小红书笔记在生成式AI引擎中的可见性机制解析:从抓取原理到GEO工程化实践
大数据·人工智能·笔记
张小凡vip5 小时前
python--爬虫--成熟的爬虫框架Scrapy
爬虫·python·scrapy
Pluchon5 小时前
Java个人综合项目——萌部落社区V2.0
java·python·spring·spring cloud·postman·idea
不瘦80斤不改名5 小时前
01-vibe-coding-起源与本质
人工智能·python
夜雪一千5 小时前
如何对新闻数据进行模糊去重
python
oyguyteggytrrwwwrt8 小时前
3dgs渲染部分详细注释
python
Hotchip_MEMS9 小时前
当雾化器遇上MEMS:一场从交互到制造的全链路效率提升
人工智能·笔记·物联网·电脑·制造
是上好佳佳佳呀9 小时前
【深度学习|Day02】PyTorch 深度学习笔记(下):张量运算与自动微分
pytorch·笔记·深度学习
天天爱吃肉82189 小时前
【重磅发布:拿下新超仁达代理权 】
大数据·人工智能·python·功能测试·汽车