【校招面经】机器学习与数据挖掘常见面试题整理 part5
2018年08月04日 15:58:45 稻蛙 阅读数:105
五十九、计量经济学中的平稳性
六十、高斯混合分布
1. 生成模型
2. 认为点是由多个高斯分布产生的,每个点可以归入多个类
3. 目标是使观测到的点在生成的高斯分布中出现概率最大
在做参数估计的时候,常采用的方法是 最大似然 。最大似然法就是使样本点在估计的概率密度函数上的概率值最大 。由于概率值一般都很小, N 很大的时候这个连乘的结果非常小,容易造成浮点数下溢。所以我们通常取 log ,将目标改写成:
也就是最大化 log-likelyhood function ,完整形式则为:
一般用来做参数估计的时候,我们都是通过对待求变量进行求导来求极值,在上式中, log 函数中又有求和,你想用求导的方法算的话方程组将会非常复杂,所以我们不好考虑用该方法求解(没有闭合解)。可以采用的求解方法是 EM 算法 ——将求解分为两步:第一步是假设我们知道各个高斯模型的参数(可以初始化一个,或者基于上一步迭代结果),去估计每个高斯模型的权值;第二步是基于估计的权值,回过头再去确定高斯模型的参数。重复这两个步骤,直到波动很小,近似达到极值(注意这里是个极值不是最值, EM 算法会陷入局部最优)。具体表达如下:
4. 过程和K-means类似
5. 使用EM算法进行求解
六十一、采用 EM 算法求解的模型有哪些,为什么不用牛顿法或梯度下降法?
用EM算法求解的模型一般有GMM或者协同过滤,k-means其实也属于EM。EM算法一定会收敛,但是可能收敛到局部最优。由于求和的项数将随着隐变量的数目指数上升,会给梯度计算带来麻烦
六十二、解释下AUC
The AUC value is equivalent to the probability that a randomly chosen positive example is ranked higher than a randomly chosen negative example.
作者:马泽锋
链接:https://www.zhihu.com/question/39840928/answer/105922223
随机给定一个正样本和一个负样本,分类器输出该正样本为正的那个概率值 比 分类器输出该负样本为正的那个概率值 要大的可能性
六十三、lift
from:https://blog.csdn.net/half_cigar/article/details/5970143
Lift = (d/b+d)/(c+d/a+b+c+d)=PV_plus/pi1),这个指标需要多说两句。它衡量的是,与不利用模型相比,模型的预测能力“变好” 了多少。不利用模型,我们只能利用“正例的比例是c+d/a+b+c+d”这个样本信息来估计正例的比例(baseline model),而利用模型之后,我们不需要从整个样本中来挑选正例,只需要从我们预测为正例的那个样本的子集(b+d)中挑选正例,这时预测的准确率为 d/b+d。
显然,lift(提升指数)越大,模型的运行效果越好。如果这个模型的预测能力跟baseline model一样,那么d/b+d就等于c+d/a+b+c+d(lift等于1),这个模型就没有任何“提升”了(套一句金融市场的话,它的业绩没有跑过市场)。这个概念在数据库营销中非常有用,举个例子:
比如说你要向选定的1000人邮寄调查问卷(a+b+c+d=1000)。以往的经验告诉你大概20%的人会把填好的问卷寄回给你,即1000人中有200人会对你的问卷作出回应(response,c+d=200),用统计学的术语,我们说baseline response rate是20%(c+d/a+b+c+d=20%)。
如果你现在就漫天邮寄问卷,1000份你期望能收回200份,这可能达不到一次问卷调查所要求的回收率,比如说工作手册规定邮寄问卷回收率要在25%以上。
通过以前的问卷调查,你收集了关于问卷采访对象的相关资料,比如说年龄、教育程度之类。利用这些数据,你确定了哪类被访问者对问卷反应积极。假设你已经利用这些过去的数据建立了模型,这个模型把这1000人分了类,现在你可以从你的千人名单中挑选出反应最积极的100人来(b+d=100),这 10%的人的反应率 (response rate)为60%(d/b+d=60%,d=60)。那么,对这100人的群体(我们称之为Top 10%),通过运用我们的模型,相对的提升(lift value)就为60%/20%=3;换句话说,与不运用模型而随机选择相比,运用模型而挑选,效果提升了3倍。
上面说lift chart是不同阈值下Lift和Depth的轨迹,先画出来:
symbol i=join v=none c=black;
proc gplot data=valid_lift;
plot lift*depth;
run; quit;
上图的纵坐标是lift,意义已经很清楚。横坐标depth需要多提一句。以前说过,随着阈值的减小,更多的客户就会被归为正例,也就是 depth(预测成正例的比例)变大。当阈值设得够大,只有一小部分观测值会归为正例,但这一小部分(一小撮)一定是最具有正例特征的观测值集合(用上面数据库营销的例子来说,这一部分人群对邮寄问卷反应最为活跃),所以在这个depth下,对应的lift值最大。
同样,当阈值设定得足够的小,那么几乎所有的观测值都会被归为正例(depth几乎为1)——这时分类的效果就跟baseline model差不多了,相对应的lift值就接近于1。
一个好的分类模型,就是要偏离baseline model足够远。在lift图中,表现就是,在depth为1之前,lift一直保持较高的(大于1的)数值,也即曲线足够的陡峭。
六十四、gain
from:https://blog.csdn.net/half_cigar/article/details/5970143
Gains (增益) 与 Lift (提升)相当类似:Lift chart是不同阈值下Lift和Depth的轨迹,Gains chart是不同阈值下PV+和Depth的轨迹,而PV+=lift*pi1(正例的比例为pi1)= d/b+d(见上),所以它们显而易见的区别就在于纵轴刻度的不同:
symbol i=join v=none c=black;
proc gplot data=valid_lift;
plot pv_plus*depth;
run; quit;
上图阈值的变化,含义与lift图一样。随着阈值的减小,更多的客户就会被归为正例,也就是depth(预测成正例的比例,b+d/a+b+c+d)变大(b+d变大),这样PV+(d/b+d,正确预测到的正例数占预测正例总数的比例)就相应减小。当阈值设定得足够的小,那么几乎所有的观测值都会被归为正例(depth几乎为1),那么PV+就等于数据中正例的比例pi1了(这里是0.365。在Lift那一节里,我们说此时分类的效果就跟baseline model差不多,相对应的lift值就接近于1,而PV+=lift*pi1。Lift的baseline model是纵轴上恒等于1的水平线,而Gains的baseline model是纵轴上恒等于pi1的水平线)。显然,跟lift 图类似,一个好的分类模型,在阈值变大时,相应的PV+就要变大,曲线足够陡峭。
Gains(增益) 与 Lift (提升)类似:Lift 曲线是不同阈值下Lift和Depth的轨迹,Gain曲线则是不同阈值下PV_plus和Depth的轨迹,而PV_plus=Lift*pi1= TP/TP+FP,所以它们显而易见的区别就在于纵轴刻度的不同。
(累积的正例数?)
原文地址:https://www.cnblogs.com/yumoye/p/10354153.html