时间都是虚妄。
1.实际回答中要举例子时,不要说比如,而要说:以当时我做为例,xxxx
2.讲述一个事例时先讲结论,做到了什么样子。
3.说一下你的哪些闪光点,除了非专业知识外,自己有较强的学习能力和自我驱动力(学习爬取数据),抗压能力(实习和论文兼顾)。
后面会陆陆续续去纠正里面的细节问题。
今天是10.12r ,早上学校下起了雨,这两天来回在大学城跑,虽然面了一些公司,但也错过了一些,9点来到实验室时,发现昨晚特地去的钜盛华笔试是在大学城而且也是九点,瞬间就什么也不想说了。
还是聚焦几个自己想做的公司吧,不然真心好累又没什么结果。
BGM——《北方的女王》
说一下昨天面试的华为:
1、模型里的数据问题:
(1)一百万条数据差不多有多大?
数据具体的大小要看特征量的大小,十几个特征的话就几十兆。
我们当时其中一个模型用到的初步原始数据特征有50多个,数据大小有210多M。
(实际模型中最后字段有:a代表加入购物车,b代表收藏商品,c代表浏览商品,d代表搜索关键字,e搜索本店铺,f代表收藏店铺等等)(2)训练一个模型大概花多久?
当时训练需要大概1到2小时的时间,模型训练时间受特征维数,模型复杂度,参数设置的影响。(调整算法中的参数,改善模型正确率。)
模型可能训练多次来改善分类器的性能,其中一种方法就是——交叉验证(Cross-validation,CV)。
K折交叉验证——即将初始采样样本分割成K个子样本,1个单独的子样本被保留作为验证模型的数据,剩下其他K-1个样本用来训练。然后第2个子样本作验证样本,其他剩下K-1个样本用来训练,,直到所有的子样本都被验证一次,最后对测试的准确率做平均即为该模型的准确率
(在scikit-learn中有CrossValidation的实现代码,用该方法做到了模型准确率从67%提升到86%)
- (3)测试集用模型去预测很快,只要几分钟就会预测哪些记录属于哪一类。
2、有没有想过怎样改进人群圈定的思维?
有试过用一/三日游、签证,这种相关联的产品去圈定,但模型预测效果并不好。
今天是2016.10.8r
如何解决训练集中不平衡问题?
即训练集中正负样本比例不能差别过大,这样会导致学习到的分类器是无效的。(样本数量较少的类别叫稀有类,较多的叫多数类。)
解决办法是:
1.赋予小类样本更高的训练权值
2.对小类进行过采样
(过抽样指复制正样本,直到训练集中正样本和负样本一样多。)
3.常规的分类评价指标可能会失效,比如将所有的样本都分类成大类,那么准确率、精确率等都会很高。这种情况下,AUC是最好的评价指标。
1. 关于大麦信息科技有限公司+大数据分析员岗位总结
**
**
背景:公司主要是做电商平台代运营推广的,自己主要负责管理5个店铺(女装+化妆品+旅游签证类产品)。
问题:在店铺推广上普遍存在引流不足、引流不准的问题,因此主要的思路就是:需要找到大量精准的潜在客户人群,以及针对老客户建立精选人群,从新客户挖掘和老客户维护两方面同时提升运营推广效果。
怎样去找到精准人群:
(1) 店铺自身的一个分析
拿到一个店铺首先熟悉店铺主推服饰的风格,明白店铺的产品定位后,才会对我们的客户人群的年龄、职业等确定就有了大致的方向。-
(2) 人群画像
- 主要是从静态标签维度如:性别、年龄、学历、职业、收入、地域、婚姻,消费频率,购买渠道等对已有数据进行整理划分。
- 接着利用用户价值研究中的RMF模型,基于近度(Recency),频度(Frequency)和额度(Monetory)这3个指标对用户进行聚类:多少天内有,搜索商品类目、店铺,浏览、加购物车、购买店铺或竞品店铺商品进行人群圈定,然后进行广告投放。
-
(3) 使用分类器筛选人群
更多的时候使用RMF模型筛选出来的人群效果不是特别好,因为只选用了三个标签,因此在工作的时候,会考虑使用分类器来将考虑人群的更多标签属性进来。主要包括以下几个步骤进行:数据清洗
主要对缺失值,离群值进行处理
按列进行属性统计,如果某属性中数据缺失比例过大,则剔除。样本选择
数据集划分为训练集和检验集,(两个集合互不相交,通常比例为50-50,或2/3为训练集,1/3为检验集)。
在自己实际操作时需先选择正样本和负样本作为训练集,为了达到精准引流,提高订单转化率,那么选择过去半年/一年内成交的客户为正样本,过去有浏览但没有加入购物车、收藏店铺、商品为负样本。(正负样本比例最好为1:1,测试集中的比例为4:1到1:1取值)特征工程(数据挖掘重要环节之一)
由之前人群画像阶段会得到很多预设特征,例如身份证性别、购物性别、预测购物年龄段、近近1/7/15/30天浏览店铺/商品数等。
在将原始数据(raw data)进行训练之前,对数据进行提炼可以起到很好的作用,有时,一个用提炼的数据的简单的算法要比使用原始数据的高级算法的表现效果要好。可以认为转化数据这个工作是特征工程(feature engineering)所在。
处理类别变量:一般是先标签化,然后再二值化编码。(比如地域、城市等)
处理数值变量:只需做正规化(normalization)和标准化(standardization)即可,分别对应scikit-learn中的Normalizer和StandardScaler。(比如年龄、月消费金额等)
有哪几种选择特征的方法:
- 根据皮尔逊相关系数,相关度高的特征可能很重要选入;
- 随机森林、GBDT、xgboost这些算法内部会对特征重要性进行评价和选择;(决策树生成的过程也是特征选择的过程,选择特征的依据通常是划分后子节点的纯度,划分后子节点越纯,则说明划分效果越好。)
- 信息增益,用信息增益来量化特征的质量,值越大说明特征越有区分力,也就越好。
-
模型选择(数据挖掘重要环节之一)
建模接触到的算法有:logistic回归、随机森林、GBDT,
logistic回归
随机森林(采取的是有放回的抽样)
GBDT中的树都是回归树,不是分类树,其核心在于每一棵树学的是之前所有树结论和的残差。(相比普通决策树防止了过拟合出现。)每个算法都对应有假设估计函数h,为了求得假设函数h,需要构造损失函数J,以及进行最优化找到合适参数:
(这里面如果问起来就需要对算法的原理进行讲解,以及python的实现函数的包等)
用pandas中来进行数据预处理和特征工程,其中的DataFrame数据格式用起来很便利;
用scikit-learn库中,有实现聚类,分类,回归等模型;
Xgboost库实现GBDT模型;
Matplotlib用于作图
**模型预测结果分析**
训练一个模型大概需要1到2个小时的时间。这里本质上来说是一个二分类问题,即是否会购买商品,校验标准大概有以下几个方面:TPR(真正率)、FPR(假正率)、ROC曲线、AUC值,TPR和AUC数值也是越大说明我们的模型性能越好。
得到分类器后,将带预测目标人群扔进分类器,可以得到每个人群的购买概率(购买的可能性大小)。这样,我们就可以根据运营投放计划的人群数量需求,设定合理的购买概率阈值,产出一定人数的精准定向营销人群。
结果:
- 投资回报率(ROI)是评价推广效果好坏的核心指标之一,ROI越高表明,投入的有效回报越高。
- 老客户效果较好的店铺,普通用户画像进行圈定的效果与过分类模型后的效果相差不大;但是对于潜在用户,则过模型后的人群效果更好,一般点击率和ROI会在提高1倍以上。
- 自己管理的店铺,一个月内ROI最高达到6,基本保正在1以上,平均达到3以上。
2. 关于鹏华基金有限公司+数据助理工程师岗位总结
**
**
- (1)参与数据库迁移项目,负责分析各schema间的耦合性,使用Informatica对不同数据源中表进行整合
(熟悉基金行业三大后台支持系统:TA(注册登记)、估值、信批(XBRL)
为什么要迁移?
在进行业务分析时,比如绩效分析,不同业务之间会抢夺资源,最直接的影响可能导致数据库宕机,产生风险;此外一些用户权限过大,容易导致信息泄露的风险。
于是将涉及到应用类的用户不迁移,所有涉及投研和营销的用户迁移出去。
使用informatica一是通过设置参数来抽取和同步来自不同数据源的数据;)
使用informatic具体主要做什么?
使用:主要做一些mapping
其次informatic里挂的都是一些存储过程
(2)根据投研、客服、电子商务等部门业务需求,负责使用PL/SQL进行数据提取。
(以当时为例:提取华南区域福建,广西,云南三省截止至9月的基金存量数据,我就要与之沟通确认需求是否是只统计一年内的,是否只统计公募产品,是否需要按基金类别:股票型,货币,EOF,债券等进行确认。)(3)负责使用iSQL插件开发专户财务报表模板,整理月度投资报告模板以及操作说明文档。
(效率改进:开发的报表使每周一要提供给电商部门的报表由原来的一天的工作时间缩短为几十分钟。其中在excel中的格式和指标(资产净值,净值变动率,投资收益率)等都需要自己先去熟悉,了解相应的含义,各个指标之间的联系。)
3. 关于长城宽带网络服务有限公司 +数据库开发员岗位总结
**
**
- (1)负责检查数据表结构的冗余性,对查询语句进行效率优化,对已有客户管理系统进行维护管理。
- (2)根据财务部门查询需求,负责开发MySQL数据库存储过程和视图。
(存储过程是一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。
** Excute proc_name 参数1,参数2...**)
优点在于:可提高数据库执行速度、可重复利用、安全性能好;缺点:可读性较差