☰
招商银行信用卡中心数据挖掘笔试复盘:考点与备考策略
2026/11/2 5:43:31 网站建设 项目流程

招商银行信用卡中心2019秋招IT笔试(数据挖掘方向第二批)这场笔试,我印象挺深。银行系的数据挖掘岗笔试和互联网公司的风格差别很大,它不追求你手撕红黑树或者现场推导Transformer,但非常看重基础功底、业务理解,以及对数据处理的细致程度。考完出来我复盘了很久,觉得这套题其实把“银行想要什么样的数据挖掘工程师”表达得非常清楚——既要懂模型,更要懂数据,还得明白信用卡业务里的合规和风险底线。

如果你正在准备银行系的数据挖掘岗位,尤其是信用卡中心这类零售金融核心部门,这篇复盘文应该能给你一个比较完整的参考。我会从笔试结构、核心考点、编程与SQL实战、案例分析思路,再到备考路线和踩坑经验,一层层拆开讲。

1. 笔试整体结构与定位分析

1.1 银行系笔试和互联网公司的核心差异

先说最直观的感受:银行笔试和互联网公司笔试完全是两个物种。互联网公司(尤其是头部的几家)喜欢出算法硬核题,动不动就是动态规划、贪心、图论,大部分人挂在第三题。银行系的笔试,尤其是信用卡中心这种业务导向很强的部门,考察逻辑是“你来了能不能马上干活,并且不出事”。

2019年秋招这场笔试,题型大致可以分为四块:行测类题目、专业基础知识、编程与SQL实操、案例分析。行测类题目(言语理解、数量关系、逻辑推理)是大多数银行笔试的标配,信用卡中心也不例外。这部分没什么好说的,就是公务员考试的行测题,难度中规中矩,关键是练手速。专业基础知识覆盖统计学、机器学习、数据库、数据结构,题目形式是选择题和简答题,重点考察基本概念的掌握程度,不深但面广。

编程和SQL实操是拉开差距的地方。银行非常看重SQL能力,因为信用卡中心的数据分析师和数据挖掘工程师,日常工作大概率是跟几十张表打交道,写脚本提数、做特征、跑模型,SQL用不熟会非常痛苦。案例分析题则是银行笔试的特色,给你一个信用卡业务场景(比如怎么预测客户流失),让你写解决思路。这道题考察的是“业务理解 + 建模思路 + 落地可行性”,很多刷惯了算法题的人会在这里栽跟头。

1.2 各模块分数结构与时间分配的合理预判

这场笔试的题量不小,我记得做的时候时间还是比较紧的。行测题大概是30道左右,专业选择题30道上下,简答题3到4道,SQL/编程题2道,案例分析1道。总时间大概两个小时出头,算下来平均每道题只有两分钟左右,这个节奏其实相当快。

合理的策略是:行测部分快速做,不要在言语理解或数量关系上死磕,遇到不会的先凭第一感觉选一个并标记,回头有时间再想。专业基础选择题是拿分重点,因为考察的都是概念性内容,复习过就能答出来。SQL和编程题需要留足时间,因为不仅要写对,还要考虑边界条件和书写规范。案例分析题放在最后但至少要留出15分钟,哪怕写不完全,也要把框架搭出来。

1.3 这一批次的命题特点与趋势判断

2019年算是银行数字化转型比较热闹的年份,信用卡中心对数据挖掘人才的需求已经从“锦上添花”变成“刚需”。从第二批的题目来看,命题方明显在探索一种平衡:既要考察传统银行业看重的严谨稳重,又要吸纳互联网公司流行的机器学习技术。所以你会看到题目里既有“决策树ID3和C4.5的区别”这种经典问题,也有“如何设计特征来识别套现行为”这种贴近业务的应用题。

另有一个趋势是题目越来越场景化。纯粹问“什么是过拟合”这种题在减少,更多是“用户在短时间内频繁大额交易,应该用什么方法识别异常”这类结合业务的问法。这个变化很关键,它说明银行要的不是只会调包的人,而是能理解数据背后的业务含义的人。

