数据挖掘笔试面试(10)

【校招面经】机器学习与数据挖掘常见面试题整理 part5

五十九、计量经济学中的平稳性

六十、高斯混合分布

1. 生成模型

2. 认为点是由多个高斯分布产生的,每个点可以归入多个类

3. 目标是使观测到的点在生成的高斯分布中出现概率最大

 在做参数估计的时候,常采用的方法是 最大似然 。最大似然法就是使样本点在估计的概率密度函数上的概率值最大 。由于概率值一般都很小, N 很大的时候这个连乘的结果非常小,容易造成浮点数下溢。所以我们通常取 log ,将目标改写成:

   

扫描二维码关注公众号,回复: 5151307 查看本文章

    也就是最大化 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;

e1304f1f991f7c4a314e1534.jpg

上图的纵坐标是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;

08d7250aea65ce5f94ca6b34.jpg

上图阈值的变化,含义与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,所以它们显而易见的区别就在于纵轴刻度的不同。

(累积的正例数?)

猜你喜欢

转载自www.cnblogs.com/yumoye/p/10354153.html