互联网金融风控面试算法知识(一)

       资料来源于网络搜集和汇总,把算法知识的总结放在业务知识后面也是为了说明实际工作业务落地应用的重要性大于算法创新。面试题依然是适用于3年经验以内的初学者,希望大家在学习算法的同时不要一心只研究算法而脱离了业务,要真正做到数据驱动业务。先附上之前对算法的一些总结:

1.常用机器学习算法的原理推导

2.评分卡的一些理论知识

关于逻辑回归

一、逻辑回归的优缺点,在金融领域相比其他算法有什么优势,局限性在哪?

(1)优点:

  1. 实现简单,速度快,占用内存小,可在短时间内迭代多个版本的模型。

  2. 模型的可解释性非常好,可以直接看到各个特征对模型结果的影响,可解释性在金融领域非常重要,所以在目前业界大部分使用的仍是逻辑回归模型。

  3. 模型客群变化的敏感度不如其他高复杂度模型,因此稳健更好,鲁棒性更强。

  4. 特征工程做得好,模型的效果不会太差,并且特征工程可以并行开发,大大加快开发的速度。

  5. 模型的结果可以很方便的转化为策略规则,且线上部署简单。

(2)缺点和局限性:

  1. 容易欠拟合,相比集成模型,准确度不是很高。

  2. 对数据的要求比较高,逻辑回归对缺失值,异常值,共线性都比较敏感,且不能直接处理非线性的特征。所以在数据清洗和特征工程上会花去很大部分的时间。

  3. 在金融领域对场景的适应能力有局限性,例如数据不平衡问题,高维特征,大量多类特征,逻辑回归在这方面不如决策树适应能力强。

二、逻辑回归是线性模型吗?逻辑回归和线性回归的区别?

       逻辑回归是一种广义线性模型,它引入了Sigmod函数,是非线性模型,但本质上还是一个线性回归模型,因为除去Sigmod函数映射关系,其他的算法原理,步骤都是线性回归的。

       逻辑回归和线性回归首先都是广义的线性回归,在本质上没多大区别,区别在于逻辑回归多了个Sigmod函数,使样本映射到[0,1]之间的数值,从而来处理分类问题。另外逻辑回归是假设变量服从伯努利分布,线性回归假设变量服从高斯分布。逻辑回归输出的是离散型变量,用于分类,线性回归输出的是连续性的,用于预测。逻辑回归是用最大似然法去计算预测函数中的最优参数值,而线性回归是用最小二乘法去对自变量因变量关系进行拟合。

三、逻辑回归做分类的样本应该满足什么分布?

       应该满足伯努利分布,逻辑回归的分类标签是基于样本特征通过伯努利分布产生的,分类器要做的就是估计这个分布。

四、逻辑回归解决过拟合的方法有哪些?

(1)减少特征数量,在实际使用中会用很多方法进行特征筛选,例如基于IV值的大小,变量的稳定性,变量之间的相关性等。

(2)正则化,常用的有L1正则化和L2正则化。

五、什么是特征的离散化和特征交叉?逻辑回归为什么要对特征进行离散化?

       特征离散化是将数值型特征(一般是连续型的)转变为离散特征,例如评分卡中的woe转化,就是将特征进行分箱,再将每个分箱映射到woe值上,就转换为了离散特征。特征交叉也叫作特征组合,是将单独的特征进行组合,使用相乘/相除/笛卡尔积等形成合成特征,有助于表示非线性关系。比如使用One-Hot向量的方式进行特征交叉。这种方式一般适用于离散的情况,我们可以把它看做基于业务理解的逻辑和操作,例如经度和纬度的交叉,年龄和性别的交叉等。

      实际工作中很少直接将连续型变量带入逻辑回归模型中,而是将特征进行离散化后再加入模型,例如评分卡的分箱和woe转化。这样做的优势有以下几个:

(1)特征离散化之后,起到了简化模型的作用,使模型变得更稳定,降低了模型过拟合的风险。

(2)离散化之后的特征对异常数据有很强的鲁棒性,实际工作中的哪些很难解释的异常数据一般不会做删除处理,如果特征不做离散化,这个异常数据带入模型,会给模型带来很大的干扰。

(3)离散特征的增加和减少都很容易,且稀疏向量的内积乘法运算速度快,易于模型的快速迭代。