2. 核心考点拆解:从统计学到机器学习

2.1 统计学与概率论:笔试里的基本功

统计学在银行笔试题里的权重比很多人想象中大。信用卡业务和数据挖掘天然离不开统计推断:用户在某个渠道的转化率是否显著提升、不同客群之间的逾期率差异是否显著、模型上线后收益提升的置信度怎么算,这些都是日常要面对的问题。

笔试里常考的统计知识点有几个:一是描述性统计,均值、中位数、方差、标准差这些基本概念,一般送分;二是概率论,尤其是贝叶斯公式,几乎每年必考。贝叶斯公式在信用卡风控里用得极多,比如已知欺诈样本占比很低(比如0.1%),模型预测为欺诈的精确率还是阳性预测值怎么算,这背后就是贝叶斯思想。我做题时遇到一道题,给了一个先验概率、一个似然概率,让算后验概率,就是套公式的事,但很多人对“先验”“后验”的概念不够敏感,容易懵。

还有一类统计学考点是假设检验和置信区间,t检验、卡方检验、p值的含义,以及第一类错误和第二类错误的区别。银行是强监管行业,做决策讲究证据链完整,假设检验这种思维方式是刻在银行数据人骨子里的。你如果之前在互联网公司做增长,可能习惯了“先上线再看数据”,但在银行笔试里,你要表现出对统计显著性的敬畏,这是银行最想看到的职业习惯。

2.2 机器学习算法:概念深度优先于代码实现

机器学习部分,笔试的重点不是让你从零推导某个算法,而是考察算法的原理理解、适用场景、优缺点比较。我在考场上印象比较深的几个点:

第一个是逻辑回归。逻辑回归在信用卡风控领域是绝对的“老大哥”,它可解释性强、训练快、在大量稀疏特征上表现稳定,而且银行监管要求风控模型必须能解释,逻辑回归天然贴合这个需求。笔试会问它和线性回归的区别,损失函数是什么,怎么防止过拟合。有个坑是L1和L2正则化的区别:L1能产生稀疏解,L2会让权重趋向于0但不能等于0,很多人在这个概念上翻车。

第二个是决策树和集成学习。银行笔试里决策树考得比深度学习频繁得多。ID3用信息增益,C4.5用增益率,CART用基尼系数,这些是经典且必考的内容。再往外延伸就是随机森林、GBDT、XGBoost,但银行笔试考到XGBoost时会侧重工程问题,比如它和GBDT在实现上的区别、如何调参避免过拟合。原因也好理解:信用卡业务的特征维度高、噪音大、类别不平衡严重,树模型处理起来比神经网络更可控,也更容易解释。

第三个是聚类和无监督学习。信用卡客群细分是数据挖掘的常见任务,所以K-Means、DBSCAN、层次聚类这些算法也会被考到。重点是K-Means怎么选K,DBSCAN怎么理解密度可达,以及它们的适用场景。还有协同过滤和关联规则,散落在“用户推荐”和“交叉销售”这类应用场景的题目里,但考得不算深。

深度学习在这一批笔试里占比不高,顶多考一些基础概念,比如CNN为什么适合图像、RNN为什么适合序列数据、过拟合的常见解决手段。这和银行实际业务也是匹配的——信用卡中心的数据挖掘岗,日常建模型还是以逻辑回归和树模型为主,深度学习的应用场景相对有限。

2.3 业务场景理解:信用卡数据挖掘的行业特色

银行笔试里最让我觉得“有内味儿”的是业务场景题。它们不直接问“什么是逾期率”,而是给你一个场景,让你从数据挖掘角度提出解决方案。这些场景往往集中在几个方向:

一是客户流失预测和唤醒。信用卡用户很容易沉睡,卡办下来刷几次就不用了,行方关心什么时候该给他发权益刺激一下。

二是反欺诈识别。盗刷、套现、伪卡交易,这些都是银行实打实的损失,数据挖掘要在交易级实时识别风险。

