21校招记录——金融保险行业(数据算法/大数据)
一、泰康保险(offer)
岗位:大数据/数据算法岗
(一)一面40min+(一对一单面)
- 深挖项目和比赛(数据挖掘类比赛):数据预处理(缺失值填充、异常值检测、标签等等),特征工程(统计特征、滑窗特征、差分特征生成方式等),模型优化(网格搜索法,参数调整方式),模型融合(加权、stacking融合)。
- 回归类的问题如何解决——调用不同的函数,例如xgb的XGBClassifier用于分类,XGBRegressor用于回归。
- bagging和boosting区别(出现频率极高!!)
- 样本选择:Bagging是随机有放回的取样,Boosting的每一轮训练的样本是固定的。
- 样本权重:Bagging为均匀采样,权重相同;Boosting的权重由错误率决定,错误率越大的样本权重会变大。
- 预测函数:Bagging所以的预测函数权值相同,Boosting中误差越小的预测函数其权值越大。
- 并行计算:Bagging的各个预测函数可以并行生成,取均值作为结果;Boosting的各个预测函数必须按照顺序迭代生成.
- xgboost原理:介绍GBDT原理(梯度提升决策树)
- 梯度:以损失函数的负梯度作为残差进行拟合。
- 提升:根据每轮的预测结果不断调整权值,迭代提升,最后生成一个强学习器。
- 决策树:基模型为树模型。
- 交叉验证的原理:将训练集分成N份,循环选择其中的N-1份作为训练集,另一份为验证集,进行学习预测。最终N次结果取平均,得到最终的预测结果。充分利用数据集,防止过拟合。
- 过拟合如何处理:交叉验证、增加训练集、删除冗余特征。
- xgboost关注哪些参数:学习率learning_rate、最大深度max_depth、选择特征的比例colsample_bytree(防止过拟合)
- stacking融合的过程:首先用两个模型预测出来结果,将这两个结果作为特征重新输入到模型中,二次预测。
(二)二面1h(一对一单面)
- 分类算法的评价指标:
- AUC:ROC曲线下面积,ROC曲线纵坐标为真阳性率TP,横坐标为假阳性率FP
- F1-score
- kappa
- 网格搜索法调参有哪些:学习率、特征选择比例、数据选择比例、最大深度等等。
- 树模型中缺失值如何处理(出现频率极高!!):
- 以lgb和xgb为例,对缺失值不敏感,可不必处理。
- 如果处理的话:labelencoder编码、众数均值填充、根据业务逻辑填充等等。
- 字符类型数据输入模型前如何处理
- labelencoder编码、one-hot编码
- NLP思想:word2vec、TF-IDF
- 逻辑回归的激活函数:sigmoid、tanh等
- 编程题:类似于一个one-hot编码的问题,给定一系列字符串,分别计算每个首字母出现的次数,并映射成为字典的形式。(注意:这是一个实际的业务场景,不难但对于字典dict要熟悉掌握,这可能是平时会忽略的)
- 给一组数据,从读取到预测全流程执行一遍:这道题由于我都是用的“祖传代码”,要么找网上开源的例子拿过来用,所以只进行了pandas读取和数据处理,后面跑模型就直接打开我CSDN开源分享的一篇进行解释😅
(三)待遇
※※ 17.7W==12K*12(月薪)+3.3W(年终),户口说研究生往年都解决。(打电话的时候HR自己都说:我们薪资没有什么竞争力🤣🤣)
(四)总结
- 对于数据算法、数据挖掘的一些基本概念和原理考察的比较细致。
- 一些机器学习算法推导,函数思想还是不太了解,只会工程上的应用。后面有机会还要读一下西瓜书。
- 自己总结一下,将来回顾起来也比较方便hhh
二、南方基金
岗位:信息技术部-研发工程师
由于是线下宣讲会的面试,所以了解到比较多的信息。
(一)企业相关信息
- 企业性质:国企,头部基金公司。
- 待遇:宣讲会上HR说年薪40-50(没想到这么香!),闷声发大财😂
- 加班:不提倡加班,也没有行研加班那么猛。
- 发展前景:科技岗会有一些瓶颈吧,在基金公司科技序列天花板可能就是信息科技部的经理,竞争也很激烈。最后如果想突破更进一步的话,可能要转金融行研方向。
- hc相关:近两年科技岗扩招,21届30人,22届招80人,其他金融岗位都是个位数,相比之下还是很多的。不过我感觉来我们这线下宣讲,更多的是吸引22届的,21届可能已经招的差不多了。
(二)面试
- 没有自我介绍(可能看我不是科班的吧),提了一句中行的实习经历(面试官是鹅厂跳过来的,比较看重互联网大厂实习经历)。
- 直奔主题:hashmap如何实现?--直接蒙了,通信菜鸡没怎么学过数据结构,直接跟面试官说了,也就没问这些(感觉基本凉了)。
- 挖了挖项目、比赛,算法的实现过程。
- dataframe一年12月的交易流水数据,如何求出每个月的交易流水的均值--pandas包的groupby分类汇总,on=‘month’。
(三)总结
- 结果:不出意外的凉了,其实他们也是招python数据挖掘岗的,不过正好碰到的面试官是做后端开发的吧,也没办法。
- 面试官关注大厂实习经历,注重基础知识考查(数据结构、计算机组成原理、计算机网络等等)。
- 证券/基金公司逐渐在走金融科技的路线,所以这对于信科方向的同学是个优势,把握机会,有可能在金融圈能拿到比互联网更高的薪水(目前还不是特别卷)。
三、中国人寿研发中心(秋招记录)
岗位:软件开发与创新岗-大数据应用方向(秋招)
(一)一笔70min
行测(图形推理、言语理解等)+性格测试
(二)一面10min以内(更偏向于HR面)
1.十进制转R进制(2~16)
def f(a, y): x=abs(a) #注意负数 if y < 10: z = [] while x != 0: z.append(x % y) x = x // y res = z[::-1] else: k = [] z = [] while x != 0: z.append(x % y) x = x // y for i in range(len(z)): if z[i] >= 10: z[i] = z[i] - 10 + ord('A') elif z[i] <= 9 and z[i] >= 0: z[i] = z[i] + ord('0') for i in range(len(z)): k.append(chr(z[i])) res = k[::-1] return res #主程序部分 a=23 b=12 res=f(a,b) x=[str(i) for i in res] #注意转成str类型 r=''.join(x) if a>=0: print(r) else: re='-'+r print(re)2.取石子游戏——斐波那契数列
while True: try: n=int(input()) if n==0: break else: l=[[0] for i in range(50)] l[0]=l[1]=0 for i in range(2,50): l[i]=l[i-1]+l[i-2] while(n): flag=0 for i in range(50): if(l[i]===n): flag=1 if flag==1: print('Second win') else: print('First win') except: break3.给定两个单词 word1 和 word2,计算出将 word1 转换成 word2 所使用的最少操作数(LeetCode72)
动态规划求解,这道题属于困难水平,建议看看题解。
(四)总结
- 人寿研发的流程比较多:2次笔试+2次面试,我没有收到终面,也就是最后的技术面试。问了HR给的理由也很奇怪,笔试未通过,命名3道题全部AC……挂的很迷,这波操作不太懂(另一个同学同样全AC给的理由也是这样,严重怀疑是不是在敷衍😒)
- 公司相关:待遇20出头,户口排队(据说名额比较少,解决户口能力欠佳)。
- 关于加班:一年一两次封闭开发996,也就最多两周,其他都正常965这种吧。
- 看了同学发的图片,食堂、健身房、游泳馆都很nice,地点稻香湖风景好环境好,工作氛围应该很不错(这一点值得考虑hhh)
(五)中国人寿(其他投递公司)
- 国寿寿险总公司-金融科技类(简历挂):27+户口,“养老圣地,神仙打架”,果然待遇和难度成正比😂
- 人寿财险-金融科技中心(秋招简历挂,春招笔试未参加):待遇偏低,同样户口不保证,而且即将搬去稻香湖。听了同学的分享果断劝退😂