开发者学堂课程【机器学习算法 :模型原理-2】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/535/detail/7220
模型原理-2
内容介绍
一、引入非线性函数的条件
二、Logistic 函数的历史
一、引入非线性函数的条件
对于二分类因变量的分析引入非线性函数,需要满足以下几个条件:
事件发生的概率与 之间的非线性函数是单调函数,有良好的连续性,无断点。
该非线性函数的值域即事件发生的概率为(0,1)。
该非线性函数的定义域即自变量的取值为(-∞,+∞)。
不管是求参数,还是做拟合都要进行大量的计算。为了方便计算,该非线性函数最好处处可微,处处可导。
满足上述条件的函数有很多,通常选用 logistic 函数,因为其形状为 s 型,又称 Sigmoid 函数。
表达式为 φ(z)=
这个时候它实际上就是一个连续的函数。这个连续函数的特点就是它的值域就是外值是从0到1。最小也不会等于0只是接近于0,最大就是接近于1。它的值域理论上是可以从负无穷到正无穷的。如果它的取值是0和1,就选择这个。
另外还有一个双子型 Sigmoid 函数
如果它的取值是-1和1,就选择这个。
二、Logistic 函数的历史
18世纪末在研究人口规律的时候,发现人口变化率和人口基数是成一定比例的,是成正比的,即有:其中N(t)表示 t 时刻的人口总数,r是常数表示变化率。
解该微分方程有:,为初始值,它是一个单调递增的函数,数目无限增长。其实这个拟合函数和常识是相违背的。人口不可能一直无限地增长下去。
皮埃尔-弗朗索瓦-魏吕乐修正了该模型:,K也是常数,表示系统容量。他认为人口的变化是有一个容量极限的。上式即为 Logistic 方程,它表明随着随时间的增长并不断接近系统的容量K,的增长率是逐渐减小的。
令f(t)=,整理后的得到:=r*f*(1-f)
解出来之后f(t)=
令,r=1,就得到 f(t)=
三、Logistic 回归
使用 Logistic 函数将方程进行变换,因为 y 的取值最初的时候是一个分类变量,要么是0,要么是1。但如果想使用这个回归方程的话,这个预测值是个连续值,那需要对这个0和1进行处理,不再取0和1了,而是把 y 值当做取0和1的一个概率。这个概率是0和1之间的一个连续值。它本来是一个分类变量,想办法把它转变成一个连续变量。这个 y 不仅需要变成连续值,它也有一些特殊的要求,就是取值范围要在0到1之间。并且 x 的取值也不能限制,理论上是可以从负无穷到正无穷的。这个时候使用 Logistic 方程 y=来做一个处理,其中 z就等于 y 的取值。这样实际上就满足了 y 本身的取值就是0到1之间的概率值。最终预测的结果是某一个分类变量取值的概率。刚才也验证了 Logistic 函数它本身的一个性质,就是它处处可为连续的并且它的取值范围是0到1。自变量 x 的取值没有要求,是从负无穷到正无穷的,刚好完美契合了诉求。和自变量相关的项出现在了指数上,处理起来很不方便,这时通常对其进行对数变换。整理一下得到:
这个方程就取一个倒数,因为它是接近于0但不等于0。则
就是回归方程,只不过原来因变量的取值由单纯的 y 变成一个 。
假设某件事发生的概率是 p,则不发生的概率是1-p,称为该事件发生的几率(Odds),即某事件发生的概率和不发生的概率的比,也叫比值、比数或发生比。称 为 Logit 变换,从概率的角度来看: p(y=1/x)=p(y=0/x)=1-p(y=1/x)=
回归方程变为:Logit(y)=对 Logit(y) 而言,上式是线性回归的。本来自变量为分类量之前的回归方程,实际上它是不满足回归的前提条件的基本假设的。这个时候需要对它进行一个变换,因为是一个分类变量,就不能使用回归来做。分类变量就取两个值,要么是0,要么是1。如果想把它变成一个连续值,取某一个变量的值,取它等于1的概率。概率是0到1之间的连续值,教研究的对象。对概率值有一个要求,就是它的取值范围是0到1,必须对 x 没有限制,最好是一个连续函数没断点,就去找满足这些条件的函数,刚好找到 Logistic 函数和 Sigmoid 函数。它是满足回归方程的假设条件的。