三是额度管理与风险定价。给用户提额还是降额,依据是什么,这和预测违约概率紧密相关。

四是精准营销与交叉销售。用户最适合办什么分期产品,什么权益组合最容易激活他。

之所以花这么多篇幅讲业务场景,是因为银行笔试的不少题目就是把算法题包装在这些场景里。如果你只看算法书不关注业务,很可能连题目说什么都搞不清楚。比如它说“构建一个识别套现团伙的模型”,你要能反应过来这属于无监督异常检测 + 图数据挖掘(团伙检测常涉及关联网络),而不是简单套一个二分类器。

3. 工程能力考察:数据库、数据结构与编程题

3.1 SQL题:银行数据挖掘岗绕不开的重头戏

SQL在银行数据挖掘笔试中的地位极高。可以说,SQL题答得好不好,基本决定了你能不能进入下一轮面试。信用卡中心的数据挖掘工程师,日常要接触的数据表量级很大,动辄千万级甚至亿级,SQL写得好不好直接关系到工作效率。

我记得笔试里SQL题目大概是这种类型:给定两张表,一张是客户信息表(包含客户ID、年龄段、性别、城市、收入等级等),一张是交易流水表(包含客户ID、交易时间、交易金额、交易类型、商户类型等),然后要求计算近三个月内交易次数大于10次且单笔交易金额超过一定阈值的客户数量。这看似简单,但实际上需要你正确使用JOIN、COUNT、GROUP BY、HAVING这几个常用操作,并且注意去重和NULL值处理。

另一个典型题目是计算用户最近一次交易距离今天的天数,这在客户流失预测里是核心特征。写法思路类似:

SELECT a.user_id, DATEDIFF(CURRENT_DATE, MAX(b.trans_date)) AS last_trans_days FROM cust_info a LEFT JOIN trans_record b ON a.user_id = b.user_id GROUP BY a.user_id;

注意这里用LEFT JOIN而不是INNER JOIN,因为有些客户可能没有交易记录,但你仍然想保留他的信息,这时候LEFT JOIN并处理NULL才是正确的打开方式。很多人笔试时没注意这一点,导致结果缺客户,这就是细节分。

另外,窗口函数的考察在近年的银行笔试里越来越常见,2019年那批已经开始涉及。比如让你算每个用户最近三笔交易的平均金额,就需要用ROW_NUMBER()或LAG()来处理。如果你报了银行的数据挖掘岗但还不会窗口函数,建议赶紧补上,这是现代化SQL的标配能力。

3.2 数据结构与算法:常考题型与复习尺度

银行笔试的算法题,难度总体低于互联网公司,但并不意味着完全不考。一般会涉及时空复杂度分析、常见数据结构(数组、链表、栈、队列、哈希表、树)的基本操作,以及一些初级到中级的算法题。

其中链表相关操作考得非常频繁,比如反转链表、合并两个有序链表。这类题在LeetCode上属于easy到medium的难度,但在笔试里主要考察你能不能快速、准确写出来。另一个高频考法是二叉树遍历,前序、中序、后序(递归和非递归)都要能写,因为银行系统里树结构无处不在,比如组织架构、账户层级。

栈和队列的应用也常考,比如用两个栈实现一个队列,或者判断括号是否匹配。哈希表则是处理大量数据问题的常用手段,比如统计词频、查找公共元素。排序算法建议把快排、归并、堆排序的原理和复杂度记牢,能手写最好,因为笔试可能会问“在不使用额外内存的情况下如何找到数组中的中位数”,这种题本质是考察你对排序和堆的理解。

对于银行的算法题,我的建议是:不必刷太多hard题,但easy和medium的经典题要熟练到条件反射。尤其注意细节,比如边界条件、栈溢出风险、返回值的类型转换等。银行笔试的判题平台往往比LeetCode严格,不小心写错一个分号或者变量名就可能整题0分。

3.3 编程语言选型:Python为主,细节决定成败

银行数据挖掘岗笔试通常允许选Python或Java,大多数人会选Python,因为它写起来快、库多、和数据分析的日常贴合。但Python题也有自己的陷阱。

