正在加载中...

展开本页目录
算法教程机器学习-线性回归和逻辑回归

机器学习-线性回归和逻辑回归

No.025 · 在线教程

本系统用于线性回归(回归)与逻辑回归(分类)的建模与评价,支持特征工程、交叉验证、图表输出与 Excel 多表结果,便于直接用于论文撰写与实验复现。

机器学习-线性回归与逻辑回归分析系统

1. 系统用途与方法概述

本系统用于线性回归(回归)与逻辑回归(分类)的建模与评价,支持特征工程、交叉验证、图表输出与 Excel 多表结果,便于直接用于论文撰写与实验复现。

设共有 \(n\) 个样本、\(d\) 个特征,数据集为

$$ \mathcal{D}=\{(x_i,y_i)\}_{i=1}^{n},\quad x_i\in\mathbb{R}^d \tag{1} $$

其中 \(y_i\) 为连续值(回归)或类别标签(分类)。

2. 符号说明表(细化)

符号 含义
\(n,d\) 样本数与特征数
\(x_i,y_i\) 第 \(i\) 个样本特征与标签/真实值
\(\hat{y}_i\) 第 \(i\) 个样本预测值
\(X,\mathbf{y}\) 特征矩阵与目标向量
\(\mathbf{w},b\) 模型参数(权重与截距)
\(z_i\) 线性组合 \(z_i=\mathbf{w}^\top x_i+b\)
\(\hat{p}_i\) 预测为正类的概率
\(\sigma(\cdot)\) Sigmoid 函数
\(\tau\) 分类阈值
\(\lambda\) 正则化系数(可选)
\(\alpha\) 学习率(可选)
\(k\) 交叉验证折数
\(TP,FP,TN,FN\) 混淆矩阵四要素
\(C\) 类别数量(多分类)
\(n_c\) 第 \(c\) 类样本数
\(\mu_j,\sigma_j\) 第 \(j\) 个特征的均值与标准差
\(Q_1,Q_3\) 第一/第三四分位数
\(\varepsilon\) 极小正数(防止除零)
\(w_i\) 样本权重(可选)
\(W\) 权重矩阵(可选)
\(\sigma^2\) 误差方差(可选)
\(\text{SE}(\cdot)\) 参数标准误(可选)
\(t_{\alpha/2,\nu}\) t 分布临界值(可选)
\(\text{SSE},\text{SSR},\text{SST}\) 回归平方和分解(可选)
\(\text{OR}_j\) 优势比(可选)
\(\ell(\cdot)\) 对数似然(可选)
\(k\) 参数个数(可选)
\(\text{AIC},\text{BIC}\) 信息准则(可选)

3. 公共部分(预处理与特征工程)

系统支持缺失值处理、类别编码、数值缩放、多项式特征、特征选择与降维等步骤(均在训练集上拟合后作用于测试集或交叉验证折内,避免数据泄漏)。

3.1 标准化与归一化

Z-score 标准化: $$ z_{ij}=\frac{x_{ij}-\mu_j}{\sigma_j} \tag{2} $$

Min-Max 归一化: $$ z_{ij}=\frac{x_{ij}-\min x_j}{\max x_j-\min x_j+\varepsilon} \tag{3} $$

3.2 One-Hot 编码(类别型变量)

$$ x^{(k)}_{ij}= \begin{cases} 1,& x_{ij}=\text{cat}_k\\ 0,& \text{otherwise} \end{cases} \tag{4} $$

3.3 多项式特征(可选)

$$ \phi(x)=\{x_1^{a_1}x_2^{a_2}\cdots x_d^{a_d}\mid a_1+\cdots+a_d\le d_p\} \tag{5} $$

3.4 特征选择(方差阈值 / 互信息)

方差阈值: $$ \operatorname{Var}(x_j)=\frac{1}{n-1}\sum_{i=1}^{n}(x_{ij}-\mu_j)^2 \tag{6} $$

互信息: $$ I(X;Y)=\sum_{x\in X}\sum_{y\in Y}p(x,y)\log\frac{p(x,y)}{p(x)p(y)} \tag{7} $$

3.5 降维(PCA)

协方差矩阵: $$ \Sigma=\frac{1}{n-1}\sum_{i=1}^{n}(x_i-\bar{x})(x_i-\bar{x})^\top \tag{8} $$

主成分解释率: $$ \eta_k=\frac{\lambda_k}{\sum_{j=1}^{d}\lambda_j} \tag{9} $$

3.6 IQR 异常值截断(可选)

$$ \text{IQR}=Q_3-Q_1,\quad x\leftarrow \min(\max(x,Q_1-k\cdot\text{IQR}),\,Q_3+k\cdot\text{IQR}) \tag{10} $$

