尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

唯品会数据挖掘与机器学习笔试题全解析:从算法原理到业务落地

唯品会数据挖掘与机器学习笔试题全解析:从算法原理到业务落地 当初刷唯品会这套笔试题时我悟到的东西每年秋招季总有一批人会问“数据挖掘和机器学习方向笔试到底考什么”。如果你拿的是互联网大厂或头部电商的校招卷题型通常绕不开那么几类。我印象比较深的是唯品会2018校招的数据挖掘、机器学习笔试题A卷整体难度不算变态但覆盖面很广很能反映一家电商公司对算法岗候选人的底层要求。今天这篇文章就把这套题的考察逻辑、关键知识点、解题思路和我踩过的坑完整拆一遍给正在准备校招或者想查漏补缺的朋友做个参考。这套题适合谁看正在准备数据挖掘/机器学习方向校招笔试的同学、刚入门想建立知识体系的学习者、以及准备转行算法岗的工程师。它考察的范围基本可以代表电商类互联网公司对算法岗的通用要求刷完并弄懂背后的原理比盲目刷一百道LeetCode可能更有用。核心关键词就两个数据挖掘、机器学习但真正考的是你能否把二者串起来用工程化的思路解决业务问题。1. 笔试题整体拆解从一个评委视角看考察逻辑1.1 一张卷子背后的能力模型先说一个很多人容易忽略的点笔试不只是考察你会不会某个算法而是在模拟你入职后接到一个任务时的完整思考链。唯品会这套A卷的题目设计基本可以拆成四个能力维度第一理论基础。主要覆盖机器学习经典算法的原理、假设、优缺点比如朴素贝叶斯、决策树、SVM、K-Means、逻辑回归以及模型评估方法。这类题考察的是你大学期间有没有认真啃过教材能不能把算法公式背后的直觉说清楚。第二数学功底。数据挖掘和机器学习绕不开概率统计、线性代数、微积分。卷子里会有不少计算题比如概率计算、信息熵计算、期望方差、相似度计算等。这类题目不是让你背公式而是看你能不能在实际场景中用起来。第三数据敏感度。包括特征处理、数据清洗、异常值处理、缺失值填补等方式以及如何判断一个特征有没有用。电商场景里“用户特征”“商品特征”“行为特征”经常被拿出来当题干考察你对业务数据形态的理解。第四模型应用与工程权衡。题目比如“如何选择A/B测试的样本量”“如何解决正负样本不平衡”“模型上线后效果不好怎么办”考察的是你有没有真实的项目经验遇到问题时能否给出系统性解决方案。这套题的命题风格很典型不考深度学习大题也不考过于前沿的东西而是把机器学习经典知识、数据挖掘流程和电商业务场景紧密结合。换句话说它要的不是一个“背题机器”而是一个能落地解决问题的人。1.2 A卷的模块分布与分值倾向虽然具体题目细节我记不全了但整体结构大致如下选择题约占30%主要考察概念辨析和基础计算简答题约占30%需要你写出某个算法的推导过程或解释某个概念分析计算题约占25%给你一个小数据集或一个业务场景需要手动计算或设计方案综合设计题约占15%通常是一个开放性问题比如“如何构建一个商品推荐模型”或“如何提升老用户复购率”。从分值倾向来看机器学习经典算法是绝对核心特征工程和数据预处理是隐藏的第二主题业务场景理解是拉开差距的关键。如果你对这三块没有系统掌握裸考基本会翻车。补充一个我后来才意识到的事情这类题目不要求你写出公司内部才用的黑科技而是在考基本功。因为校招候选人没有太多行业经验基本功是否扎实很大程度上决定了他入职后能否快速成长。所以如果你正在备考重心应该放在经典的算法原理、模型评估、特征工程和数据预处理上深度学习那些花哨的东西反而可以往后放。2. 机器学习高频考点算法原理与模型评估2.1 朴素贝叶斯从贝叶斯公式到实战坑点朴素贝叶斯几乎是笔试题中的“必考题”在唯品会A卷里也出现过。考察方式通常有两种一种是直接给一组数据让你计算后验概率判断某个样本属于哪个类别另一种是问“为什么叫朴素贝叶斯朴素在哪里”先说贝叶斯公式本身P(类别|特征) P(特征|类别) × P(类别) / P(特征)。朴素贝叶斯的“朴素”体现在一个强假设上在给定类别的情况下各个特征之间相互独立。正是这个独立性假设让计算变得异常简单因为我们可以把联合概率P(特征1, 特征2, ..., 特征n | 类别)拆成P(特征1|类别) × P(特征2|类别) × ... × P(特征n|类别)的乘积。但在真实业务里特征之间往往有关联比如“用户点击某个商品”和“用户购买了某个商品”这两个特征并不独立。于是就有了一个经典笔试陷阱题目可能故意给你一个有相关性特征的数据集然后问“用朴素贝叶斯建模会有什么问题”答案就是“因为违背了特征独立假设导致概率估计偏差模型效果下降”。实战中还有两个高频延伸考点拉普拉斯平滑Laplace Smoothing和概率下溢问题。拉普拉斯平滑解决的是“某个类别下没出现某个特征概率为0”的情况通常做法是分子加1、分母加特征取值个数。概率下溢则是当特征很多时连乘结果极小会超出浮点数范围通常改用对数概率规避。我在实际项目里遇到过一个问题朴素贝叶斯对输入特征的类型非常敏感。如果特征里混入了连续型变量直接套概率估计结果往往很差需要先做离散化比如分桶。所以笔试里如果给出混合类型特征答案一定要强调“离散化是有必要的”。2.2 决策树与信息增益信息熵计算题要拿满分决策树相关题目在A卷里也占了不小比例最常见的是计算信息熵、信息增益然后让你选择最优划分特征。基本公式是信息熵H -Σ p_i log2(p_i)信息增益 划分前的熵 - 划分后各子节点的加权熵。举个典型的笔试题型假设有一个数据集目标变量是“是否购买”10个样本中有6个购买、4个未购买。那么信息熵H -6/10 log2(6/10) - 4/10 log2(4/10)算出来约0.971。然后题目给你几个候选特征比如“性别”和“是否点击过广告”要求计算每个特征划分后的信息增益选择增益最大的作为根节点。这类题目的关键点有两个第一对数计算一定要细心笔算时容易出错第二要注意“加权熵”中的权重是子节点的样本占比。我见过不少人直接把子节点的熵求平均这显然是错的。延伸考点还包括信息增益率、基尼指数和CART树。ID3用信息增益、C4.5用信息增益率、CART用基尼系数。笔试里常问“信息增益有什么缺点”答案是“偏向取值多的特征”。因为一个特征取值越多划分后子节点越纯信息增益越大但这个特征可能没有实际预测能力。所以面试时答出这个点能体现你不仅会算还懂算法背后的设计逻辑。说到实际项目我个人的体会是决策树本身很少作为最终模型单独部署通常用于特征重要性分析和集成学习的基学习器。但如果你不理解单棵树的划分逻辑就无法真正理解随机森林和XGBoost的调参方向所以这类题还是要认真掌握。2.3 过拟合、偏差与方差高频简答题的答题框架过拟合、偏差和方差几乎是每一套数据挖掘笔试题的“灵魂题”唯品会A卷里也设计了相关的简答题。这类题考察的是你对模型泛化能力的理解深度而不是纯粹的记忆。答题框架可以参考这个结构先说定义再说如何检测最后说解决办法。过拟合指的是模型在训练集上表现很好但在测试集或新数据上表现差本质原因是模型过于复杂把训练数据中的噪声也学习进去了。偏差Bias度量的是模型预测值的期望与真实值的差异方差Variance度量的是模型在不同训练集上预测值的波动。偏差和方差是一对天然的矛盾也就是所谓偏差-方差权衡Bias-Variance Tradeoff。模型过于简单时偏差高、方差低典型表现是欠拟合模型过于复杂时偏差低、方差高典型表现是过拟合。所以我们需要在二者之间找一个平衡点方法包括但不限于增加训练数据、降低模型复杂度、加入正则化、交叉验证、集成学习等。简答题如果想拿高分我建议你加上一个实际业务例子。比如你在做一个商品点击率预测模型特征维度有2000个样本量只有2万这时候模型很容易过拟合。解决思路是先用特征选择或PCA降维再使用带L2正则化的逻辑回归最后用交叉验证评估效果。这种回答比干巴巴背概念要生动得多也更容易让阅卷人觉得你有真实经验。3. 数据挖掘核心环节从预处理到特征工程3.1 数据清洗与缺失值处理别一上来就fillna数据挖掘知识点里数据预处理是容易被忽视但实际工作里最关键的部分。唯品会A卷里也有相关的应用类题目比如给你一个包含缺失值、异常值、重复值的数据集问你怎么处理。很多人一想到缺失值就直接用均值或中位数填充但这类题想考察的远不止“用什么值填充”。一个完整的答题思路应该是第一步判断缺失值产生的原因。是随机缺失还是非随机缺失例如用户年龄字段缺失可能是因为注册时没有填写这往往属于随机缺失但如果是因为某个APP版本崩溃导致部分用户行为日志丢失可能属于非随机缺失处理方式完全不同。第二步根据缺失比例决定策略。缺失比例低于5%可以直接删除对应样本比例在5%-20%可以用均值、中位数、众数填充或用模型预测填充超过20%甚至50%就要考虑这个字段是否还有建模价值或者将“是否缺失”本身作为一维特征。第三步分类特征和数值特征要区别对待。数值特征可用均值/中位数/插值法分类特征用众数或单独设一个“未知”类别。异常值处理则可以通过箱线图或3σ原则识别但要格外注意不要把真实的业务极端值当成异常值删掉。举个例子电商场景里“单笔订单金额”可能出现几万元的大单从统计角度看是离群点但从业务角度看是正常的高价值用户行为直接删掉反而会损害模型。这些细节我在面试候选人时很看重因为真实数据永远是脏的。笔试能答出这个层次说明你明白“数据挖掘是数据先行”这个道理而不是只会调包。3.2 特征工程为什么“好的特征比好模型更值钱”数据挖掘笔试里特征工程考点一般包括特征衍生、特征选择、特征变换以及特征归一化和标准化。A卷可能会让你针对某个电商业务比如用户购买预测设计特征方案或者问“L1和L2正则化为什么能防止过拟合二者有什么区别”。先说特征归一化与标准化这是最基础的考点。归一化Min-Max Scaling把特征缩放到[0,1]区间标准化Standardization把特征转化为均值为0、方差为1的分布。什么时候用哪个对距离类模型KNN、SVM、K-Means来说特征尺度不一致会导致距离计算被大数值特征主导所以必须先做缩放而对树模型缩放不影响分裂点的选择可以不做。特征选择常用的思路有三大类过滤法Filter如方差筛选、卡方检验、相关系数包裹法Wrapper如递归特征消除嵌入法Embedded如L1正则化、树模型的特征重要性。笔试常问“为什么L1正则化可以做特征选择而L2不行”因为L1正则化会将部分特征的权重压缩到0而L2正则化只会把权重压缩到接近0不会真正变成0。所以L1天然具备稀疏性适用于特征选择L2更适用于处理多重共线性和防止过拟合。特征衍生这部分比较考经验比如给定一个用户行为表你能不能想到构建“用户最近7天内购买次数”“用户平均购买间隔”“用户最后一次购买距今时长”等统计特征。笔试如果出开放题让你设计特征尽量按“用户类特征、商品类特征、用户-商品交互类特征、时间窗口类特征”四个维度去展开思路清晰、覆盖面广得分就会高。3.3 数据平衡与采样正负样本不平衡的经典解法电商场景里数据不平衡问题特别常见比如点击率预测中点击样本通常只占极小比例异常交易检测中正样本极少。笔试里通常会问“正负样本比例接近1:99如何建模”答题需要分层给出方案。数据层面下采样随机删除多数类样本、上采样SMOTE人工合成少数类样本、或者两者结合。算法层面使用代价敏感学习给少数类样本更高的误分类代价或者在损失函数中调整类别权重比如逻辑回归的class_weight参数。评估层面不能盲目用准确率因为全部预测为负样本也能达到99%的准确率应该使用Precision、Recall、F1-Score、AUC等指标。需要注意的坑是上采样时要在训练集上进行不能在交叉验证之前做全局采样否则会造成验证集信息泄漏评估结果虚高。我在实际项目中吃过这个亏后来都是用Pipeline把采样步骤封装进交叉验证流程内。另外一个相关考点是A/B测试和因果推断。题目可能问“如何验证一个推荐策略真的提升了用户购买率”那就要涉及分流、显著性检验、置信区间等概念。答题框架是先做样本量计算目标是让实验有足够的统计功效再随机分流保证对照组和实验组特征分布一致然后跑一段时间用t检验或置信区间判断差异是否显著最后还要考虑“新奇效应”和“时间衰减”适当延长实验周期。4. 聚类与降维无监督学习的常客考点4.1 K-Means初始化选择和K值确定聚类是数据挖掘笔试里的固定栏目其中K-Means考察频率最高。A卷里可能有关于K-Means的计算分析题也可能有简答题问“K-Means的优缺点和适用场景”。K-Means的核心思路是随机选K个中心点迭代执行“分配样本到最近中心”和“更新中心为本簇均值”两个步骤直到中心点不再变化。题目可能让你手算简单二维点的聚类过程这需要掌握欧氏距离公式还要注意迭代次数有限。笔试常考的两个衍生问题是第一K值如何确定经验做法是使用肘部法则Elbow Method绘制不同K值下的SSE簇内误差平方和曲线选择拐点处的K值也可以结合轮廓系数Silhouette Coefficient评估聚类效果。第二初始中心点怎么选随机初始化容易陷入局部最优所以工程上常用K-Means算法让初始中心点之间尽可能远。K-Means的局限也要能说出来对初始值敏感、对离群点敏感、只能发现球形簇、需要预先指定K值、对高维数据效果差。如果遇到几万个特征的数据集建议先做PCA降维再聚类。这里分享一个笔试做题技巧如果题干给了散点图或者坐标点要求判断K-Means聚类的最终结果你可以先手动观察点的大致分布通常最终簇中心会落在密集区域。别一上来就硬算先用直觉判断方向再算会更稳。4.2 PCA降维主成分怎么理解PCA主成分分析在电商数据的用户画像、商品嵌入等场景中非常常用笔试中多半会出一道概念题或计算题比如“为什么PCA之前需要标准化”“主成分的方差贡献率代表了什么”PCA的核心目标是寻找一组新的正交坐标系使得数据在这些方向上的方差最大。第一主成分是方差最大的方向第二主成分是与第一主成分正交且方差次大的方向以此类推。降维就是只保留前K个主成分丢弃方差贡献较小的维度从而抓住数据的主要结构。计算步骤要记住先对数据做标准化然后计算协方差矩阵再求特征值和特征向量按特征值从大到小排列取前K个特征向量构成投影矩阵。笔试常问的坑点是PCA之前为什么要标准化因为如果没有标准化量纲大的特征会主导方差计算主成分会被“体重”这种数值大的特征带偏导致降维结果失真。另外PCA是无监督方法它不考虑标签信息所以在分类场景下PCA可能会丢掉对分类很重要的维度这时可以试试有监督的LDA线性判别分析。在唯品会这类电商场景里PCA的典型应用包括对用户行为特征进行降维后再聚类、减少特征间的相关性、加速模型训练。但降维之后模型可解释性会下降这是工程上需要权衡的地方。5. 综合设计题电商场景下的算法方案设计5.1 “设计一个商品推荐模型”的答题框架综合设计题往往是最能拉开分差的题型。A卷里很可能有类似“如何在电商平台设计一个个性化推荐系统”的开放题这类题没有标准答案但阅卷人能一眼看出你的系统化能力。我的建议是用“数据-特征-模型-评估-上线”五段式来答。数据层面需要用户历史行为浏览、点击、收藏、加购、购买、用户属性性别、年龄、地域、商品属性类目、价格、品牌、上下文特征时间、渠道、天气。特征层面分为用户侧特征用户偏好、用户活跃度、商品侧特征商品热度、商品价格带、交互特征用户-商品相似度、最近浏览间隔。模型层面召回用多路召回协同过滤、热门商品、最近浏览排序用LR、GBDT或FM/FFM必要时做重排。评估层面离线AUC、GAUCGroup AUC在线A/B测试关注点击率、转化率和客单价。上线层面需要考虑模型更新频率和冷启动问题。还要注意推荐系统特有的陷阱数据穿越。训练模型时如果用了未来的数据比如用用户今天的行为预测今天的点击率但特征里包含了今天中午的浏览记录就会造成特征泄漏离线评估虚高。笔试能主动提到这一点會让阅卷人眼前一亮。5.2 电商复购预测从业务理解到模型落地另一个常见的综合题是“如何提升用户复购率”或者“如何预测用户未来30天是否再次购买”。这类题目更偏业务导向考察的是你能否把数据挖掘的流程应用到具体业务目标上。我的答题思路分四步。第一步定义预测目标时间窗口设为30天样本为用户-时间窗口交叉正样本是“未来30天内有购买行为的用户”负样本是“没有购买的用户”。第二步特征设计用户历史购买频次、购买品类分布、最近一次购买距今时长、用户活跃天数、是否使用优惠券、用户生命周期阶段。第三步模型选择样本量几十万级别时用XGBoost或LightGBM样本量较小可以用带正则化的逻辑回归。第四步业务落地预测高复购概率用户后定向发送优惠券或推送个性化商品同时注意成本控制比如优惠券预算有限可以用模型预测的购买概率排序取Top N给予优惠。这里要强调一点综合题中“业务理解”和“技术方案”的比例大概是4:6。也就是说不只要说用什么模型更要清楚地定义问题是什么、目标是什么、数据从哪里来、成功指标怎么定。数据挖掘的核心能力不是“会用模型”而是“用模型解决一个具体业务问题”这一点在笔试中体现得淋漓尽致。6. 常见错误与笔试题型的实战避坑6.1 我在这套题上踩过的几个典型坑第一次做唯品会这套A卷时我在几个地方栽了跟头事后复盘发现都是典型的思维惯性错误。第一个坑算信息增益时忘记加权。计算子节点熵的时候我本能地求了平均完全忽略了每个子节点的样本量权重。一道10分的计算题只能拿到一半分非常可惜。后来我总结了一个口诀“熵值按比例加权占比就是权重。”第二个坑K-Means和KNN混淆。这两个算法名字里都有“K”但一个是聚类一个是分类。K-Means是迭代优化算法K是簇数KNN是基于实例的懒惰学习K是邻居数。笔试里有一道选择题专门考这一点我当时差点选错。第三个坑提到“处理缺失值”时只写了“用均值填充”。后来我发现这类题需要展示“分析-决策-处理-验证”的完整链路而不是一个操作。如果你只写一个方法阅卷人会默认你没有真正处理过脏数据。第四个坑模型评估只答准确率。业务场景下正负样本不平衡时准确率会骗人。这道题我后来意识到应该直接说“用AUC和F1-Score”并且补充“准确率不适用是因为样本不均衡时高准确率可能有误导”。6.2 备考建议与刷题方法从“背答案”到“理解原理”最后说点备考方法论。如果你现在时间有限我建议按这个优先级来第一优先级把机器学习十大经典算法线性回归、逻辑回归、决策树、随机森林、SVM、朴素贝叶斯、KNN、K-Means、PCA、AdaBoost的公式和核心思想过一遍第二优先级掌握模型评估和交叉验证的方法第三优先级刷数据清洗、特征工程和数据不平衡处理的题目第四优先级准备2-3个完整的项目经历并练习如何用8分钟讲清楚。我的一个心得体会是不要死记硬背答案而是真正推导一遍公式。比如信息熵公式、朴素贝叶斯公式、PCA的特征值推导哪怕你未来工作用不到但推导一遍后你会发现题目的考察逻辑突然通了。而且在笔试现场如果你能快速推导而不是回忆答案心态会稳很多。另外可以找近几年的其他公司笔试题交叉练习比如头条、美团、腾讯的算法岗笔试题。很多知识点是反复出现的多练习能提升题感和答题速度。笔试通常时间紧张建议平时练习时给自己计时模拟真实考试环境。最后的几个小经验做这套题带给我的最大收获不是记住了多少知识点而是明白了数据挖掘笔试考察的本质它想看到的是一个能理解业务、能处理数据、能选择模型、能评估结果、能落地方案的完整闭环。单纯会调库或者会背概念过不了这个坎。如果你准备参加类似校招建议把每个知识点都联系到一个实际场景去理解。比如逻辑回归不只是sigmoid函数公式更是广告点击率预估的经典baseline决策树不只算信息增益更是推荐系统排序模型中GBDT的基学习器。这样去复习你答题时就能自然地带出场景感而不是干巴巴地背概念。这套题刷完后的一个隐藏收获是它基本就是一套电商数据挖掘岗位的微缩版入职培训大纲。你把它吃透基本上就具备了一个初级算法工程师对数据与模型的认知框架。希望这篇长文能对你的备考和成长有所帮助也欢迎在实践中继续验证这些思路。
返回列表