机器学习入门扩展内容
数据预处理与泄漏边界
先划分数据,再只用训练集拟合填补、缩放和编码参数。
前置知识
通俗直觉
预处理器也会“学习”。如果让它看到测试集均值,相当于考试前偷看了试卷整体分布。
核心原理
训练数据拟合 preprocessing 参数,验证、测试与线上数据只调用 transform。Pipeline 能让交叉验证中的每一折独立执行这一规则。
数学公式
均值和标准差必须只来自当前训练数据。
工作流程
- 1
明确输入、输出与评价方式
- 2
建立简单基线
- 3
实现并检查关键中间量
- 4
在验证数据上诊断和迭代
代码示例
数据预处理与泄漏边界 示例
Python
example.py用途:Pipeline 把缺失值填补、标准化和模型绑成一个整体,降低交叉验证时的数据泄漏风险。
from sklearn.pipeline import make_pipeline
from sklearn.impute import SimpleImputer
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
model = make_pipeline(
SimpleImputer(strategy="median"),
StandardScaler(),
LogisticRegression(),
)代码解析
Pipeline 把缺失值填补、标准化和模型绑成一个整体,降低交叉验证时的数据泄漏风险。
- — 先检查数据和张量形状
- — 把会学习参数的步骤限制在训练数据内
应用场景
- 缺失值处理
- 特征缩放
- 可靠交叉验证
常见误区
先对全数据标准化再划分
验证和测试阶段重新拟合预处理器
推荐学习资料
代码教程A 级
scikit-learn Examples
按算法和应用组织可运行示例,展示预处理、训练、评估与可视化流程。
scikit-learn Contributors · scikit-learn
资料笔记
GitHub 仓库B 级
scikit-learn/scikit-learn
经典机器学习算法、模型选择、预处理和评估工具的核心实现仓库。
scikit-learn Contributors · GitHub
仓库信息
研究 scikit-learn 实现和贡献流程
主要语言:Python / Cython包含数据集或实验需要额外环境