一个是版本问题:Python2还是Python3,print要不要加括号,整除运算的差异,这些看是小事但实际写代码的时候很影响体验。另一个是常用库的导入:如果你要用pandas或numpy,确保导入语句写对,并写清楚用了哪些库,让阅卷人或者判题系统能直接运行。第三个问题是代码风格:银行非常看重代码的可读性和健壮性,变量命名要有意义,函数要简短清晰,好习惯在笔试里也能加分。

如果你是Java选手,请务必熟练掌握HashMap、ArrayList这些常用集合类的API,以及如何处理异常、怎么定义泛型。有些银行笔试对Java代码的编译环境要求严格,如果导入的包不完整,运行时找不到类,问题就大了。

还有一个容易被忽略的点:处理输入输出。在线判题环境下,输入格式有时候很绕,比如一行有多个数字,以逗号分隔;或者第一行是测试用例数N,后面跟着N行数据。写代码前先花30秒把输入格式看清楚,不要急着撸逻辑。我在笔试时就遇到过因为没处理输入读取的换行符,导致循环少读一行的情况,这种错误非常气人。

4. 案例分析题:从业务问题到数据方案

4.1 信用卡业务里最常见的三类案例分析题

案例分析题是银行数据挖掘笔试的压轴题,同时也是最考验综合能力的题。这类题一般给你一个业务问题,要求你用数据挖掘的思路给出解决方案。2019年这批笔试的案例分析题,中心思想基本不离这三类:

第一类:预测类问题。怎么预测客户逾期、怎么预测客户流失、怎么预测客户是否会开通分期。这类问题的核心是定义好目标变量、选好特征、构建模型、做效果评估。

第二类:识别类问题。怎么识别套现、怎么识别盗刷、怎么识别羊毛党。这类问题通常面临着样本不平衡、正样本少、需要实时性、需要可解释性等难点。

第三类:分群类问题。怎么对信用卡客户做细分画像,怎么做差异化经营。这类问题常用聚类和RFM模型(最近消费时间Recency、消费频率Frequency、消费金额Monetary),难点是聚类结果如何转化成业务可落地的策略。

笔试里不会让你直接写代码,而是让你“描述解决方案”,但其实质是考察你是否具备完整的建模思维。你可以用文字把思考过程写出来,包括数据准备、特征工程、算法选型、评估指标、上线流程,逻辑链条越完整,得分越高。

4.2 答题框架:怎么一步步把问题拆明白

我自己用惯了一套案例分析题的答题框架,当模板分享出来,你可以根据自己的经验调整:

第一步,明确业务目标和定义问题。不要上来就谈算法。先说明这个问题的业务价值在哪里,目标变量是什么。比如客户流失预测,目标变量可以定义为“未来三个月内交易笔数为0的客户”。如果是套现识别,目标变量就比较难定义,因为缺少完全准确的标签,这时候就得用规则 + 模型结合的方式。

第二步,阐述数据来源与特征工程。这里要能说出来数据从哪里来(客户基本资料、交易流水、客服交互记录、App行为数据等),以及你会构建哪些特征维度。特征工程是最能体现数据挖掘工程师经验深度的部分,比如:交易频次、交易金额波动、商户类别分布、夜间交易占比、地理位置跳跃速度、设备变更次数等。你能写得越具体,越让阅卷人信服你真的做过这个方向。

第三步,给出模型选型和训练方案。要说明你选择某个算法的理由。比如:“由于信用卡欺诈数据极度不平衡,我首先考虑使用基于树的模型如LightGBM,并用SMOTE或者代价敏感学习处理不平衡问题。” 这种表述既体现你对算法的理解,也体现你对业务特性的把握。

第四步,设计评估方式和上线方案。银行很看重模型上线后的监控和迭代。你要说清楚评估指标用什么(如KS、AUC、Recall@Precision),以及上线后如何配置策略规则、如何注意模型稳定性和监控。

