关于逻辑回归的思考
1.问题的引出

问题是:

- 如果出现
断崖式的变化,线性拟合的效果就不是很好。
- 可能需要一个会产生
阶跃且连续的函数来进行拟合
2.sigmod函数
g(z)=1+e−z1=1+ezez

- 自变量z的范围是(−∞,+∞),值域的范围g是(0,1)
- 一个很自然的想法就是,以某一个函数z作为g的输入,再将g对应的输出作为
概率输出,通过设定阈值,将结果进行分类(二分类,(0-1))。
- 那么关于数据x(或X),先构造什么样的z呢?答案是任意,只要是能够符合数据的就是合理的。所以z的选取不是固定的!
例1

-
这个分类自然想到线性模型
-
大致的设计思路:
- z=θ0+θ1∗x1+θ2∗x2
- g(z)=1+e−z1
- 通过g的输出和设定的阈值进行比较,得出分类结果。
- 上述未知的量时参数Θ,这个才怎么求呢?下面再说。
例2

- 这个自然想到一个分类边界是圆(
分非线性模型)
-

- 令z=θ0+θ1∗x1+θ2∗x2+θ3∗x12+θ4∗x42。(这里不需要x1∗x2的交叉项)
- 令z=0,此时正是圆的边界。对于要分类的点带入z中,输出结果>0或<0(二者取其一)
- 以后的分析和上述例1相同。(sigmod函数的作用,阈值的选取等,均一致)
- 大致的设计思路:
- z=θ0+θ1∗x1+θ2∗x2+θ3∗x12+θ4∗x42
- g(z)=1+e−z1
- 通过g的输出和设定的阈值进行比较,得出分类结果。
- 上述未知的量时参数Θ,这个才怎么求呢?下面再说。
对比发现
- 对于上述例1和例2的比较,逻辑回归的整体设计思路大致相同。要解决的两个问题是:
-
如何确定一开始的z?,从结果上看,线性模型和非线性模型均可。并没有定法,这个z的选取得结合具体的X分布进行选择。
- 注:X的分布在高维的时候判定本身就是一个难题,所以z的确定也不是一件容易的事情。
- 假定已经确定了z的函数表达(但其中的参数Θ未知),该如何求参数Θ?
- 求参数的方法,基本上会针对目标函数(损失含糊)采用迭代法(解析解太困难了,有时候甚至不可行)
- ==问题又变成了:针对$sigmod函数 $找一个什么样的目标函数(损失函数)?==这就是下面要说的事了!
逻辑回归是如何做到分类的?
- 针对逻辑回归,其中的sigmod函数和对应的损失函数的确定,是该方法的精髓。
1.模型
假定已知函数zθ(x),那么将其作为gidmod函数的输入,g(z)。那么有一个假设空间hθ(x)。
已知zθ(x);g(z)=1+e−z1
hθ(x)=g(zθ(x))=1+ezθ(x)1
其中:hθ(x)∈(0,1)。这个是设计损失函数的关键。
2.策略

损失函数
-
对于一个样本损失
cost(hθ(x),y)={−log(hθ(x)),y=1−log(1−hθ(x)),y=0
- 解释:
- 在已知分类信息y=1时,希望hθ(x)的值越接近1最好,这样损失才更小。假设,在y=1时,但是分类错了,即hθ(x)的值相对来说可能更接近于0(从右侧趋近于0),此时−log(hθ(x))的值会变大,意味着损失增大,而目标就是来最小化这个损失。所有此时针对一个样本在y=1时设计的损失函数是合理的。
- 在已知分类信息y=0时,希望hθ(x)的值越接近0最好,这样损失−log(1−hθ(x))才更小。假设,在y=0时,但是分类错了,即hθ(x)的值相对来说可能更接近于1(从左侧趋近1),此时−log(1−hθ(x))的值会变大,意味着损失增大,而目标就是来最小化这个损失。所有此时针对一个样本在y=0时设计的损失函数是合理的。
- 但是上述的算是有一个问题,那就它是分段函数,不利于优化,所以有了下面的合并。
-
技巧上的合并(背后有最大熵理论模型,对数最大似然估计)
cost(hθ(x(i),y(i))=−(y(i)∗log(hθ(x(i))+(1−j(i))∗log(1−hθx(i))
-
损失函数:
-
经验风险
J(θ)=−m1i=1∑m(y(i)∗log(hθ(x(i))+(1−j(i))∗log(1−hθx(i))
-
结构风险
J(θ)=−m1i=1∑m(y(i)∗log(hθ(x(i))+(1−j(i))∗log(1−hθx(i))+λj=0∑nθj2
3.算法
对于g(z)=1+e−z1的求导,
dzd(g(z))=−(1+e−z)−2∗e−z∗(−1)=1+e−z1∗1+e−ze−z=1+e−z1∗(1−1+e−z1)=g(z)∗(1−g(z))
所以
∂θj∂g=∂z∂g∂θj∂z=g(z)∗(1−g(z))∗∂θj∂z
特别地,当zθ(x(i)=θTx(i),得到θj∂z=xj(i)。
此时,
∂θj∂g=g(z)∗(1−g(z))∗∂θj∂z=g(z)∗(1−g(z))∗xj(i)
采用梯度下降算法求解参数Θ
θj:=θj−α∂θj∂J(θ),(j=0⋯n)
∂θj∂J(θ)=∂θj∂(−m1i=1∑m(y(i)∗log(hθ(x(i))+(1−j(i))∗log(1−hθx(i)))⋯⋯=−m1i=1∑m(y(i)−g(θTx(i)))∗xj(i)
说明:
总结:
- 逻辑回归可以将
连续值通过sigmod函数+阈值限定转为离散值问题(二分类问题)
-
sigmod函数的使用
- 对数最大似然函数
- 矢量下求导
参见:
统计学习方法
机器学习实战
https://blog.csdn.net/qq_38923076/article/details/82925183