3.7 训练/测试划分(通用)

$$ \mathcal{D}=\mathcal{D}_{\text{train}}\cup\mathcal{D}_{\text{test}},\quad |\mathcal{D}_{\text{test}}|=\lfloor \text{test\_size}\cdot n\rfloor \tag{11} $$

3.8 交叉验证(k 折)

$$ \overline{M}=\frac{1}{k}\sum_{t=1}^{k} M_t \tag{12} $$

指标方差与标准差(可选): $$ \operatorname{Var}(M)=\frac{1}{k-1}\sum_{t=1}^{k}(M_t-\overline{M})^2 \tag{12a} $$

$$ \operatorname{Std}(M)=\sqrt{\operatorname{Var}(M)} \tag{12b} $$

提示:式(12a)–(12b) 为统计量补充,可按需选用或省略。

4. 回归版(线性回归)

4.1 模型形式

$$ \hat{y}_i=\mathbf{w}^\top x_i+b \tag{13} $$

4.2 最小二乘目标

$$ J(\mathbf{w},b)=\frac{1}{n}\sum_{i=1}^{n}(y_i-\hat{y}_i)^2 \tag{14} $$

矩阵形式(可选): $$ J(\mathbf{w})=\frac{1}{n}\|\mathbf{y}-X\mathbf{w}\|_2^2 \tag{14a} $$

正规方程解(可选): $$ \mathbf{w}=(X^\top X)^{-1}X^\top \mathbf{y} \tag{14b} $$

梯度与更新(可选): $$ \nabla_{\mathbf{w}}J=-\frac{2}{n}X^\top(\mathbf{y}-X\mathbf{w}),\quad \frac{\partial J}{\partial b}=-\frac{2}{n}\sum_{i=1}^{n}(y_i-\hat{y}_i) \tag{14c} $$

$$ \mathbf{w}\leftarrow \mathbf{w}-\alpha\nabla_{\mathbf{w}}J,\quad b\leftarrow b-\alpha\frac{\partial J}{\partial b} \tag{14d} $$

正则化(可选): $$ J_\lambda=J+\lambda\|\mathbf{w}\|_2^2\quad(\text{Ridge}) \tag{14e} $$

$$ J_\lambda=J+\lambda\|\mathbf{w}\|_1\quad(\text{Lasso}) \tag{14f} $$

提示:式(14a)–(14f) 为理论/扩展形式,可按需选用或省略。

4.3 回归评价指标

MAE $$ \text{MAE}=\frac{1}{n}\sum_{i=1}^{n}|y_i-\hat{y}_i| \tag{15} $$

MSE / RMSE $$ \text{MSE}=\frac{1}{n}\sum_{i=1}^{n}(y_i-\hat{y}_i)^2 \tag{16} $$

$$ \text{RMSE}=\sqrt{\text{MSE}} \tag{17} $$

决定系数 $$ R^2=1-\frac{\sum_{i=1}^{n}(y_i-\hat{y}_i)^2}{\sum_{i=1}^{n}(y_i-\bar{y})^2} \tag{18} $$

SSE/SSR/SST 分解(可选): $$ \text{SSE}=\sum_{i=1}^{n}(y_i-\hat{y}_i)^2,\quad \text{SSR}=\sum_{i=1}^{n}(\hat{y}_i-\bar{y})^2,\quad \text{SST}=\sum_{i=1}^{n}(y_i-\bar{y})^2 \tag{18a} $$

调整 \(R^2\)(可选): $$ R^2_{\text{adj}}=1-\frac{\text{SSE}/(n-d-1)}{\text{SST}/(n-1)} \tag{18b} $$

加权最小二乘(可选): $$ J_w=\frac{1}{n}\sum_{i=1}^{n}w_i(y_i-\hat{y}_i)^2 \tag{18c} $$

$$ \mathbf{w}=(X^\top W X)^{-1}X^\top W\mathbf{y},\quad W=\operatorname{diag}(w_1,\ldots,w_n) \tag{18d} $$

参数方差与标准误(可选): $$ \operatorname{Var}(\hat{\mathbf{w}})=\sigma^2 (X^\top X)^{-1},\quad \text{SE}(\hat{w}_j)=\sqrt{\operatorname{Var}(\hat{w}_j)} \tag{18e} $$

t 检验与置信区间(可选): $$ t_j=\frac{\hat{w}_j}{\text{SE}(\hat{w}_j)},\quad \hat{w}_j\pm t_{\alpha/2,\nu}\cdot \text{SE}(\hat{w}_j) \tag{18f} $$