(4)逻辑回归属于广义线性模型,表达能力有限,特征离散化之后,每个离散变量都有单独的权重,相当于给模型引入了非线性,能够提高模型的表达能力。

 (5)离散化后的特征可进行特征交叉,进一步引入非线性,提高模型的表达能力。

六、在逻辑回归中,为什么要常常做特征组合(特征交叉)?

       逻辑回归模型属于线性模型,线性模型不能很好处理非线性特征,特征组合可以引入非线性特征,提升模型的表达能力。另外,基本特征可以认为是全局建模,组合特征更加精细,是个性化建模,但对全局建模会对部分样本有偏,对每一个样本建模又会导致数据爆炸,过拟合,所以基本特征+特征组合兼顾了全局和个性化。

七、做评分卡中为什么要进行WOE化?

(1)更好的解释性,变量离散化之后可将每个箱体映射到woe值,而不是通常做one-hot转换。

(2)woe化之后可以计算每个变量的IV值,可用来筛选变量。

(3)对离散型变量,woe可以观察各个level间的跳转对odds的提升是否呈线性。

(4)对连续型变量,woe和IV值为分箱的合理性提供了一定的依据,也可分析变量在业务上的可解释性。

(5)用woe编码可以处理缺失值问题。

八、高度相关的特征带入逻辑回归到底有什么影响?为什么逻辑回归要将高度相关特征剔除?

       在损失函数最终收敛的情况下,就算有很多相关度很高的特征,也不会影响模型的效果。假设一个特征将它重复100次,生成100个高度相关的特征。那么模型训练完之后,这100个特征和原来那一个特征扮演的效果一样,每一个特征的权重都是原来特征的1/100,只是可能中间很多特征的系数正负相互抵消了,比如做评分卡,如果引入了高度相关的特征,那么最后逻辑回归的系数符号可能就会不一致

       虽然高度相关特征对模型结果没什么大的影响,但还是要剔除相关性高的特征,原因是一个可以减少特征数量,提高模型的训练速度,减少过拟合的风险。二是去掉高相关特征可以让模型的可解释性更好。尤其在做评分卡时,为了使最后每个特征的系数符号一致,必须做特征相关性筛选。

九、逻辑回归的特征系数的绝对值可以认为是特征的重要性吗?

       首先特征系数的绝对值越大,对分类效果的影响越显著,但不能表示系数更大的特征重要性更高。因为改变变量的尺度就会改变系数的绝对值,而且如果特征是线性相关的,则系数可以从一个特征转移到另一个特征,特征间相关性越高,用系数解释变量的重要性就越不可靠。

十、逻辑回归为什么要用极大似然函数作为损失函数?

(1)数据归一到0和1,这样的话梯度下降会收敛的更快,相比不归一化,不会出现扁平的情况。

(2)数据归一化之后可以提高结果的精度,尤其在与正则化同时使用时,数据归一化可以避免由于特征取值范围差距过大,对取值较小特征的参数影响更大的问题。

关于决策树

一、决策树模型的优缺点及适用性?

优点:

(1)易于理解,决策树可以生成IF..TEHN逻辑表达的树结构,可解释性很好。

(2)相比逻辑回归对数据的处理较简单,不太需要做例如数据离散化,归一化等操作。

(3)决策树是目前已知的对于处理非线性交互的最好的算法。

(4)模型的效果比较好,例如随机森林,xgboost都是基于决策树构建的。

缺点:

(1)很容易在训练过程中生成过于复杂的树结构,造成过拟合。

(2)不适合处理高维数据,当属性数量过大时,部分决策树就不适用了。

(3)泛化能力能力比较差,对于没有出现过的值几乎没有办法。

二、简述一下决策树的原理以及树的构建过程

       决策树时基于树的结构进行决策的,学习过程包括特征选择,决策树的生成和剪枝过程。决策树的学习过程通常是递归地选择最优特征,并用最优特征对数据集进行分割。开始时,构建根节点,选择最优特征,该特征有几种值就划分为多少子集,每个子集递归调用此方法,返回结点,返回的结点就是上一层的子节点,直到所有特征都已经用完,或者数据集只有一维特征为止。

三、简述一下ID3,C4.5,CART三类决策树的原理和异同点

