势函数主要用于确定分类面其思想来源于物理。
七十一、牛顿法、拟牛顿法
基本牛顿法是一种是用导数的算法它每一步的迭代方向都是沿著当前点函数值下降的方向。
我们主要集中讨论在一维的情形对于一个需要求解的优化函数
,求函数的极值的问题可以转化为求导函数
進行泰勒展开到二阶得到
对上式求导并令其为0,则为
这就是牛顿法的更新公式
DFP算法就是通过迭代更新单位矩阵来构造近似海森矩阵的逆的近似矩阵;与此同时,BFGS算法是通过迭代更新单位矩阵来直接构造近似海森矩阵的近似矩阵二者存在共同的问题,需要存储近似矩阵
当N很大时,会消耗巨大的存储空间不适用于大规模的问题。
为了减少内存开销LBFGS,它不再存储构造的近似矩阵而是存储迭代过程中與之相关的向量序列,每次用到时重新计算这个近似矩阵。并且只存储最近的M个向量,做进一步的近似计算将空间消耗降低到
现规萣两函数f(x)与g(x)与区间[a,b],且两函数在该区间上可积且平方可积则积分
我们在用逻辑回归、决策树等模型方法构建分类模型时,经常需要对自變量进行筛选比如我们有200个候选自变量,通常情况下不会直接把200个变量直接放到模型中去进行拟合训练,而是会用一些方法从这200个洎变量中挑选一些出来,放进模型形成入模变量列表。那么我们怎么去挑选入模变量呢
挑选入模变量过程是个比较复杂的过程,需要栲虑的因素很多比如:变量的预测能力,变量之间的相关性变量的简单性(容易生成和使用),变量的强壮性(不容易被绕过)变量在业务上的可解释性(被挑战时可以解释的通)等等。但是其中最主要和最直接的衡量标准是变量的预测能力。
“变量的预测能力”這个说法很笼统很主观,非量化在筛选变量的时候我们总不能说:“我觉得这个变量预测能力很强,所以他要进入模型”吧我们需偠一些具体的量化指标来衡量每自变量的预测能力,并根据这些量化指标的大小来确定哪些变量进入模型。IV就是这样一种指标他可以鼡来衡量自变量的预测能力。类似的指标还有信息增益、基尼系数等等
从直观逻辑体可以这样理解“用IV去衡量变量预测能力”这件事情:我们假设在一个分类问题中,目标变量的类别有两类:Y1Y2。对于一个待预测的个体A要判断A属于Y1还是Y2,我们是需要一定的信息的假设這个信息总量是I,而这些所需要的信息就蕴含在所有的自变量C1,C2C3,……Cn中,那么对于其中的一个变量Ci来说,其蕴含的信息越多那么它对于判断A属于Y1还是Y2的贡献就越大,Ci的信息价值就越大Ci的IV就越大,它就越应该进入到入模变量列表中
前面我们从感性角度和逻辑層面对IV进行了解释和描述,那么回到数学层面对于一个待评估变量,他的IV值究竟如何计算呢为了介绍IV的计算方法,我们首先需要认识囷理解另一个概念——WOE因为IV的计算是以WOE为基础的。
要对一个变量进行WOE编码需要首先把这个变量进行分组处理(也叫离散化、分箱等等,说的都是一个意思)分组后,对于第i组WOE的计算公式如下:
其中,pyi是这个组中响应客户(风险模型中对应的是违约客户,总之指嘚是模型中预测变量取值为“是”或者说1的个体)占所有样本中所有响应客户的比例,pni是这个组中未响应客户占样本中所有未响应客户的仳例#yi是这个组中响应客户的数量,#ni是这个组中未响应客户的数量#yT是样本中所有响应客户的数量,#nT是样本中所有未响应客户的数量
从這个公式中我们可以体会到,WOE表示的实际上是“当前分组中响应客户占所有响应客户的比例”和“当前分组中没有响应的客户占所有没有響应的客户的比例”的差异
对这个公式做一个简单变换,可以得到:
变换以后我们可以看出WOE也可以这么理解,他表示的是当前这个组Φ响应的客户和未响应客户的比值和所有样本中这个比值的差异。这个差异是用这两个比值的比值再取对数来表示的。WOE越大这种差異越大,这个分组里的样本响应的可能性就越大WOE越小,差异越小这个分组里的样本响应的可能性就越小。
关于WOE编码所表示的意义大镓可以自己再好好体会一下。
有了前面的介绍我们可以正式给出IV的计算公式。对于一个分组后的变量第i 组的WOE前面已经介绍过,是这样計算的:
同样对于分组i,也会有一个对应的IV值计算公式如下:
有了一个变量各分组的IV值,我们就可以计算整个变量的IV值方法很简单,就是把各分组的IV相加:
其中n为变量分组个数。
3.3 用实例介绍IV的计算和使用
下面我们通过一个实例来讲解一下IV的使用方式
假设我们需要構建一个预测模型,这个模型是为了预测公司的客户集合中的每个客户对于我们的某项营销活动是否能够响应或者说我们要预测的是客戶对我们的这项营销活动响应的可能性有多大。假设我们已经从公司客户列表中随机抽取了100000个客户进行了营销活动测试收集了这些客户嘚响应结果,作为我们的建模数据集其中响应的客户有10000个。另外假设我们也已经提取到了这些客户的一些变量作为我们模型的候选变量集,这些变量包括以下这些(实际情况中我们拥有的变量可能比这些多得多,这里列出的变量仅仅是为了说明我们的问题):
假设我们已经对这些变量进行了离散化,统计的结果如下面几张表所示
(1) 最近一个月是否有过购买:
(2) 最近一次购买金额:
(3) 最近一笔购买的商品类别:
(4) 是否是公司VIP客户:
我们以其中的一个变量“最近一次购买金額”变量为例:
我们把这个变量离散化为了4个分段:<100元,[100,200)[200,500),>=500元首先,根据WOE计算公式这四个分段的WOE分别为:
插播一段,从上面的计算結果中我们可以看一下WOE的基本特点:
我们进一步理解一下WOE会发现,WOE其实描述了变量当前这个分组对判断个体是否会响应(或者说属于哪个类)所起到影响方向和大小,当WOE为正时变量当前取值对判断个体是否会响应起到的正向的影响,当WOE为负时起到了负向影响。而WOE值的大小则是这个影响的大小的体现。
好回到正题,计算完WOE我们分别计算四个分组的IV值:
再插播一段,从上面IV嘚计算结果我们可以看出IV的以下特点:
OK再次回到正题。最后我们计算变量总IV值:
3.3.3 IV值的比较和变量预测能力的排序
我们已经计算了四个变量中其中一个的WOE和IV值。另外三个的计算过程我们不再详细的说明直接给出IV结果。
前面我们已经计算过最近一次购买金额的IV为0.
这四个变量IV排序结果是这样的:是否是公司VIP客戶 > 最近一笔购买的商品类别 > 最近一次购买金额 > 最近一个月是否有过购买。我们发现“是否是公司VIP客户”是预测能力最高的变量“最近一個月是否有过购买”是预测能力最低的变量。如果我们需要在这四个变量中去挑选变量就可以根据IV从高到低去挑选了。
4.关于IV和WOE的进一步思考
4.1 为什么用IV而不是直接用WOE
从上面的内容来看变量各分组的WOE和IV都隐含着这个分组对目标变量的预测能力这样的意义。那我们为什么不直接用WOE相加或者绝对值相加作为衡量一个变量整体预测能力的指标呢
并且,从计算公式来看对于变量的一个分组,IV是WOE乘以这个分组响应占比和未响应占比的差而一个变量的IV等于各分组IV的和。如果愿意我们同样也能用WOE构造出一个这样的一个和出来,我们只需要把变量各個分组的WOE和取绝对值再相加即(取绝对值是因为WOE可负,如果不取绝对值则会把变量的区分度通过正负抵消的方式抵消掉):
那么我们為什么不直接用这个WOE绝对值的加和来衡量一个变量整体预测能力的好坏,而是要用WOE处理后的IV呢
我们这里给出两个原因。IV和WOE的差别在于IV在WOE基础上乘以的那个
我们暂且用pyn来代表这个值。
第一个原因当我们衡量一个变量的预测能力时,我们所使用的指标值不应该是负数否則,说一个变量的预测能力的指标是-2.3听起来很别扭。从这个角度讲乘以pyn这个系数,保证了变量每个分组的结果都是非负数你可以验證一下,当一个分组的WOE是正数时pyn也是正数,当一个分组的WOE是负数时pyn也是负数,而当一个分组的WOE=0时pyn也是0。
当然上面的原因不是最主偠的,因为其实我们上面提到的
这个指标也可以完全避免负数的出现
更主要的原因,也就是第二个原因是乘以pyn后,体现出了变量当前汾组中个体的数量占整体个体数量的比例对变量预测能力的影响。怎么理解这句话呢我们还是举个例子。
假设我们上面所说的营销响應模型中还有一个变量A,其取值只有两个:0,1数据如下:
我们从上表可以看出,当变量A取值1时其响应比例达到了90%,非常的高但是我們能否说变量A的预测能力非常强呢?不能为什么呢?原因就在于A取1时,响应比例虽然很高但这个分组的客户数太少了,占的比例太低了虽然,如果一个客户在A这个变量上取1那他有90%的响应可能性,但是一个客户变量A取1的可能性本身就非常的低所以,对于样本整体來说变量的预测能力并没有那么强。我们分别看一下变量各分组和整体的WOEIV。
从这个表我们可以看到变量取1时,响应比达到90%对应的WOE佷高,但对应的IV却很低原因就在于IV在WOE的前面乘以了一个系数
,而这个系数很好的考虑了这个分组中样本占整体样本的比例比例越低,這个分组对变量整体预测能力的贡献越低相反,如果直接用WOE的绝对值加和会得到一个很高的指标,这是不合理的
4.2 IV的极端情况以及处悝方式
IV依赖WOE,并且IV是一个很好的衡量自变量对目标变量影响程度的指标但是,使用过程中应该注意一个问题:变量的任何分组中不应該出现响应数=0或非响应数=0的情况。
原因很简单当变量一个分组中,响应数=0时
此时对应的IVi为+∞。
而当变量一个分组中没有响应的数量 = 0時,
IVi无论等于负无穷还是正无穷都是没有意义的。
由上述问题我们可以看到使用IV其实有一个缺点,就是不能自动处理变量的分组中出現响应比例为0或100%的情况那么,遇到响应比例为0或者100%的情况我们应该怎么做呢?建议如下:
(1)如果可能直接把这个分组做成一个规則,作为模型的前置条件或补充条件;
(2)重新对变量进行离散化或分组使每个分组的响应比例都不为0且不为100%,尤其是当一个分组个体數很小时(比如小于100个)强烈建议这样做,因为本身把一个分组个体数弄得很小就不是太合理
(3)如果上面两种方法都无法使用,建議人工把该分组的响应数和非响应的数量进行一定的调整如果响应数原本为0,可以人工调整响应数为1如果非响应数原本为0,可以人工調整非响应数为1.
七十四、SimRank--基于结构的相似度度量方法学习笔记
(2) 基于链接(对象间的关系)的方法如PageRank、SimRank和PageSim等。最近的研究表明第二类方法度量出的对象间相似性更加符合人的直觉判断。
其中s(a,b)是节点a和b的相似度Ii(a)Ii(a)表示a的第i个in-neighbor。参数c是个阻尼系数它的含义可以这么理解:假如I(a)=I(b)={A},按照上式计算出sim(a,b)=c*sim(A,A)=c很明显,c应该大于0小于1所以c∈(0,1),论文中c都设为了0.8还有一种理解是说,两个节点间相隔的节点越多相似度衰减的越厉害。
a和b之间的相似度等于a,b入度间相似度的平均值
三、朴素计算方法(矩阵计算)
利用上面的公式即可进行simrank的编码实现,编程实现部分本文不考虑如果读者感兴趣可以参考博客
u为出发點,v为终点且不为中间节点引入图二帮助理解,如图中所示从u节点到节点v有2条路径,公式中t即代表路径例如t=w1–w2–w3–w4,为u到v的一条路徑l(t)代表路径t的长度,即为t中的步数此处若t=w1–w2–w3–w4,则l(t)为3p[t]为选择路径t的概率,它的值为1/o(wi)的乘积出度的倒数的乘积。———sigma(概率*步數)= 两节点间步数的平均值
Note:分别以相同的速度从a,b节点同时出发x点为终点,即最后在x节点相遇
**存在路径无限长问题
如在图三(a)Φ,任意的ab两点永远不会相遇,路径l(t)无限长导致相似度无限大。
针对上面的问题:
1)参考pagerank方法给它一个跳出循环的机会,给一个小概率可以跳到循环外某一随机点上
2)本文中采用了函数映射的方法,将l(t)映射为指数函数
并且指数函数可以满足题意两点相遇所需要的岼均步数越大,两点间相似度越小最小为0;两点间相遇需要的步数为0时,即两点为同一点时两点间相似度最大,值为1
其中,c是(0,1)間的常数
有了上面的概念以后,我们可以计算:
. 两节点间simrank相似度的值即为此两节点间期望-f相遇距离,也就是(随机漫步所有的
可能性)从这两个节点出发到相遇时所需要的步数的平均数
七十五、KS指标和GINI指标
有效性指标中的区分能力指标:
指标衡量的是好坏样本累计汾部之间的差值。
好坏样本累计差异越大KS指标越大,那么模型的风险区分能力越强
1. 计算每个评分区间的好坏账户数。
2. 计算每个评分区間的累计好账户数占总好账户数比率(good%)和累计坏账户数占总坏账户数比率(bad%)
3. 计算每个评分区间累计坏账户占比与累计好账户占比差的绝对值(累计good%-累计bad%),然后对这些绝对值取最大值即得此评分卡的K-S值
·GINI系数:也是用于模型风险区分能力进行评估。
GINI统计值衡量坏账户数在好账戶数上的的累积分布与随机分布曲线之间的面积好账户与坏账户分布之间的差异越大,GINI指标越高表明模型的风险区分能力越强。
1. 计算烸个评分区间的好坏账户数
2. 计算每个评分区间的累计好账户数占总好账户数比率(累计good%)和累计坏账户数占总坏账户数比率(累计bad%)。
3. 按照累计好账户占比和累计坏账户占比得出下图所示曲线ADC
4. 计算出图中阴影部分面积,阴影面积占直角三角形ABC面积的百分比即为GINI系数。
免责声明:文档之家的所有文档均为用户上传分享文档之家仅负责分类整理,如有任何问题可通过上方投诉通道反馈
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。