提示:式(18a)–(18f) 为统计推断与加权回归的扩展公式,可按需选用或省略。

对数似然与信息准则(可选): $$ \ell(\mathbf{w},b)=\sum_{i=1}^{n}\log p(y_i\mid x_i) \tag{18g} $$

$$ \text{AIC}=2k-2\ell,\quad \text{BIC}=k\log n-2\ell \tag{18h} $$

提示:式(18g)–(18h) 为模型比较的参考指标,可按需选用或省略。

4.4 回归文字说明(可直接用于论文)

  • 线性回归以最小二乘为目标(式(14)),拟合连续变量与特征之间的线性关系(式(13))。
  • 使用 MAE、RMSE 与 \(R^2\) 评价预测精度(式(15)–(18))。
  • 系统输出预测-真实对比图、残差分布、残差-拟合图与 Q-Q 图,用于检验拟合质量与误差分布。

5. 分类版(逻辑回归)

5.1 Sigmoid 与概率输出(二分类)

$$ z_i=\mathbf{w}^\top x_i+b \tag{19} $$

$$ P(y_i=1\mid x_i)=\sigma(z_i)=\frac{1}{1+e^{-z_i}} \tag{20} $$

判别规则(阈值 \(\tau\)): $$ \hat{y}_i= \begin{cases} 1,& P(y_i=1\mid x_i)\ge \tau\\ 0,& \text{otherwise} \end{cases} \tag{21} $$

对数几率(可选): $$ \log\frac{P(y_i=1\mid x_i)}{1-P(y_i=1\mid x_i)}=\mathbf{w}^\top x_i+b \tag{21a} $$

优势比(可选): $$ \text{OR}_j=\exp(w_j) \tag{21b} $$

5.2 交叉熵损失(对数似然)

$$ J(\mathbf{w},b)=-\frac{1}{n}\sum_{i=1}^{n}\left[y_i\log \hat{p}_i+(1-y_i)\log(1-\hat{p}_i)\right] \tag{22} $$

梯度(可选): $$ \nabla_{\mathbf{w}}J=\frac{1}{n}X^\top(\hat{\mathbf{p}}-\mathbf{y}) \tag{22a} $$

类别权重的加权交叉熵(可选): $$ J_w=-\frac{1}{n}\sum_{i=1}^{n}w_{y_i}\left[y_i\log \hat{p}_i+(1-y_i)\log(1-\hat{p}_i)\right] \tag{22b} $$

balanced 权重参考(可选): $$ w_c=\frac{n}{C\cdot n_c} \tag{22c} $$

提示:式(22b)–(22c) 为类别不均衡下的常见写法,可按需选用或省略。

5.3 正则化(可选)

L2 正则: $$ J_\lambda=J+\lambda\|\mathbf{w}\|_2^2 \tag{23} $$

L1 正则: $$ J_\lambda=J+\lambda\|\mathbf{w}\|_1 \tag{23a} $$

5.4 多分类 Softmax(可选)

$$ P(y_i=c\mid x_i)=\frac{\exp(\mathbf{w}_c^\top x_i+b_c)}{\sum_{j=1}^{C}\exp(\mathbf{w}_j^\top x_i+b_j)} \tag{24} $$

提示:多分类 Softmax 为扩展形式,可按需选用。

5.5 分类评价指标

准确率 $$ \text{Accuracy}=\frac{TP+TN}{TP+FP+TN+FN} \tag{25} $$

精确率 / 召回率 $$ \text{Precision}=\frac{TP}{TP+FP},\quad \text{Recall}=\frac{TP}{TP+FN} \tag{26} $$

F1 值 $$ \text{F1}=\frac{2\cdot\text{Precision}\cdot\text{Recall}}{\text{Precision}+\text{Recall}} \tag{27} $$

宏/微平均(可选,多分类): $$ \text{Precision}_{macro}=\frac{1}{C}\sum_{c=1}^{C}\text{Precision}_c,\quad \text{Recall}_{macro}=\frac{1}{C}\sum_{c=1}^{C}\text{Recall}_c \tag{27a} $$

$$ \text{Precision}_{micro}=\frac{\sum_c TP_c}{\sum_c (TP_c+FP_c)},\quad \text{Recall}_{micro}=\frac{\sum_c TP_c}{\sum_c (TP_c+FN_c)} \tag{27b} $$

ROC/PR 曲线面积(可选): $$ \text{AUC}_{ROC}=\int_{0}^{1}\text{TPR}(\text{FPR})\,d(\text{FPR}) \tag{28} $$

$$ \text{AUC}_{PR}=\int_{0}^{1}\text{Precision}(\text{Recall})\,d(\text{Recall}) \tag{29} $$

