文末免费送电子书:七月在线干货组最新 升级的《2021最新大厂AI面试题》免费送!

问题 1 :芝麻信用分的主要计算维度?

主要维度

  • 个人属性:职业类型、学历学籍等;
  • 稳定性:手机稳定性、地址稳定性、账户活跃时长等;
  • 资产状况:账户资产、有无住房、有无车辆;
  • 消费能力:消费金额、消费层次、消费场景丰富度;
  • 社交情况:人脉圈信用度、社交广度、社交深度;
  • 信用历史情况:信用历史时长、信用履约记录数、信用履约场景、公共事业缴费记录;
  • 违约历史情况:违约场景数;

问题 2 :为什么我们做评分卡的时候要用woe编码,而不是用别的编码方式呢?比如onehot之类的,仅仅是因为woe可以把特征从非线性变成线性的吗?

因为onehot后高维稀疏,模型学习是有困难的。一般模型会做embedding,但是做了embedding就不可解释了。 所以用woe来代替。

使用woe编码通常有以下优点:

  • 更好的解释性,变量离散化之后可将每个箱体映射到woe值,而不是通常做one-hot转换。
  • woe化之后可以计算每个变量的IV值,可用来筛选变量。
  • 对离散型变量,woe可以观察各个level间的跳转对odds的提升是否呈线性。
  • 对连续型变量,woe和IV值为分箱的合理性提供了一定的依据,也可分析变量在业务上的可解释性。
  • 用woe编码可以处理缺失值问题。

问题 3 :过采样怎么做效果才会好?

数据集清洗了嘛,还有特征呈线性了嘛,这两个不满足过采样很难保证效果的,通常xgboost不保证线性也行,但是要用smote最好做一下。

问题 4 :在xgboost或者lightgbm建模之前是否进行相关性处理,去掉相关性较高的变量?

需要

lr中我们是为了对向量空间描述的最好。

在xgb主要是想去掉相互替代性较强的特征。比如一个特征给他找相关性特别强的9个特征放在模型里面,存成不同的名字,你会发现他本来重要性是10,每划分一次,一个特征就比另一个好用那么一点,这么弄了之后十个特征的重要性都变成了1,然后被我们用feature_importance>5给筛掉了……这多尴尬。

太多共线性特征的存在确实会使得模型的泛化性能下降,当然,这里指的是“过多”,如果是很少量共线性特征存在其实对于模型影响很轻微,但是如果存在大量共线性特征,尤其是比赛的时候暴力的特征衍生,会产生相当多相关性很高的特征,从而导致gbdt在训练的过程中重复采样相关性很高的特征,使得模型的效果变差,具体可见kaggle_ieee的kris分享的方案,通过删除大量冗余的V特征,local cv上升了千五,b榜上涨千4(事后分别测试的)。

参考:

https://zhuanlan.zhihu.com/p/105094131

问题 5 :xgb变量重要性用哪一个指标?

1、通常我会直接用weight,他们筛选出的变量略有区别,但是使用下来区别主要在于重要性最低的那几个可以互相替代的特征,具体用谁其实并不重要。经验告诉我们total_gain效果可能会略好。

2、是的,xgb筛选特征,然后用新的特征建模,但是通常不建议筛选后还用xgb建模,这不符合模型融合的策略。

3、xgb其实是没法解释的,如果希望有逻辑回归的可解释度,建议相同数据、相同变量,带入lr建立一个陪跑的模型,寻求解释的时候去lr中找原因。特征相同的前提下,不会有太大出入的。

4、xgb筛选特征可以理解为用均方差最小来做特征筛选,和IV、WOE属于同一种筛选方式,,描述的都是特征对