一、线性回归算法(用于连续值预测)
1. 算法基础概述
- 核心作用:构建特征与连续目标值的线性加权关系,完成回归预测(房价、销量、温度等连续变量)。
- 核心假设 :输入特征与输出目标满足线性相关。
- 预测模型公式
\(y=x_{1} w_{1}+x_{2} w_{2}+...+x_{n} w_{n}+b\) \(w_1...w_n\):特征权重;b:偏置项;\(x_1...x_n\):输入特征;y:预测输出。
- 损失函数:均方误差 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. 线性回归实战
完整流程标准步骤:
- 加载回归数据集(如波士顿房价)
- 划分训练集、测试集
- 特征标准化(消除量纲影响)
- 最小二乘 / 梯度下降训练线性模型
- 使用 MSE、MAE、RMSE 评估回归效果
二、逻辑回归算法(二分类模型,输出概率)
1. 算法基础概述
- 定位 :名称带 "回归",实际是二分类算法,输出样本属于正类的概率 \(P(y=1 | x)\)。
- 核心逻辑:在线性回归输出基础上套 Sigmoid 激活函数,把值域\((-\infty,+\infty)\)压缩到\(0,1\)区间,代表概率。
- 分步公式 第一步:线性组合(同线性回归)
\(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. 参数优化与模型评估
- 参数更新:统一使用梯度下降,更新公式和线性回归一致:
\(w.data - = lr * w.grad\)
- 分类四大评估指标
- Accuracy 准确率:整体预测正确样本占比
- Precision 精准率:预测为正的样本中真实正样本比例
- Recall 召回率:全部真实正样本中被预测出来的比例
- F1-Score:精准率与召回率调和平均,平衡二者
4. 逻辑回归实战
标准完整流程:
- 加载二分类数据集(乳腺癌数据集)
- 划分训练 / 测试集
- 特征标准化(距离类、线性分类模型必备)
- 训练逻辑回归模型
- 预测概率,设定 0.5 阈值区分 0/1 类别
- 计算准确率、精准率、召回率、F1 评估效果
三、工程 & 统计学知识点
模块 1:方差计算核心注意事项
-
除数不能为 0 :标准差计算时加极小值防止除零报错:
sigma + 1e-9 -
总体方差 vs 样本方差(核心区分)
类型 分母 用途 工具默认行为 总体方差 N 数据包含全部研究对象,仅描述当前数据 NumPy np.var()默认(ddof=0,有偏估计)样本方差 (N-1) 用抽样样本估算整体总体方差(无偏校正) PyTorch tensor.var()默认(ddof=1,无偏估计) -
底层逻辑:机器学习属于统计实验,依靠样本数据特征推断整体数据分布;样本均值是无偏估计,样本方差必须除以\(N-1\)消除自由度偏差。
-
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:模型持久化(序列化 / 反序列化)
- 概念定义
- 序列化:内存中训练完成的模型对象 → 二进制字节流,保存到本地硬盘文件
- 反序列化:硬盘模型文件读取 → 内存可直接预测的模型对象
- Python 工具对比
- pickle:底层原生库,使用繁琐,大模型效率一般
- joblib:sklearn 配套上层工具,对数值矩阵模型优化更好,推荐机器学习模型保存
- 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:概率映射激活函数区分
- Sigmoid 函数:适配二分类,输出单个 0~1 概率,对应逻辑回归
- Softmax 函数:适配多分类,输出多个概率,总和为 1,用于多分类任务
模块 4:激活函数基础
Sigmoid 是最基础的激活函数,核心作用:将线性输出转换为概率值域,是逻辑回归、早期神经网络的基础组件。
四、线性回归 vs 逻辑回归核心对比总结
- 任务场景
- 线性回归:回归任务,预测连续数值
- 逻辑回归:二分类任务,输出类别概率
- 输出值域
- 线性回归:\((-\infty,+\infty)\) 任意实数
- 逻辑回归:\(0,1\) 概率值(Sigmoid 压缩)
- 损失函数
- 线性回归:均方误差 MSE
- 逻辑回归:二元交叉熵损失
- 评估指标
- 线性回归:MAE、MSE、RMSE
- 逻辑回归:准确率、精准率、召回率、F1-Score
- 共同点:都采用线性加权模型,参数都用梯度下降优化,训练前均需要特征标准化。