(1)ID3选择最佳分割点是基于信息增益的,信息增益越大,表明使用这个属性来划分所获得的“纯度提升”越大。C4.5对ID3进行了改进,因为ID3使用的信息增益对数据划分时,可能出现每个结点只包含一个样本,这些子节点的纯度已经达到最大,但是,这样的决策树并不具有泛化能力,无法对新样本进行预测。且ID3不能处理连续型变量和缺失值。而C4.5使用信息增益率来选择属性,克服了信息增益选择属性时偏向选择值多的属性的不足。且可以处理连续型变量和缺失值。

(2)C4.5是基于ID3的改进版,只能用于分类。而CART树既可以做分类,也可以做回归。CART的本质是对特征空间进行二元划分,所以CART生成的是一颗二叉树,且可以对类别型变量和数值型变量进行分裂。对分类型变量进行划分时,分为等于该属性和不等于该属性,在对连续型变量进行划分时,分为大于和小于,在做分类是使用的是GINI系数作为划分标准,在做回归时使用的是均方误差。

四、分类树和回归树的区别在哪里?

       分类树以C4.5为例,在对一个特征进行划分时,是穷举这个特征的每一个阈值,找到使得特征<=阈值和特征>阈值分成的两个分支的熵的最大值,按照该标准分支得到两个新的节点,用同样的方法继续分支,直到得到种类唯一的叶子节点,或者达到预设的终止条件为止。

       回归树的流程是类似分类树的,区别在于划分时的标准不再是最大熵,而是最小化均差,如果节点的预测值错的越离谱,均方差越大,通过最小化均差能够找到最可靠的分支依据。

五、决策树对缺失值是如何处理的?

决策树处理缺失要考虑以下三个问题:

1、当开始选择哪个属性来划分数据集时,样本在某几个属性上有缺失怎么处理:

(1)忽略这些缺失的样本。

(2)填充缺失值,例如给属性A填充一个均值或者用其他方法将缺失值补全。

(3)计算信息增益率时根据缺失率的大小对信息增益率进行打折,例如计算属性A的信息增益率,若属性A的缺失率为0.9,则将信息增益率乘以0.9作为最终的信息增益率。

2、一个属性已经被选择,那么在决定分割点时,有些样本在这个属性上有缺失怎么处理?

(1)忽略这些缺失的样本。

(2)填充缺失值,例如填充一个均值或者用其他方法将缺失值补全。

(3)把缺失的样本,按照无缺失的样本被划分的子集样本个数的相对比率,分配到各个子集上去,至于那些缺失样本分到子集1,哪些样本分配到子集2,这个没有一定准则,可以随机而动。

(4)把缺失的样本分配给所有的子集,也就是每个子集都有缺失的样本。

(5)单独将缺失的样本归为一个分支。

3、决策树模型构建好后,测试集上的某些属性是缺失的,这些属性该怎么处理?

(1)如果有单独的缺失值分支,依据此分支。

(2)把待分类的样本的属性A分配一个最常出现的值,然后进行分支预测。

(3)待分类的样本在到达属性A结点时就终止分类,然后根据此时A结点所覆盖的叶子节点类别状况为其分配一个发生概率最高的类。

六、为什么决策树不需要对数据做归一化等预处理?

       决策树是一种概率模型,所以不需要做归一化,因为它不关心变量的值,而是关心变量的分布和变量之间的条件概率,所以归一化这种数值缩放,不影响分裂结点位置。

七、如何解决决策树的过拟合问题?

1.预剪枝的方法

       通过提前停止树的构建而对树剪枝,是目前解决过拟合的主要方法。常用的剪枝条件包括限制树的深度,限制叶节点最小样本数,限制叶节点的最小样本权重,限制叶节点的信息增益值的阈值等。

2.后剪枝的方法

      首先构造完整的决策树,允许树过度拟合数据,然后应单个结点代替子树,节点的分类采用子树的主要分类。剪枝方法有错误率降低剪枝,悲观错误剪枝,代价复杂度剪枝

【作者】:Labryant  
【原创公众号】:风控猎人  
【简介】:做一个有规划的长期主义者。
【转载说明】:转载请说明出处,谢谢合作!~

你可能感兴趣的:(风控,面试,算法,数据挖掘)