京东数据分析岗面试题目整理

1,怎么做恶意刷单检验

分类问题用机器学习方法建模解决,特征有:

1)商家特征:商家历史销量、信用、产品类别、发货快递公司等

2)用户行为特征:用户信用、下单量、转化率、下单路径、浏览店铺行为、支付账号

3)环境特征(主要是避免机器刷单):地区、ip、手机型号等

4)异常检测:ip地址经常变动、经常清空cookie信息、账号近期交易成功率上升等

5)评论文本检测:刷单的评论文本可能套路较为一致,计算与已标注评论文本的相似度作为特征

6)图片相似度检测:同理,刷单可能重复利用图片进行评论

2,你系统地学过机器学习算法吗

3,选个讲下原理吧 K-Means算法及改进,遇到异常值怎么办?评估算法的指标有哪些?

1)k-means原理

2)改进:

a. kmeans++:初始随机点选择尽可能远,避免陷入局部解。方法是n+1个中心点选择时,对于离前n个点选择到的概率更大

b. mini batch kmeans:每次只用一个子集做重入类并找到类心(提高训练速度)

c. ISODATA:对于难以确定k的时候,使用该方法。思路是当类下的样本小时,剔除;类下样本数量多时,拆分

d. kernel kmeans:kmeans用欧氏距离计算相似度,也可以使用kernel映射到高维空间再聚类

3)遇到异常值

a. 有条件的话使用密度聚类或者一些软聚类的方式先聚类,剔除异常值。不过本来用kmeans就是为了快,这么做有些南辕北辙了

b. 局部异常因子LOF:如果点p的密度明显小于其邻域点的密度,那么点p可能是异常值

c. 多元高斯分布异常点检测

d. 使用PCA或自动编码机进行异常点检测:使用降维后的维度作为新的特征空间,其降维结果可以认为剔除了异常值的影响(因为过程是保留使投影后方差最大的投影方向)

e. isolation forest:基本思路是建立树模型,一个节点所在的树深度越低,说明将其从样本空间划分出去越容易,因此越可能是异常值。是一种无监督的方法,随机选择n个sumsampe,随机选择一个特征一个值。

f. winsorize:对于简单的,可以对单一维度做上下截取

4)评估聚类算法的指标:

a. 外部法(基于有标注):Jaccard系数、纯度

b. 内部法(无标注):内平方和WSS和外平方和BSS

c. 此外还要考虑到算法的时间空间复杂度、聚类稳定性等

4, 数据预处理过程有哪些?

1)缺失值处理:删、插

2)异常值处理

3)特征转换:时间特征sin化表示

4)标准化:最大最小标准化、z标准化等

5)归一化:对于文本或评分特征,不同样本之间可能有整体上的差异,如a文本共20个词,b文本30000个词,b文本中各个维度上的频次都很可能远远高于a文本

6)离散化:onehot、分箱等

5,随机森林原理?有哪些随机方法?

1)随机森林原理:通过构造多个决策树,做bagging以提高泛化能力

2)subsample(有放回抽样)、subfeature、低维空间投影(特征做组合,参考林轩田的《机器学习基石》

6, PCA

1)主成分分析是一种降维的方法

2)思想是将样本从原来的特征空间转化到新的特征空间,并且样本在新特征空间坐标轴上的投影方差尽可能大,这样就能涵盖样本最主要的信息

3)方法:

a. 特征归一化

b. 求样本特征的协方差矩阵A

c. 求A的特征值和特征向量,即AX=λX

d. 将特征值从大到小排列,选择topK,对应的特征向量就是新的坐标轴

4)PCA也可以看成激活函数为线性函数的自动编码机

7,还有一些围绕着项目问的具体问题

8,参加过哪些活动?

9,hive?spark?sql? nlp?

1)Hive允许使用类SQL语句在hadoop集群上进行读、写、管理等操作

2)Spark是一种与hadoop相似的开源集群计算环境,将数据集缓存在分布式内存中的计算平台,每轮迭代不需要读取磁盘的IO操作,从而答复降低了单轮迭代时间

10,XGBOOST

xgb也是一种梯度提升树,是gbdt高效实现,差异是:

1)gbdt优化时只用到了一阶导数信息,xgb对代价函数做了二阶泰勒展开

2)xgb加入了正则项

3)xgb运行完一次迭代后,会对叶子节点的权重乘上shrinkage(缩减)系数,削弱当前树的影响,让后面有更大的学习空间

4)支持列抽样等特性

5)支持并行:决策树中对特征值进行排序以选择分割点是耗时操作,xgb训练之前就先对数据进行排序,保存为block结构,后续迭代中重复用该结构,大大减少计算量。同时各个特征增益的计算也可以开多线程进行

6)寻找最佳分割点时,实现了一种近似贪心法,同时优化了对稀疏数据、缺对稀疏数据、缺失值的处理,提高了算法效率

7)剪枝:GBDT遇到负损失时回停止分裂,是贪心算法。xgb会分裂到指定最大深度,然后再剪枝

你可能感兴趣的:(京东数据分析岗面试题目整理)