机器学习进阶文档深度页
推理输入契约
预测输入必须与训练时的列名、顺序、单位、类型、缺失约定和二维形状一致。
学习前需要掌握
数据形状内容待补充模型保存内容待补充
背景与问题
列错位、单位变化或 Series 降成一维会让预测报错或静默产生错误结果。
概念定义
输入契约是模型接受数据的明确结构与语义约束,不只是数组长度。
直观理解
模型只认识训练时那套表头和单位,不能靠猜测理解新格式。
核心原理
优先使用带列名 DataFrame;在 predict 前验证列集合、顺序、有限值、范围与模型版本。
数学表达
核心表达
优先使用带列名 DataFrame;在 predict 前验证列集合、顺序、有限值、范围与模型版本。
变量含义
变量定义与本页概念定义一致,代码中的同名变量保持相同语义。
计算步骤
- 1保存 expected_columns
- 2检查缺失/多余列
- 3重排列顺序
- 4验证 dtype/单位/有限性
代码对应位置
示例 1推理输入契约 示例:对应文档中的可靠评价或训练流程。
计算与实现步骤
- 1
保存 expected_columns
- 2
检查缺失/多余列
- 3
重排列顺序
- 4
验证 dtype/单位/有限性
- 5
保留二维
- 6
记录版本
代码实现
示例 1
推理输入契约 示例
推理输入契约 示例
scikit-learn
example_01.py用途:对应文档中的可靠评价或训练流程。
expected=list(X_train.columns)
if list(new_sample.columns)!=expected:
raise ValueError("输入特征名称或顺序不一致")
if not np.isfinite(new_sample.to_numpy()).all():
raise ValueError("输入包含非有限值")代码解析
解析始终位于完整代码下方,并按实际代码段逐项对应。
输入数据与任务
对应文档中的可靠评价或训练流程。
X_train- 训练特征,只允许它参与预处理器和模型的 fit。
Step 1 · 1–5 行
数据边界和划分方式是代码含义的一部分。
expected=list(X_train.columns)
if list(new_sample.columns)!=expected:
raise ValueError("输入特征名称或顺序不一致")
if not np.isfinite(new_sample.to_numpy()).all():
raise ValueError("输入包含非有限值")预期输出或运行结果
合法输入继续预测;列或数值错误得到清晰异常。
常见错误 · 4 条
- 只检查特征数
- Series 一维输入
- 单位未记录
- 确认样本轴、特征轴以及 X 与 y 的第一维完全对应。
实际应用
- 批量与单条预测
- API 输入校验
常见错误
只检查特征数
Series 一维输入
单位未记录
文档来源
08|端到端机器学习项目原始文档
学习资料/learning_tech/08_end_to_end_project.md- §10 生产预测中的输入检查
- §11 将训练与预测分离
推荐学习资料
暂未收录相关资料
参考库不会生成虚假资源或无效外部链接。