
周五面试三个ML基础题全军覆没,周末我靠这门课写出6条免挂军规周五下午那场面试,前30分钟聊大模型微调、RAG架构都对答如流,面试官突然话锋一转:「讲讲你对过拟合的理解,以及你一般怎么判断模型是过拟合还是欠拟合?」我脑子里闪过一堆名词,但组织不出成体系的回答。接着他又问:「混淆矩阵里的精准率和召回率,业务上怎么取舍?F1-score什么时候不是最佳选择?」我彻底卡壳。第三个问题:「特征工程里,高基数类别变量你们团队通常怎么处理?什么时候该做目标编码,什么时候不该?」我支支吾吾说完,面试官没再追问,只是礼貌地结束了面试。走出会议室我才意识到,天天追着最新的生成式AI论文跑,却在机器学习基础上翻了车。当天晚上我打开电脑,翻出以前收藏的亚马逊云科技机器学习课程页面--这门课我之前点进去看过目录,但总觉得内容太「基础」没当回事。此刻再看,它从数据预处理、特征工程一路讲到超参调优和模型评估,每一项都直戳我下午暴露的知识盲区。我决定周末用两天重刷这门课,把之前欠的债补上。后来我在笔记里整理了6条面试「免挂军规」,每一条都跟这门课程里的某个模块直接对应。如果你也准备跳槽或者内部转AI岗,建议你先把下文读完,再对照课程内容自己梳理一遍。为什么我本来轻视ML基础2025年我一直在追大语言模型的热点,LoRA微调、RAG多路召回、Agent工具链,开源项目复现了不少。时间久了,我开始觉得传统机器学习那些「偏差方差权衡」「特征缩放」「ROC曲线」有点过时,面试应该问不到。直到这次被三个基础题直接打回原形。后来我在亚马逊云科技机器学习的课程里看到一个说法才彻底醒悟:「模型规模越来越大,但数据质量和特征工程反而比以往更重要,因为大模型对脏数据的容错方式跟你想象的不一样。」课程的第一章就花了很多篇幅讲机器学习管道的构建,从数据清洗到特征存储,每一步都有对应的实验环境。我照着做了两遍,才发现之前复现论文时拍脑袋做的特征处理,至少有一半方法是错的。重刷课程的第一天:从过拟合到偏差方差权衡我打开亚马逊云科技机器学习的在线学习路径,直接跳到「模型评估与调优」模块。课程里有一个非常直观的实验:用同一个数据集,分别训练一个欠拟合的线性模型、一个刚好拟合的决策树和一个严重过拟合的随机森林。课程提供的 Jupyter Notebook 环境里,我跑了大概8次不同参数的交叉验证,得到的验证集损失曲线差距大到吓人。下面这段是我当时改过的代码,用来对比不同max_depth的过拟合程度:import numpy as np from sklearn.tree import DecisionTreeRegressor from sklearn.model_selection import cross_val_score # 课程数据集:800条训练样例,带噪声的正弦函数 depths [2, 5, 10, 20, None] for d in depths: tree DecisionTreeRegressor(max_depthd, random_state42) scores cross_val_score(tree, X_train, y_train, cv5, scoringneg_mean_squared_error) print(fmax_depth{d}, mean MSE: {-scores.mean():.4f}, std: {scores.std():.4f})输出结果里,max_depth10 时训练集几乎零误差,但验证集 MSE 反而比 max_depth5 高了近 40%。课程讲师在视频里解释了一句:「当验证误差远大于训练误差时,别急着加正则化,先检查特征是否泄露了未来信息。」这句话在过去一周至少救了我两次。学完这一模块,我重新理解了过拟合:它不是简单的「模型太复杂」,而是模型从噪声中学到了假规律。亚马逊云科技机器学习课程里给出的三条判别标准(训练/验证损失差异、学习曲线是否收敛、特征重要性分布)成了我后来调参的标准动作。混淆矩阵不是背公式就能搞定的面试里那道精准率vs召回率的问题,本质上考的是对业务代价的理解。亚马逊云科技机器学习课程里有一个专门讲混淆矩阵和代价敏感学习的章节,用的案例是银行信用卡欺诈检测。课程实验里设计了两组分类器:一组最大化准确率,另一组最大化召回率。我跑完下面的分类报告,才真正体会到数字背后的业务含义:from sklearn.metrics import classification_report # 课程提供的欺诈检测数据集:正样本仅1.2% # 模型A:追求整体准确率 print(Model A (high accuracy):) print(classification_report(y_test, y_pred_a, target_names[非欺诈, 欺诈])) # 模型B:提高召回,但精准率下降 print(Model B (high recall):) print(classification_report(y_test, y_pred_b, target_names[非欺诈, 欺诈]))模型B的召回率从0.64提升到0.89,但精准率从0.78跌到0.33。课程里算了一笔账:如果业务方每拦截一笔可疑交易要付出5元人工审核成本,而漏掉一笔欺诈损失是200元,那么模型B虽然精准率低,总代价反而比模型A少了37%。这个对比让我彻底抛掉了「F1越高越好」的惯性思维。现在如果有人再问我相似的问题,我会直接讲这个案例。而且机器学习基础课程里不止有混淆矩阵,还讲了ROC曲线下面积的统计含义、PR曲线在不平衡数据下的优势,以及如何用阈值移动在精准率和召回率之间做 trade-off。这些知识在你真正设计模型评估方案时,远比背公式有用。特征工程:从手动乱搞到系统方法翻车面试里第三题关于高基数类别变量的处理,根源是我从来没有系统地学过特征工程。之前在项目里遇到类别变量,我一律用独热编码,几百个类别就爆内存了。亚马逊云科技机器学习课程里有整整一个专项模块讲数据预处理和特征构造,包括: - 类别变量的目标编码、计数编码和留一编码,以及各自的适用场景和过拟合风险 - 数值变量的分桶、对数变换和交互特征 - 缺失值处理的均值填充、模型预测填充和多重插补三种方案的对比下面这段是我学完机器学习管道章节后写的预处理流水线,用来处理混合类型的数据集,并且加入了防止目标编码泄露的 K-fold 技巧:from sklearn.pipeline import Pipeline from sklearn.compose import ColumnTransformer from category_encoders import TargetEncoder from sklearn.impute import SimpleImputer from sklearn.preprocessing import StandardScaler # 按照课程建议:目标编码必须配合交叉验证,防止数据泄露 preprocessor ColumnTransformer([ (num, Pipeline([ (imputer, SimpleImputer(strategymedian)), (scaler, StandardScaler()) ]), [age, income, tenure]), (cat, TargetEncoder(handle_missingreturn_nan, smoothing0.3), [postal_code, occupation]) ], remainderdrop) # 完整管道:预处理 模型 from sklearn.linear_model import LogisticRegression model_pipe Pipeline([ (preprocess, preprocessor), (clf, LogisticRegression(max_iter1000)) ])这段代码跑完后,我的特征工程思路从「拍脑袋试」变成了「按课程框架走一遍」。尤其是加入特征存储概念后,我意识到之前把 CSV 文件传来传去的做法,在多人协作和模型上线时注定会出事故。课程里对照AWS 基础知识讲了线上/线下特征一致性的要求,虽然我暂时还没在生产环境用上 Feature Store,但至少知道了线上推理时特征加工不能跟训练脚本脱节。补完课后我总结的6条面试免挂军规周末两天,我把亚马逊云科技机器学习课程里高密度的知识点,结合面试踩过的坑,整理成6条原则。不保证你能拿offer,但至少不会在基础知识上被问倒:先把偏差-方差分解搞懂,再碰任何模型调参。课程里用一个交互图表直观展示了模型复杂度与验证误差的关系,建议至少手动调三次超参调优循环,亲自体会一下验证曲线触底的位置。永远先做数据探索,而不是直接套模型。课程第一章花了近1小时讲数据可视化与统计摘要,我当时觉得慢,后来发现80%的线上故障都能在特征分布里提前发现。混淆矩阵的代价矩阵,要比模型准确率更早上报给业务方。课程里的欺诈检测案例教会我,没有代价的指标等于没有指标。高基数类别变量,默认方案不是独热编码。课程中对比了5种编码方法在不同基数下的内存占用量和AUC变化,建议把那张对比表截图存下来。特征工程比模型选型更重要,但特征工程需要方法论支撑。机器学习入门阶段最忌讳的就是到处复制代码,我学完课程后才开始用机器学习管道的思路去组织特征加工。大模型时代基础反而更值钱,因为能用好生成式AI的人,往往是能把问题转换成经典机器学习范式的工程师。这也是我推荐AWS机器学习课程的一个原因:它不追逐热点,但把该打牢的桩都打好了。从「追新焦虑」到「基础自信」周一早上我又投了几家简历,这次在项目经历一栏多写了一句话:「曾通过AWS在线课程系统补完机器学习基础,能独立完成从特征工程到模型评估的全流程」。这不是夸大,我确实在学完亚马逊云科技机器学习之后,自己动手复现了一个客户流失预测的完整管道,并输出了特征重要性分析和模型可解释性报告。后来第二家公司的面试里,面试官看到这条描述,直接让我讲一下机器学习管道的设计经验。我从数据漂移监控讲到模型再训练策略,中间引用了课程里提到的一个具体数值:「当线上特征分布与训练时分布差异超过0.15(PSI值),必须触发告警并重新评估特征有效性。」面试官点了头。如果你现在也面临跟我类似的处境--每天被各种新模型、新框架刷屏,却隐约觉得脚下踩不实--我建议你花一个周末,先去亚马逊云科技机器学习课程里把目录过一遍。你大概率会发现,你以为自己会的东西,其实有一半需要重新理解。具体建议:- 用半天时间快速浏览课程第一章和第二章,搞清楚机器学习基础的完整知识树,别跳过可视化诊断部分。 - 实验环境直接用课程里配好的 Jupyter Notebook,别自己从头搭,那会让你在安装库上浪费掉所有热情。 - 挑选三个你自认为熟悉但没亲手推导过的知识点(例如交叉验证的偏差来源、AUC的概率解释、类别编码的平滑方法),在课程里找到对应实验,跑一遍并修改参数,直到你能对同事讲清楚。 - 把课程中关于特征工程的几种编码对比表、模型选择路线图和代价矩阵计算方法整理成速查笔记,面试前半小时翻一遍。 - 学完不要就此打住,可以继续把深度学习入门课程里关于神经网络基础的部分也学了,这样你在面试时能对比传统ML和DL的决策边界,展现出更完整的知识体系。最后再说一句:别等到面试前临阵磨枪,也别等到线上事故发生了才想起补基础。亚马逊云科技机器学习课程里那些经过验证的最佳实践,早学会早受益。