第四范式建模笔试全解析:机器学习与特征工程备考指南 📅 发布时间:2026/8/29 13:01:12 👁 浏览次数: 1. 第四范式建模笔试到底在考什么从业务反推命题思路1.1 先搞清楚第四范式业务才知道笔试为什么要考这些2020年秋招季“第四范式秋招建模笔试题”这个话题在应届生社群里讨论度很高。很多人拿到笔试邀请后第一反应是去刷LeetCode、看深度学习的卷积神经网络和Transformer结果真正打开试卷后发现题目重心完全不在CV和NLP上反而大量聚焦在结构化数据建模、特征工程、模型评估和业务场景理解上。这个偏差如果不及时纠正很容易把宝贵的准备时间浪费在错误的方向上。第四范式核心做的事情是企业级AI平台、AutoML、迁移学习、决策智能主要落地场景集中在金融风控、反欺诈、精准营销、推荐系统这类以表格数据为主的任务中。业务场景决定了技术栈一张用户特征表一堆行为日志一个预测目标建模流程跑通之后还要能上线、能监控、能解释。所以笔试命题天然会围绕表格数据建模的完整链路展开比如如何构造特征、怎么处理样本不均衡、怎么评估模型效果、如何避免过拟合。如果你一直盯着图像分割、文本生成这些方向做准备肯定会觉得题不对路。另外第四范式另一个标志性方向是AutoML也就是要让机器学习模型在一定程度上自动化地完成特征工程、模型选择、超参调优。因此笔试里经常出现“如果只有少量训练时间和计算资源你会怎么设计建模流程”这类开放性问题本质上就是在考察你有没有AutoML的思维习惯。哪怕不直接叫AutoML也会通过特征选择、参数搜索、模型融合等方式间接体现。1.2 2020秋招建模笔试题型复盘选择和编程为主也有简答根据我和身边同学对2020年秋招笔试情况的经验复盘第四范式建模岗的笔试题型基本可以分成三大块整体时间安排在90到120分钟不等不同批次会有微调。这里不是内部真题泄露而是从大量考后交流中归纳出的大致框架对准备后续批次的同学有很强的参考价值。第一块是单选题和多选题大概10到20道覆盖机器学习基础、概率统计、线性代数、少量数据结构和算法常识。这部分题目难度不算高但坑很多尤其是多选题选项之间会有很强的干扰性。比如给你一组模型问哪些属于集成学习如果你只记得Bagging和Boosting忘记了Stacking可能就会漏选。又比如问哪些操作能缓解过拟合正确答案可能包括正则化、早停、数据增强、Dropout但如果你把“减小模型复杂度”和“增大模型复杂度”弄反了整题就没了。第二块是简答题或场景设计题通常有2到3道要求写出思路、步骤或伪代码。这类题非常看重逻辑条理阅卷时采分点很明确比如“缺失值处理”“特征编码”“交叉验证”“评估指标选择”各占一定分数。只写结论不给过程往往只能拿一半的分。第三块是编程题一般有1到2道用Python或者你熟悉的语言完成。常见的考法有两种一种是直接给你一份清洗好的CSV数据让你训练一个分类模型并输出AUC另一种是让你纯手写实现某个算法模块比如K折交叉验证的划分逻辑、信息增益的计算、或者GBDT里残差不匹配的说明。需要注意的是笔试环境通常提供基础的Python环境sklearn、pandas、numpy一般是装好的但能不能联网安装其他库就要看具体平台了所以最好提前熟悉常用库的API。下面这个表格可以帮你快速建立整体认知题型覆盖方向建议投入时间常见难度单选/多选机器学习基础、概率统计、正则化、模型评估20-30分钟中等干扰项多简答/场景设计特征工程、建模流程、AutoML思想、业务理解30-40分钟中高看重条理编程题数据预处理、模型训练、算法实现40-60分钟高需要完整跑通1.3 不同岗位方向的侧重点差异这里还要提一句第四范式建模岗并不是一个笼统的岗位实际招聘中会细分为风控建模、推荐建模、平台算法等方向。虽然笔试共用一套题的情况也存在但不同方向在简答和场景题上的侧重可能不一样。风控方向更关注样本不均衡、KS值、坏账率、可解释性推荐方向更关注特征交叉、用户行为序列、AUC和GAUC平台方向则可能多问一些AutoML、分布式训练、模型部署相关的问题。如果你知道自己投的是哪个组可以针对性地准备一些业务术语和指标口径在简答题里自然带出来会让阅卷人觉得你确实理解业务而不只是在背概念。2. 机器学习基础考点选择题和简答题里的高频知识点2.1 损失函数与模型优化为什么L2正则能抗过拟合第四范式笔试里的机器学习基础题很少直接问你“什么是过拟合”这种送分题而是会结合损失函数和模型优化的细节来考。比如给你一个加了L2正则的损失函数L(w) 原始损失 λ||w||²问你梯度更新时会发生什么变化。这个问题看起来简单但很多人在推导时会卡住。L2正则的本质是在原始损失基础上加上权重的平方和优化时梯度会多出一项2λw。于是参数更新公式变成 w w - η(原始梯度 2λw)等价于每次更新前先让权重乘上一个小于1的系数(1 - 2ηλ)。这个“权重衰减”会让模型的参数整体保持在较小的范围从而降低模型对个别特征的过度敏感起到抗过拟合的作用。理解到这一层笔试里再问“L1和L2的区别”时你就能回答出L1是拉普拉斯先验、容易产生稀疏解L2是高斯先验、参数平滑而不是只背“L1是绝对值L2是平方”这种表面答案。另一个高频考点是梯度下降和损失函数的组合。比如问“为什么逻辑回归用交叉熵而不是均方误差”这背后是因为逻辑回归的预测值是经过Sigmoid映射的概率如果使用均方误差损失函数关于参数的梯度会包含Sigmoid的导数项在预测接近0或1时梯度会趋近于0导致收敛非常慢。交叉熵配合Sigmoid梯度形式干净也没有这个问题。笔试题不会让你现场推导全程但如果你能把这个核心原因写出来就能在简答题里拉开差距。2.2 树模型家族GBDT、XGBoost、LightGBM的差异与适用场景第四范式笔试对树模型的偏爱是肉眼可见的。原因很简单表格数据中树模型通常是效果最稳、可解释性最好的选择而且和特征工程配合起来非常灵活。选择题里经常出现GBDT、XGBoost、LightGBM之间的对比简答题里也可能让你说说三者的区别。GBDT的核心思想是每一轮拟合前一轮损失函数的负梯度当损失是平方损失时负梯度就是残差然后把多棵决策树累加起来。XGBoost在GBDT基础上做了三件很关键的事目标函数里加入模型复杂度的正则项用二阶泰勒展开去逼近损失函数支持列采样和近似分位点算法。这三件事让XGBoost在训练速度和精度上通常优于原版GBDT。LightGBM又进一步用直方图算法加速分裂点搜索同时使用Leaf-wise的叶子生长策略可以在相同迭代次数下获得更低损失但也更容易过拟合所以需要用max_depth和min_data_in_leaf去限制。笔试里常见的考法是给一组场景让你选择最合适的模型。比如“训练数据500万行2000个特征要求训练时间尽量短精度优先”这时候LightGBM往往比XGBoost更合适因为直方图算法在大样本高维特征下速度优势明显。又比如“业务要求模型可解释特征少于50个”那逻辑回归或浅层决策树可能比XGBoost更合理因为树集成的解释性会明显下降。答这类题的关键不是把模型越高级越好而是要结合数据规模、训练资源和业务需求来做权衡。2.3 评估指标AUC、KS、LogLoss怎么选评估指标是第四范式笔试里绝对绕不开的一类题。因为做结构化数据建模时业务方最关心的问题就是“模型到底靠不靠谱”而“靠谱”在不同场景里的度量方式并不一样。选择题会直接给一个混淆矩阵让你算Precision、Recall、F1简答题则可能问“信贷风控模型为什么常用KS而不是AUC”。AUC本质上是随机正样本排在随机负样本前面的概率它只关心排序不关心预测概率的绝对值。所以AUC适合优化模型排序能力的场景比如推荐和营销。KS值是把样本按预测概率分桶后计算累计正样本占比和累计负样本占比的最大差值在风控领域非常常用因为它直接反映模型对好坏客户的区分能力。LogLoss则不一样它逐样本计算预测概率的交叉熵会惩罚“预测得很自信但错了”的情况。在风控这类对概率校准有要求的场景里LogLoss比AUC更能说明问题。备考时一定要记住一个容易被忽视的细节正负样本比例变化对评估指标的影响。AUC对样本不平衡相对不敏感因为它是排序指标但Precision会受负样本数量影响当负样本变多时同样一组预测结果Precision会下降。笔试题里如果给了一个高度不平衡的数据集问你选什么指标优先考虑AUC、PR-AUC或者KS而不是Accuracy。把这个逻辑理清楚遇到评估指标题你就不会慌。3. 结构化数据建模的实操题特征工程才是重头戏3.1 拿到一张表第一件事不是调模型说实话我在辅导2021届和2022届同学准备第四范式笔试时发现一个共性问题很多人拿到编程题后第一反应是立刻写model.fit()结果丢分最多的地方反而是最基础的数据预处理和特征构造。第四范式笔试里的编程题通常会给一份有几十万行、几十个特征的业务数据目标是一个二分类标签。数据里大概率存在缺失值、异常值、类别特征、时间戳如果你直接把这些原始特征喂给模型哪怕调参调得再好分数也不会高。正确的做法是先花几分钟梳理数据。打开文件后看一眼shape看一眼每一列的dtype统计缺失值比例看看目标变量的分布。如果你在笔试环境里发现某些特征缺失达到80%那这个特征基本可以直接放弃强行填充只会引入噪声。对数值特征先看分布严重右偏的特征可以做log变换或分箱对类别特征如果类别数量超过几十个直接OneHot会让维度爆炸需要先考虑频数编码或目标编码。这些步骤不仅是为了提升模型效果更是为了让阅卷人看到你具备完整的结构化数据建模意识。我建议答题时把每个阶段都写出关键代码和注释比如“此处用中位数填充原因是该特征分布存在较大离群点均值会被带偏”。这样即使最终分数不是最优但你能稳定拿到步骤分。3.2 高频特征处理方法缺失值、类别特征、时间特征第四范式笔试简答题里特征工程相关的题目出现频率非常高而且特别喜欢考“怎么处理某个实际问题”。比如“用户表中年龄特征有30%缺失你会怎么处理”“城市特征有100种取值怎么编码”“用户注册时间戳怎么变成有用特征”这些问题看似简单但想答得出彩不能只写“填充均值、OneHot、换时间戳”这种流水账要说出理由和风险。对缺失值老手和新手的区别在于新手只知道填充老手会先问“缺失是否本身有业务含义”。比如风控数据里收入字段缺失可能意味着用户没有稳定收入或资料不全这时候单独用一个“is_missing”特征反而比填充数值更有区分能力。对数值型缺失可以用中位数、众数、端值填充也可以用模型预测填充但笔试里最稳妥的是结合缺失比例来选。缺失比例低于5%可以用众数或中位数缺失比例在5%到30%之间可以考虑填充后加“是否缺失”标记超过30%如果特征业务意义不强可以删除。类别特征处理是另一个重头戏。OneHot简单有效但高基数类别会带来维度灾难。LabelEncoder把类别变成整数很多新手会踩坑因为树模型用LabelEncoder没关系但线性模型会把类别大小当成数值大小产生错误约束。Target Encoding也就是用目标变量均值编码类别效果经常很好但非常容易标签泄漏必须配合交叉验证来编码否则模型在训练集上表现虚高、线上崩盘。笔试里如果提到Target Encoding一定要主动强调“用交叉验证避免过拟合”这一句话就能让回答上一个档次。时间特征也容易被忽视。给定一个注册时间戳很多人只会把它当作日期字符串丢掉但实际上可以拆成年份、月份、星期几、是否节假日、距离某个重要事件的天数等。在营销和风控场景里“距离上次登录时间”“注册时长”这类时间差特征往往比原始时间戳本身的信息量还大。3.3 特征选择与验证在笔试中怎么展示思路特征选择是第四范式笔试简答和编程题里的常客因为它直接关系到AutoML思想。有一个很典型的问法“如果给你500个特征训练样本只有2万条你会怎么做特征选择”这个问题考察的不只是特征选择算法本身还有你对维度灾难和过拟合的认知。答题时可以从三个层次展开。第一先用过滤式方法做粗筛删除常数特征、缺失率过高的特征、相关性高于0.95的重复特征。第二用嵌入式方法比如训练一个LightGBM或随机森林看特征重要性排序取topN。第三用包裹式或基于验证集的迭代选择比如用RFECV递归特征消除加交叉验证或者直接在前向选择中看验证集AUC变化。要注意的是特征选择必须在训练集内部通过交叉验证来做不能把所有数据放在一起算特征重要性再切分否则会信息泄漏。一个高级加分点是提到置换重要性Permutation Importance。它不是看模型训练时用了哪些特征而是通过打乱某个特征的取值来观察模型效果的下降幅度能更好地反映特征对模型预测的真实贡献。笔试题里如果能主动提到这个概念并说明它和树模型自带特征重要性的区别会显得你确实做过实际建模项目而不是只看过网课。4. 经典笔试题实例与解题过程从读题到提交4.1 选择题实例过拟合的解决方案这里我整理了几类高频选择题用实例的方式带大家走一遍解题过程。注意这些不是2020年原题但考点和干扰项设置方式高度相似可以作为自测。题目“以下哪些方法可以缓解过拟合”选项有A.增加训练数据B.增大模型参数C.正则化D.早停E.增加特征数量。正确答案是A、C、D。B和E通常都会增加模型复杂度在训练数据不变的情况下会加剧过拟合。但这里有一个容易纠结的点有人会觉得“更多训练数据”和“更多特征”不是都能提升模型吗关键区别在于增加数据量能提供更多样本信息而增加特征如果没有足够数据支撑只会让模型更容易记住噪声。这个区分点在选择题里经常作为隐形考点出现。另一道常见题“逻辑回归使用L1正则化的主要效果是什么”A.让权重更加平滑B.让部分权重变为0C.提高训练速度D.消除异常值影响。正确答案是B。L1正则化在零点不可导优化过程中更容易把不重要的特征权重压缩为0从而实现特征选择。A是L2的效果C不是L1的直接目的D是数据预处理做的事情。4.2 简答题实例设计一个信贷风控模型2020年第四范式建模笔试的简答题里出现频率非常高的场景是信贷风控。这里我写一个标准回答框架你可以直接参考。题目大概是“需要为一个信贷产品构建申请评分卡模型样本是历史用户贷款申请数据包含用户基本信息、征信记录、历史借贷行为目标是预测用户未来90天是否逾期。请简述建模流程和关键处理思路。”答题逻辑可以这样展开第一步明确目标定义。逾期口径是“首逾90天”还是“任意逾期90天”这个必须和业务确认。第二步样本设计。确定观察窗口和表现窗口比如使用过去6个月申请的用户作为样本观察其未来90天表现。第三步特征工程。对用户基本信息做缺失值和异常值处理对征信查询次数、贷款笔数等做分箱和频率统计对历史借贷行为做额度使用率、最近一次还款间隔等衍生特征。第四步模型选择。可以用逻辑回归或XGBoost二者各有优势逻辑回归可解释性强XGBoost精度高、非线性能力强。第五步模型评估。除了AUC还要关注KS风控场景下也会看Lift、Gain等指标。第六步上线监控。监控特征分布漂移和模型分数分布变化每隔一段时间重训练。写这类题不能只列步骤必须让阅卷人看到你有业务风险意识。比如“逾期样本可能很少需要考虑上采样或下采样以及调整分类阈值”“评分卡模型需要转换为标准分支持业务解释”这些话会成为额外加分项。4.3 编程题实例用Python实现带交叉验证的模型训练流程笔试编程题如果考到结构化数据建模一般不会要求你从零实现XGBoost而是用sklearn完成一个标准的训练评估流程。这里我给出一个高分的答题模板你直接套用就能覆盖大部分采分点。import pandas as pd import numpy as np from sklearn.model_selection import StratifiedKFold from sklearn.preprocessing import LabelEncoder from sklearn.ensemble import GradientBoostingClassifier from sklearn.metrics import roc_auc_score df pd.read_csv(train.csv) # 1. 删除缺失率超过80%的特征 high_missing_cols df.columns[df.isnull().mean() 0.8] df df.drop(columnshigh_missing_cols) # 2. 数值特征缺失值用中位数填充 num_cols df.select_dtypes(includenp.number).columns for col in num_cols: df[col] df[col].fillna(df[col].median()) # 3. 类别特征填充Unknown并编码 cat_cols df.select_dtypes(includeobject).columns for col in cat_cols: df[col] df[col].fillna(Unknown) le LabelEncoder() df[col] le.fit_transform(df[col]) X df.drop(columns[target]) y df[target] # 4. 5折交叉验证评估AUC skf StratifiedKFold(n_splits5, shuffleTrue, random_state42) auc_list [] for train_idx, valid_idx in skf.split(X, y): X_train, X_valid X.iloc[train_idx], X.iloc[valid_idx] y_train, y_valid y.iloc[train_idx], y.iloc[valid_idx] model GradientBoostingClassifier(n_estimators100, max_depth3) model.fit(X_train, y_train) pred model.predict_proba(X_valid)[:, 1] auc roc_auc_score(y_valid, pred) auc_list.append(auc) print(ffold AUC: {auc:.4f}) print(fCV AUC mean: {np.mean(auc_list):.4f})这段代码的关键不在于多复杂而在于它包括了数据清洗、缺失值处理、类别编码、交叉验证、评估输出。笔试阅卷时这些过程比单纯的模型分数更重要。如果你能再补一句“为什么用StratifiedKFold保证每一折正负样本比例和全量一致适合不平衡数据”那就更稳了。4.4 分析题实例AutoML场景题怎么回答第四范式有一个很鲜明的标签是AutoML所以笔试里的开放分析题经常和它挂钩。比如给你一批数据要求“在有限时间内自动完成特征工程、模型选择和超参调优并解释你的方案”。这种题没有唯一答案但可以从几个维度去体现你对AutoML的理解。首先特征工程自动化。你可以说用简单的统计特征最大值、最小值、均值、标准差、缺失值数量作为基础再对高基数类别做目标编码对数值特征做分箱然后通过特征选择工具筛掉无效特征。其次模型选择自动化。可以预设几个候选模型比如逻辑回归、LightGBM、XGBoost再用交叉验证或超参搜索网格搜索、随机搜索、贝叶斯优化去选。再者模型融合。可以自动尝试加权平均或Stacking但要注意不要过度复杂化导致很难解释。答题时如果能提一句“AutoML不是完全不用人工而是需要把业务约束、数据先验和资源限制嵌入到自动流程中”会显得你思考得比较深。因为在企业级场景里纯黑盒的AutoML很难落地业务方需要理解模型依据所以AutoML的设计本质上是一个“半自动可干预”的过程。5. 备考第四范式建模岗最容易踩的5个坑5.1 只刷深度学习题忽略表格建模我见过太多同学在笔试前疯狂刷图像分类、文本分类的代码题结果一打开第四范式笔试题发现满眼是特征工程、缺失值处理、GBDT调参瞬间心态就崩了。第四范式的主战场是结构化数据和决策智能笔试自然以表格数据建模为主。备考时一定要把重心放在传统机器学习算法逻辑回归、决策树、GBDT、XGBoost、LightGBM和数据分析处理上深度学习只需要了解基本原理和适用场景即可不必在上面花大把时间。5.2 编程题只写核心训练代码不关注数据质量另一个常见失分点是很多人在编程题里直接读取数据然后fit模型完全跳过了数据探索和预处理。第四范式笔试编程题的数据集通常不会太干净如果最终AUC很低往往不是模型问题而是数据处理出了问题。比如数值特征里存在异常值导致树模型学到奇怪的分裂点类别特征里存在高基数且缺失严重的情况不处理就会拖垮模型。答题时一定要把数据处理环节写清楚哪怕只是简单的缺失值填充和标准化也能明显提升结果。5.3 简答题只写结论不写理由简答题是最容易出现“会但拿不到分”的环节。很多人凭感觉写“用AUC评估”“用LightGBM建模”但不说为什么采分点自然不够。第四范式笔试看重的是你的决策依据因为建模岗实际工作中需要不断向业务方解释模型选择和效果评估的理由。所以在简答题里每写一个方案都要补一句“因为什么”。比如“选择LightGBM是因为训练数据量较大且特征维度高直方图算法能显著提升训练速度同时通过限制叶子节点数来防止过拟合。”这种回答才是有信息量的。5.4 忽视业务场景模型脱离目标第四范式的建模笔试题特别喜欢把业务背景嵌到题干里比如“营销场景下用户转化率很低正样本只有1%”“风控场景下模型分数需要支持人工审核”。如果只看数据不看业务很容易选错评估指标和处理策略。营销场景要更注重排序能力AUC和Lift比较合适风控场景更关注头部坏客户的召回KS和PrecisionTopK是关键。备考时可以有意识地积累几个典型场景的指标口径和处理思路笔试中遇到类似场景直接用上。5.5 时间分配不合理选择题耗费太久笔试时间90到120分钟看起来不长不短。但如果你在选择题里纠结太久后面编程题会非常紧张。我建议拿到试卷先花一分钟浏览全卷把分值和难度标记一下优先完成编程题和简答题里比较有把握的部分选择题放到最后统一做。因为编程题和简答题的分值占比通常更高而且步骤分好拿选择题的干扰项会消耗大量精力。平时模拟练习时也要有意识训练这个节奏不要等到真实笔试时再调整。6. 从笔试到Offer建模岗面试会怎么追问6.1 笔试代码题如何延伸为项目经验第四范式的笔试不仅是筛选门槛更是面试官了解你能力的重要输入。很多面试官会在面试时直接问“你在笔试里的特征工程为什么这么做”“如果线上效果不好你会怎么排查”这时候如果你笔试只是草草写了代码没有深入思考就会很被动。建议笔试结束后把题目复盘一遍整理出完整的建模思路包括数据定义、特征工程、模型选择、评估指标和可能的优化方向然后写成一页纸的草稿面试前拿出来看一遍。如果你正好在学校或实习中做过类似项目比如“用户流失预测”“信贷违约预测”一定要主动把它和笔试题目做关联说明“这种情况我在项目里遇到过当时是怎么处理的”。这样面试官会觉得你不是纸上谈兵而是真正有建模经验。6.2 手撕一道简单模型LR的梯度下降推导第四范式面试中手撕逻辑回归梯度下降是一个经典环节因为逻辑回归是结构化数据建模的基础模型也是AutoML平台里最常见的基线模型。推导并不复杂但很多人因为紧张会卡在Sigmoid求导那一步。逻辑回归假设P(y1|x) 1 / (1 exp(-wx))损失函数取交叉熵。对单个样本来说损失是 -[y log p (1-y) log (1-p)]。对参数w求导后可以得到一个非常干净的形式损失对w的梯度等于(p - y) * x。这个结果在笔算推导时一定要记熟因为它体现了预测值和真实值之间的误差与特征值的乘积。面试官很可能继续问“如果加入L2正则梯度会变成什么”答案就是(p - y) * x λw对应到代码里就是在更新时多减一项。把这条推导链练熟面试开场会很加分。6.3 准备一套结构化的“建模方法论”口径无论是笔试简答还是面试追问第四范式都希望你有一个稳定的建模方法论框架而不是想到哪儿说到哪儿。我自己习惯用六个环节来组织业务理解、数据切分、特征工程、模型训练、模型评估、上线监控。在回答任何建模类问题时都按照这六步展开并且不断在每一步里加入具体案例和指标比如“在特征工程阶段我会对高基数类别做目标编码但为了防泄漏会在K折内分别计算编码值。”这个方法看似简单但对于现场发挥极有帮助。笔试简答题篇幅有限你不需要把这六步全部写完但可以按这个框架挑和题目最相关的几个环节详细写。面试时如果遇到开放性设计题直接把这套框架当作骨架再往里面填充细节就不会因为紧张而漏掉关键点。我个人在准备第四范式这类建模岗笔试时最深的一个体会是不要追求算法多新多复杂真正拉开差距的是基本功和流程掌控能力。数据质量有没有检查、特征工程有没有考虑到业务含义、评估指标有没有结合场景这些才是阅卷人和面试官真正关注的地方。如果时间有限优先把结构化数据建模的标准流程练熟把常见模型和评估指标的细节吃透比盲目刷题更有性价比。