第五步,风险与合规说明。这是银行案例分析的加分项。数据挖掘模型如果涉及个人隐私、歧视性特征(如性别、宗教),会带来合规风险。你在方案里如果能主动提到“对敏感特征做剔除或脱敏处理”“模型决策需要保留审计日志”,效果会好很多。

4.3 一个完整的作答示例:睡眠户激活预测

我来完整过一遍。假设题目是这样的:某信用卡中心发现大量客户办卡之后很少使用,希望你设计一套挖掘方案,找出可能被激活的睡眠户,并针对性营销。

第一步,我先定义目标:睡眠户可以定义为“近90天没有发生任何交易的活卡客户”。为什么是90天?这是业务经验,具体要看数据分布来定,但方案里要说明为什么这样选,不要拍脑袋。目标变量可以定义为“未来30天内是否发生至少一笔交易”,这是一个二分类问题。

第二步,特征工程是让这个案例活起来的关键。我会从几个维度构建特征:用卡行为特征(近30天交易笔数、交易金额、时间间隔、平均每笔金额)、卡片特征(卡级别、发卡渠道、开卡时长)、额度使用特征(当前额度、使用率、临时提额次数)、客户画像特征(年龄、收入等级、职业)、营销响应特征(近6个月是否响应过营销活动)。还可以加一个比较高级的特征:客户最大消费间隔的变化趋势,用来捕捉“用户正在慢慢远离这张卡”的轨迹。

第三步,模型选了逻辑回归和XGBoost做对比。逻辑回归负责提供高解释性基线,XGBoost负责追求更高预测精度。因为是睡眠户激活问题,正负样本可能偏向少数类(真正被激活的人不多),所以加上调整类别权重的策略。

第四步,评估指标不看准确率,而是看提升度和业务收益。比如模型圈定10%的客户,能覆盖70%的未来激活户,这个覆盖率比总体激活率高多少。通过这样的营销ROI预测,来判断模型价值。

这种答题方式,等于给阅卷人展示了一个完整的数据挖掘项目雏形,就算面试官后续追问,你也能从容作答。

5. 备考路线与实战避坑经验

5.1 考前一个月的高效复习节奏

如果你正在准备类似的银行数据挖掘岗位笔试,我建议把复习周期定为一个月,节奏大致如下:

第一周,用来夯实统计学和机器学习基础。把假设检验、贝叶斯、线性回归、逻辑回归、决策树、随机森林、GBDT、K-Means这些核心知识点过一遍,每块都要能说出原理、适用场景、优缺点。不需要会手推全部公式,但损失函数、正则化、核心参数的含义还是要搞清楚。

第二周,集中刷SQL题。每天至少写5道SQL题,覆盖JOIN、子查询、聚合、窗口函数、日期处理等常见考点。推荐在牛客网或者LeetCode的数据库题库里刷题,遇到不会的查资料搞懂,而不是背答案。

第三周,开始做算法题和真题模拟。算法题以LeetCode easy和medium为主,每天3-5道。同时找几套银行历年笔试真题,按照考试时间模拟练习,训练做题节奏。案例分析题也要开始动笔写,不要只看不写,写的过程中你会发现自己的逻辑漏洞。

第四周,查漏补缺和错题复盘。把之前做错的选择题、SQL题、算法题重新过一遍,确保没有漏网之鱼。行测部分每天花20分钟练速度和题感,也注意积累一些银行常识和信用卡行业术语。

5.2 笔试现场的时间分配与做题策略

进了考场,先别急着动笔。用一两分钟把整张卷子浏览一遍,对题型分布和难度有个大概判断,再分配时间。我的建议是:行测部分控制在总时间的25%以内,专业选择题占30%,SQL和编程题占30%,案例分析题占15%。如果选择题做得比预期快,就把多出来的时间留给SQL和编程题,这两块是最容易拉开分数的。

行测遇到不会的题,要果断放弃。数量关系里的一些计算题特别吃时间,算了三分钟没有头绪就蒙一个,别恋战。专业选择题有些题比较偏,比如问某个统计软件的操作细节,这种题靠积累,不会也别慌,先标记,回头再看。

