机器学习入门——逻辑回归

介绍

    逻辑回归(Logistic Regression) 作为最流行的一种机器学习算法,解决的是分类问题。
    逻辑回归通过将样本特征和样本发生的概率联系起来,由于概率是一个数,所以可以称之为一个概率问题。
    在传统的回归问题中,我们获得一个函数模型 f ( ) \mathit{f}() f(),将样本 x \mathit{x} x放入函数模型中后得到结果 y ^ \hat{y} y^,即 y ^ = f ( x ) \hat{y} = \mathit{f}(x) y^=f(x)。但在逻辑回归中我们通常是通过函数模型来得到一个概率 p ^ \hat{p} p^,即: p ^ = f ( x ) \hat{p} = \mathit{f}(x) p^=f(x),然后根据概率 p ^ \hat{p} p^来进行分类,举个例子,以概率0.5为分界:
y ^ = { 1 , p ^ ≥ 0.5 0 , p ^ ≤ 0.5 \hat{y}=\left\{ \begin{array}{rcl} 1, &&{\hat{p}\geq0.5}\\ 0, &&{\hat{p}\leq0.5} \end{array}\right. y^={1,0,p^0.5p^0.5
    1和0在我们实际问题里代表不同的选项。所以逻辑回归既可以看做事回归算法,也可以看做是分类算法。通常作为分类算法用,只可以解决二分类问题。(对于多分类的问题,我们可以使用小技巧来解决,详见:预留
    在传统的线性回归问题中,我们得到的 y ^ \hat{y} y^的取值一般是没有限制的,但在概率问题中,我们的概率只能在[0, 1]中取值,所以我们需要将式子 p ^ = f ( x ) = θ T ⋅ x b \hat{p} = \mathit{f}(x) = \theta^{T}\cdot\mathit{x}_b p^=f(x)=θTxb转换一下成为: p ^ = σ ( θ T ⋅ x b ) \hat{p} = \sigma(\theta^{T}\cdot\mathit{x}_b) p^=σ(θTxb)。其中 σ ( t ) \sigma(t) σ(t)称为Sigmoid函数: σ ( t ) = 1 1 + e − t \sigma(t)=\frac{1}{1 + e^{-t}} σ(t)=1+et1,函数的图像为:

    我们分析一下我们的Sigmoid函数,该函数的值域是(0, 1)。当 t > 0时,p<0.5;当t<0时, p<0.5。当t = 0 时,p = 0.5 。
    回到上式 p ^ = σ ( θ T ⋅ x b ) \hat{p} = \sigma(\theta^{T}\cdot\mathit{x}_b) p^=σ(θTxb)中将 σ ( t ) \sigma(t) σ(t)替换使公式变成:

p ^ = 1 1 + e − θ T ⋅ x b \hat{p} = \frac{1}{1 + e^{-\theta^{T}\cdot\mathit{x}_b}} p^=1+eθTxb1

    我们的问题也成为了:对于给定的样本数据集X,y,我们如何找到参数theta,使得用这样的方式,可以最大程度获得样本数据集X对应的分类输出y。

损失函数

    我们把损失函数定义为 c o s t cost cost,推理得到:
y ^ = { 1 , p ^ ≥ 0.5 0 , p ^ ≤ 0.5 c o s t = { 如 果 y = 1 , p 越 小 , c o s t 越 大 如 果 y = 0 , p 越 大 , c o s t 越 小 \hat{y}=\left\{ \begin{array}{rcl} 1, &amp;&amp;{\hat{p}\geq0.5}\\ 0, &amp;&amp;{\hat{p}\leq0.5} \end{array}\right. \qquad cost=\left\{ \begin{array}{rcl} 如果y=1,p越小,cost越大\\ 如果y=0,p越大,cost越小 \end{array}\right. y^={1,0,p^0.5p^0.5cost={y=1,p,costy=0,p,cost
我们可以用以下损失函数表示以上的关系:
y ^ = { − l o g ( p ^ ) i f y = 1 − l o g ( 1 − p ^ ) i f y = 0 ⟹ c o s t = − y l o g ( p ^ ) − ( 1 − y ) l o g ( 1 − p ^ ) ) \hat{y}=\left\{ \begin{array}{rcl} -log(\hat{p})&amp;&amp;{if}&amp;&amp;{y=1} \\ -log(1-\hat{p})&amp;&amp;{if}&amp;&amp;{y=0} \end{array}\right. \Longrightarrow cost=-ylog(\hat{p})-(1-y)log(1-\hat{p})) y^={log(p^)log(1p^)ifify=1y=0cost=ylog(p^)(1y)log(1p^))
J ( θ ) = − 1 m ∑ i = 1 m y ( i ) l o g ( p ^ ( i ) ) + ( 1 − y ( i ) ) l o g ( 1 − p ^ ( i ) ) J(\theta)=-\frac{1}{m}\sum^m_{i=1}y^{(i)}log(\hat p ^{(i)})+(1-y^{(i)})log(1-\hat p^{(i)}) J(θ)=m1i=1my(i)log(p^(i))+(1y(i))log(1p^(i))

函数图像如下所示:

上式没有公共解,我们只能使用梯度下降法求解。所以想要得到最优解我们需要求出该损失函数的梯度。
对上式求导得:
∇ J ( θ ) = 1 m ⋅ ( ∑ i = 1 m ( y ^ ( i ) − y ( i ) ) ∑ i = 1 m ( y ^ ( i ) − y ( i ) ) ⋅ X 1 ( i ) ∑ i = 1 m ( y ^ ( i ) − y ( i ) ) ⋅ X 2 ( i ) . . . ∑ i = 1 m ( y ^ ( i ) − y ( i ) ) ⋅ X n ( i ) ) = 1 m ⋅ X b T ⋅ ( σ ( X b θ ) − y ) \nabla J(\theta)=\frac{1}{m}\cdot \begin{pmatrix} \sum_{i=1}^{m}(\hat{y}^{(i)}-y^{(i)})\\ \sum_{i=1}^{m}(\hat{y}^{(i)}-y^{(i)})\cdot X_{1}^{(i)}\\ \sum_{i=1}^{m}(\hat{y}^{(i)}-y^{(i)})\cdot X_{2}^{(i)}\\ ...\\ \sum_{i=1}^{m}(\hat{y}^{(i)}-y^{(i)})\cdot X_{n}^{(i)}\\ \end{pmatrix}=\frac{1}{m}\cdot X^T_b\cdot (\sigma(X_b\theta)-y) J(θ)=m1i=1m(y^(i)y(i))i=1m(y^(i)y(i))X1(i)i=1m(y^(i)y(i))X2(i)...i=1m(y^(i)y(i))Xn(i)=m1XbT(σ(Xbθ)y)

决策边界

还是以上面的例子( p ^ = 1 1 + e − θ T ⋅ x b \hat{p} = \frac{1}{1 + e^{-\theta^{T}\cdot\mathit{x}_b}} p^=1+eθTxb1)为例:
y ^ = { 1 , p ^ ≥ 0.5 θ T ⋅ x b ≥ 0 0 , p ^ ≤ 0.5 θ T ⋅ x b ≤ 0 决 策 边 界 : θ T ⋅ x b = 0 \hat{y}=\left\{ \begin{array}{rcl} 1, &amp;&amp;{\hat{p}\geq0.5}&amp;&amp;\theta^T\cdot x_b\geq0\\ 0, &amp;&amp;{\hat{p}\leq0.5}&amp;&amp;\theta^T\cdot x_b\leq0 \end{array}\right. 决策边界:\theta^T\cdot x_b=0 y^={1,0,p^0.5p^0.5θTxb0θTxb0θTxb=0
θ T ⋅ x b = 0 \theta^T\cdot x_b=0 θTxb=0两个向量相乘得到的时一条直线,我们将这条直线成为该逻辑回归算法的决策边界。

持续更新…
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值