新浪金融数据分析面经

https://zhuanlan.zhihu.com/p/36539125
https://zhuanlan.zhihu.com/p/56175215

9.24 笔试

9.29约面试 推到国庆后 10.16现场一面

自我介绍

实习最大的收获是什么?

挖数据竞赛,具体是怎么做的?

你能讲一下变量筛选IV和基于随机森林的差异么? 随机森林的重要性有两种定义,我只回答出了一种。

————————————————————————————————————————
IV叫做信息价值,是基于信息论得到的,是每箱特征的加权WOE,也可以用相对熵来理解,刻画的就是这个变量的好坏客户的分布差异,如果差异越大,对好坏客户的区分度就越强,反之则区分度就比较小。

基于特征重要度的变量筛选方法是目前机器学习最热门的方法之一,其原理主要是通过随机森林和GBDT等集成模型选取特征的重要度。对于随机森林,通常可以用基尼指数(Gini index)或者袋外数据(OOB)错误率作为评价指标来衡量。

两种计算方法:

  1. 选择袋外数据计算袋外误差,随机对袋外数据所有样本的特征加入随机干扰,再次计算袋外误差。当改变样本在该特征的值,若袋外数据准确率大幅度下降,则该特征对于样本的预测结果有很大影响,说明特征的重要度比较高。因此可以那两个袋外数据误差的均值来刻画特征的重要度。

  2. 第j个特征在随机森林所有决策树中节点分裂不纯度的平均改变量。我的理解就是当前节点可以计算基尼指数,当前节点依据某个特征分裂为左右节点后可以得到左节点的基尼指数,也可以得到左、右节点的基尼指数,这样既可计算一个差值,也就是在单个数中某个特征节点分裂不纯度的改变量,再将每棵树中的进行平均既可得到平均值,最后进行归一化得到重要性评分。

————————————————————————————————————————

评分卡模型中,为什么要进行分箱?讲一下卡方分箱?分箱后为什么要进行WOE编码?

—————————————————————————————————————————

为什么要进行分箱?

  1. 特征分箱可以有效处理特征中的异常值和缺失值。
  2. 特征分箱后,数据和模型会更稳定。
  3. 特征分箱可以简化逻辑回归模型,降低模型过拟合的风险,提高模型的泛化能力。
  4. 将所有特征统一变为类别型变量。
  5. 分箱后的变量才可以使用标准的评分卡模式,即对不同的分数段进行评分。

卡方分箱:
卡方检验就是用来刻画某个变量与因变量是不是有显著关系的。
可以用实际次数与预期次数的差的平方除以预期次数进行计算。

Chimerge 分箱是目前最流行的分箱方式之一,其基本思想是如果两个相邻的区间具有类似的类分布,则这两个区间合并;否则,它们应保持分开。Chimerge通常采用卡方值来衡量两相邻区间的类分布情况。

  1. 输入: 分箱的最大区间数
  2. 初始化: 离散值可以转化为坏客户比率,根据要离散的属性进行排序,进行等频分箱,若有缺失值,则单独一箱。
  3. 合并区间,计算每一对相邻区间的卡方值,卡方值越小说明两箱差异越小。将卡方值最小的一对区间合并。



    上式刻画的是 实际数量和合并后的期望数量的差异。

分箱后:

  1. 对于坏客户比例为 0 或 1 的分箱进行合并 (一个分箱内不能全为好客户或者全为坏客户)。
  2. 对于分箱后某一箱样本占比超过 95% 的箱子进行删除。
  3. 检查缺失分箱的坏客户比例是否和非缺失分箱相等,如果相等,进行合并。

为什么要进行WOE编码?

  • WOE编码的形式与逻辑回归相对应。 都有ln(坏/好)
  • 可以提升模型的预测效果。
  • 将自变量都利用WOE编码,规范到同一尺度,都转化为好坏客户的差异。
  • WOE变量能反应自变量取值的贡献情况。
  • 有利于对变量的每个分箱进行评分。
  • 转化为离散变量后便于分析变量与变量之间的相关性。
  • 与ONE-HOT编码相比,可以保证变量的完整性,同时避免稀疏矩阵和维数灾难。
  • WOE变量可以为逻辑回归引入非线性关系。

