跳到正文

ML项目流程:特征工程到评估

特征工程、模型选择、调参与评估全流程实战分享

原题:请分享你在学术或工作中参与的机器学习项目,重点说明项目中是否包含特征工程、模型选择、训练调参与评估的完整流程。

项目与经历 · OPPO真题

回答与解析

完整流程由问题与真实架构决定

可填写模板:

  1. 问题和指标:任务【分类/回归/排序/生成】,用户决策【】,主指标【】和约束【】。
  2. 数据与特征:数据来源、许可和时间范围【】;清洗、缺失、异常、类别和特征生成【】;按用户、实体或时间切分并检查泄漏。
  3. 基线与模型:简单基线【】;候选模型【】;用验证集和消融说明选择。XGBoost 与 DeepFM 都可以承担排序或预测角色,并不固定分别属于召回与精排。
  4. 训练调参:搜索空间、预算、随机种子、早停和 checkpoint【】;预处理只在训练集拟合。
  5. 评估与部署:离线指标、切片、置信区间、延迟、成本【】;线上若有则说明流量、观察窗口和回滚。
  6. 复盘:错误样本、数据漂移、监控和下一步【】。

模型链路必须来自候选人的实际系统。候选生成可以是规则、向量检索、协同过滤或学习模型,排序可以是树模型、深度模型或其他方法。方法名不决定流水线位置,目标函数、特征可用性、延迟与部署约束才决定。

口语版讲法(30秒速答 + 90秒主答 + 完整展开)

  • 定义任务、用户决策和指标
  • 说明数据、特征与防泄漏切分
  • 用基线与消融选择模型
  • 记录调参预算和复现条件
  • 报告部署、监控与局限

【30秒速答】 完整机器学习项目要用真实链路回答。任务是【】,主指标与约束是【】;数据来自【】,经过【清洗与特征】,按【用户、实体或时间】切分防泄漏。基线为【】,候选模型为【】,通过【消融和验证】选择最终方案。调参记录搜索空间、预算和随机种子,结果同时看总体、切片、延迟和成本。XGBoost 与 DeepFM 都可能用于预测或排序,不固定一个做召回、一个做精排。模型位置必须来自实际架构,不能代写电商规模和收益。

【90秒主答】 项目开头说明模型支持什么决策。是预测点击、识别风险、排序候选,还是生成文本;错报和漏报的代价是否对称;离线指标与用户结果怎样关联。主指标可以是 AUC、F1、NDCG、误差或任务成功率,同时定义延迟、内存、可解释与合规约束。没有业务目标,后面的特征和模型无法判断好坏。

数据部分给来源、许可、时间、样本单位和标签生成过程。缺失值、异常值、重复样本、类别不平衡和标注冲突分别处理。特征工程只能使用预测时可获得的信息,归一化、编码和目标统计要在训练折内拟合。按随机行切分可能让同一用户、商品或时间未来信息跨集合,应该根据实体与部署时间设计切分,并做近重复检查。

【完整展开】 模型选择从可解释的简单基线开始,例如规则、线性模型或已有系统,再引入树模型、因子分解、深度网络或预训练表示。XGBoost 是梯度提升树,可使用结构化特征完成分类、回归或排序;DeepFM 结合因子分解的低阶交互与深度网络的高阶交互,也常用于 CTR 预测或排序。它们的论文与能力不规定系统层级。召回阶段可能用向量、协同过滤或规则,精排也可能用树模型或深度模型,取决于候选规模、特征时效和延迟。

调参要记录搜索空间、试验次数、随机种子、early stopping 和选择指标,避免对测试集反复调参。评估除了总体分数,还看类别、用户、时间和长尾切片,使用重复实验或置信区间。部署时保证线上线下预处理一致,记录 P95 延迟、吞吐、资源、漂移和回滚。若有线上实验,说明流量、对照、观察窗口和统计方法;没有就只说离线。复盘给出失败样本与下一次最小实验。一个可信的完整流程,来自每个环节都能对应真实代码与数据,而不是把流行模型硬塞进固定召回精排模板。

关键一句:模型名称不决定它处于召回还是排序,系统位置由目标、特征、候选规模和延迟共同决定。

核验来源

  1. XGBoost: A Scalable Tree Boosting System
  2. DeepFM: A Factorization-Machine based Neural Network for CTR Prediction
  3. Hidden Technical Debt in Machine Learning Systems

面试官还可能这样问

  1. 问法 1 · 场景切入

    假设你在做电商搜索排序,用户搜“大码连衣裙”,日志里有几百万条曝光。你会怎么从零开始搞一套特征,再到训练、评估、上线?说说你实际怎么推的。

  2. 问法 2 · 层层追问

    你做过机器学习的项目吧?……完整流程包括哪些环节?……比如特征工程你是怎么做的?……模型选型和调参呢?……最后怎么评估上线?

  3. 问法 3 · 直球架构

    请分享一个你跑通完整ML流程的项目,从特征工程、模型选择、训练调参到评估上线,每个环节具体怎么做的?

同模块相关题目