5.6 分类文字说明(可直接用于论文)

  • 逻辑回归通过 Sigmoid 输出类别概率(式(20)),以交叉熵为目标函数(式(22)),实现可解释的线性分类。
  • 采用 Accuracy、Precision、Recall 与 F1 评估分类性能(式(25)–(27)),并输出混淆矩阵与 ROC/PR 曲线。
  • 支持类别不均衡时的自动权重(balanced)与阈值曲线分析。

6. 系数解释与可解释性(可选)

线性/逻辑回归的系数 \(\mathbf{w}\) 可视为特征重要性方向与强度:
系数绝对值越大,特征对预测贡献越显著;符号表示正/负相关方向。

7. 界面流程与论文方法描述(可直接粘贴)

  • 选择任务类型(回归/分类),加载数据或示例数据,设置目标列。
  • 在“特征工程”中选择缺失处理、编码、缩放、特征选择与降维(训练集拟合后作用于测试集)。
  • 回归:设置 fit_intercept/positive;分类:设置 penalty/solver/C/max_iter/class_weight。
  • 运行分析,系统输出 Excel 多表结果与图表(回归:残差/对比图;分类:混淆矩阵、ROC/PR 等)。

提示:论文正文可优先保留核心公式与关键图表,其余“可选”公式可放附录或按需省略。

8. 与代码实现的对应关系

本系统的实现并非把线性回归和逻辑回归拆成两个完全独立程序,而是在 具体的算法/机器学习-线性回归/core/critic_calculator.py 中共用一套“数据上传 -> 特征工程 -> 任务分支 -> Excel/图表导出”的结果框架。

代码层面有以下几个应写入文档的事实:

  1. 回归与分类共用统一导出骨架
    基础工作表包括:原始数据处理后数据指标预测学习曲线图表清单参数
    分类任务会追加 混淆矩阵分类报告;回归任务会额外导出 系数 表,用于解释变量影响方向与大小。

  2. 逻辑回归不是只输出分类标签
    程序会进一步导出 ROC、PR、阈值分析与校准曲线,因此论文中可以讨论“概率输出质量”和“阈值敏感性”,而不必只停留在 Accuracy。

  3. 线性回归结果强调系数可解释性
    代码中会把处理后特征对应的系数单独导出到 系数 sheet,因此论文中的回归系数解释应以处理后特征空间为准,而不是只按原始列名简单描述。

  4. 学习曲线是统一评估模块的一部分
    无论是线性回归还是逻辑回归,只要启用对应输出,程序都会导出学习曲线,用于判断样本规模是否足够以及模型是否存在明显欠拟合/过拟合。

  5. 结果目录按时间戳组织
    Excel 与所有图表文件位于同一结果目录中,便于论文插图、附录和复现实验留档。

9. 论文写作模板

方法描述模板:
“本文构建了线性回归/逻辑回归分析框架。建模前首先对原始数据进行缺失值处理、编码、缩放及必要的特征工程,然后按训练集与测试集划分样本。对于连续目标变量,采用线性回归模型并输出回归系数与误差指标;对于分类目标变量,采用逻辑回归模型并输出类别概率、混淆矩阵及 ROC/PR 等评价结果。”

结果描述模板:
“程序结果文件包含处理后数据、逐样本预测、整体指标、系数表或分类报告、学习曲线、参数配置与图表清单。因而论文中既可以报告最终预测精度,也可以进一步解释系数方向、类别阈值变化以及模型在不同样本规模下的稳定性表现。”

10. 单篇终审补充

10.1 图题与表题对齐建议

  • 原始数据 表可写为:表X 线性回归原始数据表。
  • 处理后数据 表可写为:表X 线性回归处理后数据表。
  • 指标 表可写为:表X 线性回归性能指标表。
  • 预测 表可写为:表X 线性回归逐样本预测结果表。
  • 系数 表可写为:表X 线性回归系数表。
  • 交叉验证 表可写为:表X 线性回归交叉验证结果表。
  • 图表清单 表可写为:表X 线性回归图表索引表。
  • 参数 表可写为:表X 线性回归参数设置表。
  • pred_vs_true.png 建议写为:图X 线性回归预测值与真实值散点图。
  • true_vs_pred_line.png 建议写为:图X 线性回归真实值与预测值对比图。
  • residuals_hist.png 建议写为:图X 线性回归残差直方图。
  • residuals_qq.png 建议写为:图X 线性回归残差 Q-Q 图。
  • residuals_vs_pred.png 建议写为:图X 线性回归残差与拟合值关系图。