—————————————————————————————————————————

xgboost与lightgbm的差异?

—————————————————————————————————————————
我每次都只答出预排序和直方图。。 还要反复看。

1.速度和内存上的优化:

xgboost用的是预排序(pre-sorted)的方法, 空间消耗大。这样的算法需要保存数据的特征值,还保存了特征排序的结果(例如排序后的索引,为了后续快速的计算分割点),这里需要消耗训练数据两倍的内存。 其次,时间上也有较大的开销,在遍历每一个分割点的时候,都需要进行分裂增益的计算,消耗的代价大。
LightGBM用的是直方图(Histogram)的决策树算法,直方图算法的基本思想是先把连续的浮点特征值离散化成k个整数,同时构造一个宽度为k的直方图。在遍历数据的时候,根据离散化后的值作为索引在直方图中累积统计量,当遍历一次数据后,直方图累积了需要的统计量,然后根据直方图的离散值,遍历寻找最优的分割点。
2.准确率上的优化:

xgboost 通过level(depth)-wise策略生长树, Level-wise过一次数据可以同时分裂同一层的叶子,容易进行多线程优化,也好控制模型复杂度,不容易过拟合。但实际上Level-wise是一种低效的算法,因为它不加区分的对待同一层的叶子,带来了很多没必要的开销,因为实际上很多叶子的分裂增益较低,没必要进行搜索和分裂。
LightGBM通过leaf-wise(best-first)策略来生长树, Leaf-wise则是一种更为高效的策略,每次从当前所有叶子中,找到分裂增益最大的一个叶子,然后分裂,如此循环。因此同Level-wise相比,在分裂次数相同的情况下,Leaf-wise可以降低更多的误差,得到更好的精度。Leaf-wise的缺点是可能会长出比较深的决策树,产生过拟合。因此LightGBM在Leaf-wise之上增加了一个最大深度的限制,在保证高效率的同时防止过拟合。
3.对类别型特征的处理:

xgboost不支持直接导入类别型变量,需要预先对类别型变量作亚编码等处理。如果类别型特征较多,会导致哑变量处理后衍生后的特征过多,学习树会生长的非常不平衡,并且需要非常深的深度才能来达到较好的准确率。
LightGBM可以支持直接导入类别型变量(导入前需要将字符型转为整数型,并且需要声明类别型特征的字段名),它没有对类别型特征进行独热编码,因此速度比独热编码快得多。LightGBM使用了一个特殊的算法来确定属性特征的分割值。基本思想是对类别按照与目标标签的相关性进行重排序,具体一点是对于保存了类别特征的直方图根据其累计值(sum_gradient/sum_hessian)重排序,在排序好的直方图上选取最佳切分位置。

—————————————————————————————————————————

与线性回归一样,逻辑回归的假设是什么?

————————————————————————————————————————

  • 因变量满足二项分布
  • 零均值假设:随机误差项均值为0。
  • 同方差假设:随机误差项方差相同。若满足这一特性,称模型具有同方差性
  • 无自相关假设:若不满足这一特性,称模型具有自相关性(Autocorrelation)。

线性回归的假设:

  • 自变量与因变量线性相关
  • 自变量之间相互独立
  • 误差项之间相互独立
  • 误差项满足正态分布,期望为0
  • 自变量与误差项之间相互独立

————————————————————————————————————————

讲一下你的科研经历,你认为你论文的优势在哪?

你的研究生学习是统计多一些还是算法多一些?

y标签是怎么定义的?

反问:

新浪金融平时的具体工作是什么呢? 风险 + 转化

新浪金融想对比别的平台的优势是什么呢? 有的名义上的数据驱动,其实还是人工驱动;新浪金融做到了从上到下的数据驱动

面试官小哥哥挺温和的,还跟我讲了他们对于校招和社招的不同要求,

校招:逻辑性一定要好,你得能把一个东西讲明白; 而且统计知识什么的你得会,总不能招你进来再学吧;

社招:更注重的是业务sense和对业务的理解和把控

还和我讲了一下未来风控的分支和发展方向。

感觉自己答得一般般,好多细节只是看过说不出来,不过确实收获很多。

你可能感兴趣的:(新浪金融数据分析面经)