SQL和编程题建议先写思路再看题。先在草稿纸上把表关联逻辑或算法流程画出来,确认没问题再写代码。写代码的时候注意变量名清晰、缩进规范、注释简洁,哪怕判题系统不看你也能加印象分。写完代码后,一定要自己走一遍测试样例,检查边界条件,比如空列表、NULL值、重复记录等。

案例分析题是很多人容易忽略的大头。不要因为时间紧就写两三行草草了事。哪怕答得不够深入,也要把“数据准备→特征工程→模型选择→效果评估→上线监控”这个完整链路写出来,让阅卷人看到你的框架感。银行的案例分析题,很多时候框架对了分数也就拿了大半。

5.3 我踩过的坑和总结出来的教训

准备银行笔试的时候我犯过一个错:花太多时间刷LeetCode的难题,结果基础概念反而没复习到位。银行笔试的选择题问得很细,比如K-Means初始化的几种方法、GBDT的负梯度拟合、Bagging和Boosting的核心区别,这些在我刷LeetCode时根本不会碰到。后来我意识到,银行笔试考的不是“算法天花板”,而是“知识广度 + 工整的工程能力”。

第二个坑是SQL题没注意数据量级。笔试时我写了一个性能很差的查询,在大表上会跑挂。虽然最终答案算出来了,但银行面试官对SQL性能极其敏感,因为真实环境里表都是亿级行,一个坏的JOIN可能导致数据库卡死。如果笔试中遇到类似的场景,可能还要在答案里说明:“如果数据量极大,考虑分区表或加索引,利用增量表处理。”这种工程思维会让你的答案脱颖而出。

第三个坑是没有控制好案例分析题的篇幅。有一场模拟笔试我写得特别多,收不住,结果后面题目时间不够。案例分析题要抓住“结构化”而不是“字数多”,用标题和编号把步骤列清楚,每个部分写3-4行核心内容就行,不用展开到每一步的代码。

最后总结一条面试之外的认知:银行信用卡中心的数据挖掘岗,说到底是“数据 + 业务 + 安全”三点的交集。你在每一道笔试题里展示出来的,不应该仅仅是一个解题机器的能力,而是对金融业务场景的理解和对风险审慎的态度。笔试只是第一关,这种思维方式会延续到面试、甚至到你入职后的日常工作中。

5.4 简历上没写但笔试一定会考的隐藏知识点

有些知识不会直接出现在招聘JD里,但银行笔试特别爱考,需要单独提一提。第一是信用评分卡(Scorecard)的基本逻辑。标准评分卡用逻辑回归系数映射成整数分数,用WOE(Weight of Evidence)编码处理特征,是信用卡风控的经典做法。笔试可能会问WOE和IV(Information Value)的计算和含义,这个概念很多互联网背景的同学完全不熟,建议提前了解。

第二是A/B测试的严谨做法。银行做营销策略或App改版,都要跑严格的A/B测试。笔试可能会问:两组样本的流量怎么分配、怎么判断结果显著、什么时候能提前停止实验。这里要注意组间样本独立和幂度计算的问题,不要简单说“看p值小于0.05就有效”就完事了。

第三是数据脱敏与合规。银行笔试可能会出现一些和《个人信息保护法》、数据安全相关的题目。这类题目不要求你背法条,而是考察你有没有“数据安全”这根弦。比如:在特征构建时,用户身份证号、手机号能用吗?答案是不能直接用原始字段,要脱敏、哈希或替换成加密ID。你如果能在案例题里主动提一句“把涉及个人敏感信息的字段先做脱敏”,马上就能和那些纯粹玩算法的候选人区分开。

第四是模型监控的指标。银行模型上线后不是一劳永逸,要监控PSI(Population Stability Index)来评估特征分布是否偏移,监控KS曲线来评估模型区分度是否衰减。这些术语不一定考,但如果在案例分析的末尾提到“上线后每月监控PSI和KS”,阅卷人会觉得你确实懂银行的模型生命周期管理。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询