10.2 终审说明

  • 当前最适合作为终审证据的代表性目录可采用 具体的算法/机器学习-线性回归/results/机器学习-线性回归和逻辑回归分析结果_20260329_163731。该目录同时具有结果簿、实体图、输入快照和 repro 脚本。
  • 该目录对应的是回归场景,真实工作表为 原始数据/处理后数据/指标/预测/系数/交叉验证/图表清单/参数。论文若要解释系数方向和大小,应以 系数 表为准,而不是只根据原始字段名称做口头解释。
  • 当前真实图文件稳定为 pred_vs_true.pngtrue_vs_pred_line.pngresiduals_hist.pngresiduals_qq.pngresiduals_vs_pred.png。它们构成了回归任务的完整诊断图集,足以支撑正文结果解释与附录残差分析。
  • 当前复现脚本为 repro_lr_logit_20260329_163731.py,采用脚本同目录输入快照 SRC_FILE = 'lr_window1_input.csv',不是 repro_inputs/...。因此该篇应如实写成“脚本同目录 CSV 快照复现”。
  • 这篇文档标题同时覆盖线性回归与逻辑回归,但本轮终审证据目录是回归场景。若后续要做更彻底的双任务终审,建议再补一套逻辑回归分类目录的真实 sheet 和图名证据。

10.3 全量强化补充

本篇终审补充绑定的真实算法目录为 具体的算法/机器学习-线性回归。这里需要如实说明:文档标题写的是“机器学习-线性回归和逻辑回归”,但磁盘上的真实算法目录名是 机器学习-线性回归,线性回归与逻辑回归共用这一套程序框架。

本次采用的代表性结果目录为 具体的算法/机器学习-线性回归/results/机器学习-线性回归和逻辑回归分析结果_20260329_163731

该目录当前只保留一份主结果工作簿:

  • 机器学习-线性回归和逻辑回归分析结果_20260329_163731.xlsx

实测工作表为:

  • 原始数据
  • 处理后数据
  • 指标
  • 预测
  • 系数
  • 交叉验证
  • 图表清单
  • 参数

这一轮证据目录明确对应回归场景,因为它包含 系数、残差图和回归诊断图,而不包含逻辑回归分类目录常见的 混淆矩阵分类报告ROC/PR 工作表。因此这篇若在论文里同时介绍线性回归与逻辑回归,应把本轮证据限定为“回归分支的真实导出”。

当前目录中的真实图文件为:

  • 具体的算法/机器学习-线性回归/results/机器学习-线性回归和逻辑回归分析结果_20260329_163731/pred_vs_true.png
  • 具体的算法/机器学习-线性回归/results/机器学习-线性回归和逻辑回归分析结果_20260329_163731/true_vs_pred_line.png
  • 具体的算法/机器学习-线性回归/results/机器学习-线性回归和逻辑回归分析结果_20260329_163731/residuals_hist.png
  • 具体的算法/机器学习-线性回归/results/机器学习-线性回归和逻辑回归分析结果_20260329_163731/residuals_qq.png
  • 具体的算法/机器学习-线性回归/results/机器学习-线性回归和逻辑回归分析结果_20260329_163731/residuals_vs_pred.png

因此这一轮真实图证据完整覆盖了回归预测对比与残差诊断,但不应被写成逻辑回归概率输出图组。

复现实物方面,该目录实际包含:

  • 具体的算法/机器学习-线性回归/results/机器学习-线性回归和逻辑回归分析结果_20260329_163731/repro_lr_logit_20260329_163731.py
  • 具体的算法/机器学习-线性回归/results/机器学习-线性回归和逻辑回归分析结果_20260329_163731/lr_window1_input.csv

脚本中明确写成 SRC_FILE = 'lr_window1_input.csv',并把 file_path 回写为同目录 CSV 快照。因此这一篇当前的真实复现口径同样不是 repro_inputs/... 子目录,而是“结果目录同级输入快照 + repro 脚本”。

10.4 软件实现核查补充(2026-07)

  • 当前目录对应的是“线性回归 + 逻辑回归”的双任务系统,不是单独的线性回归页面;文档标题和正文都应保持这一点。
  • 结果目录的回归证据以 系数、预测对比图和残差诊断图为主;如果正文讨论逻辑回归,则应另外说明分类指标、混淆矩阵与概率曲线,不能把回归图直接当作分类结果。
  • 复现脚本采用结果目录同级 CSV 快照与 repro_lr_logit_*.py 的口径,说明时应把 lr_window1_input.csv 的输入依赖写清楚。
  • 模型解释可以继续保留线性回归/逻辑回归的标准公式,但软件实际输出以当前导出的表格和图为准。