Classification----logisitic regression

前言

在学习和实践了线性回归模型后,我们终于来到了下一站------分类问题,分类问题中经典的算法称为逻辑回归.

逻辑回归模型引入

给定一些样本以后,我们首先需要选用一个合适的样本估测函数去估计样本值,首先如果使用线性函数去模拟可以吗?现在想要预测肿瘤良性与肿瘤大小的关系,看下面这些样本在坐标系上的分布.
这里写图片描述
此时使用线性回归可以得到如下图形:
这里写图片描述
若使用线性函数模拟,在本次模拟中,根据下列函数判定,模拟效果还不错:
y = { 1 , if  p r e d i c t _ r e s u l t ≥ 0.5 0 , if  p r e d i c t _ r e s u l t &lt; 0.5 y= \begin{cases} 1, &amp; \text{if $predict\_result\geq0.5$} \\ 0, &amp; \text{if $predict\_result&lt;0.5$} \end{cases} y={1,0,if predict_result0.5if predict_result<0.5
可以在图像中看出,黄线左侧肿瘤预测为良性,右侧预测为恶性,目前看来一切都很正常,那我们再加入一个样本(18,1),得到的结果如下图:
这里写图片描述
预测的准确率低的离谱,这就说明在分类问题中,运用线性回归预测是不科学的,可能存在某些数据导致预测很差,那么,我们需要构造一个合理的预测函数,这个预测函数h的值最好能够满足 0 &lt; h ( x ) &lt; 1 0&lt;h(x)&lt;1 0<h(x)<1,有一个函数完美的契合了这样的条件------sigmoid function.

sigmoid function------预测函数

这个函数表达式是这样的:
ϕ ( z ) = 1 1 + e − z \phi(z)=\frac {1}{1+e^{-z}} ϕ(z)=1+ez1
它的图像是这样的:
这里写图片描述
从图像上可以看出,当z<0时, ϕ &lt; 0.5 \phi&lt;0.5 ϕ<0.5,z>0时, ϕ &gt; 0.5 \phi&gt;0.5 ϕ>0.5,并且它是连续的,位于0和1之间,我们将 z = θ T x z=\theta^Tx z=θTx代入函数,就可以得到满足条件的预测函数:
h θ ( x ) = 1 1 + e − θ T x h_\theta(x)=\frac{1}{1+e^{-\theta^T x}} hθ(x)=1+eθTx1
该预测函数的值可以看成类1的后验估计,即h的值可以表示预测类为1的概率.得到预测函数之后,接下来需要定义代价函数

cost function------代价函数

由于刚刚学习了线性回归,我们很自然的想到利用线性回归中的代价函数,即:
J ( θ ) = 1 2 m ∑ i = 1 n ( h θ x ( i ) − y ( − i ) ) 2 J(\theta)=\frac{1}{2m}\sum_{i=1}^n(h_\theta x^{(i)}-y^{(-i)})^2 J(θ)=2m1i=1n(hθx(i)y(i))2
但是这样定义的代价函数对梯度下降求极值是不友好的,因为它是非凸函数,即存在许多极小值,我们知道样本服从的是0-1分布,而预测函数h为类1的后验估计,那么可以表示为如下形式: h θ ( x ) = 1 1 + e − θ T x = P ( y = 1 ∣ x ; θ ) h_\theta(x)=\frac{1}{1+e^{-\theta^T x}}=P(y=1|x;\theta) hθ(x)=1+eθTx1=P(y=1x;θ)
类0的后验估计则为: 1 − h θ ( x ) = 1 − 1 1 + e − θ T x = P ( y = 0 ∣ x ; θ ) 1-h_\theta(x)=1-\frac{1}{1+e^{-\theta^T x}}=P(y=0|x;\theta) 1hθ(x)=11+eθTx1=P(y=0x;θ)
由于0-1分布的似然函数的形式如下:
J ( θ ) = ∏ i = 1 n P ( y = 1 ∣ x i ; θ ) y i P ( y = 0 ∣ x ; θ ) ( 1 − y i ) J(\theta)=\prod_{i=1}^nP(y=1|x^i;\theta)^{y^i}P(y=0|x;\theta)^{(1-y^i)} J(θ)=i=1nP(y=1xi;θ)yiP(y=0x;θ)(1yi)
我们可以代入 h θ x h_\theta x hθx,可以得到:
J ( θ ) = ∏ i = 1 n h θ x ( i ) y i ( 1 − h θ x ( i ) ) 1 − y i J(\theta)=\prod_{i=1}^nh_\theta x_{(i)}^{y^i}(1-h_\theta x_{(i)})^{1-y^i} J(θ)=i=1nhθx(i)yi(1hθx(i))1yi
取对数得到:
l o g J ( θ ) = ∑ i = 1 n y i l o g h θ x ( i ) + ( 1 − y i ) l o g ( 1 − h θ x ( i ) ) logJ(\theta)=\sum_{i=1}^ny^ilogh_\theta x_{(i)}+(1-y^i)log(1-h_\theta x_{(i)}) logJ(θ)=i=1nyiloghθx(i)+(1yi)log(1hθx(i))
我们将累加项提取出来分析一下:
y i l o g h θ x ( i ) + ( 1 − y i ) l o g ( 1 − h θ x ( i ) ) y^ilogh_\theta x_{(i)}+(1-y^i)log(1-h_\theta x_{(i)}) yiloghθx(i)+(1yi)log(1hθx(i))

梯度下降

由于对数似然函数求导是要求J的最大值,需要使用梯度上升进行参数更新,若使用梯度下降,我们只需在前面加上负号,即: − y i l o g h θ x ( i ) − ( 1 − y i ) l o g ( 1 − h θ x ( i ) ) -y^ilogh_\theta x_{(i)}-(1-y^i)log(1-h_\theta x_{(i)}) yiloghθx(i)(1yi)log(1hθx(i))
若y=1,若预测值为0,那么可以看出该项值趋于无穷大,即代价值非常大,若预测值为1,那么该项值为0,即代价值为0,若y=0,与之相反,可以看出该项很契合代价值的评估.也就是说该似然函数可以当做逻辑回归过程中的代价函数.
对似然函数求偏导,我们得到梯度下降过程中 θ \theta θ遵循的变化公式:
θ n e w = θ o l d + α ∑ i = 1 n ( y i − h θ x i ) x j i \theta_{new}=\theta_{old}+\alpha\sum_{i=1}^n(y^i-h_\theta x^i)x_j^i θnew=θold+αi=1n(yihθxi)xji

与线性回归的比较

  • 当特征值相差较大时,逻辑回归也需要进行特征缩放.
  • 线性回归样本总体满足高斯分布,逻辑回归满足伯努利分布即0-1分布.
  • 两者其实在梯度下降过程中都使用了最大似然思想.只不过由于满足的分布不同,导致似然函数有差异.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值