ML---逻辑回归

1. 用途

分类算法不是回归算法,用于二分类或多分类。回归模型的 Y Y Y是连续的,分类模型的 Y Y Y是离散的。

2. 模型形式

h θ ( X ) = 1 1 + e − X θ h_{\theta}(X)=\frac {1}{1+e^{-X\theta}} hθ(X)=1+eXθ1

  • X X X:模型的特征输入,维度为 m × n m\times n m×n,m个样本.
  • h θ ( x ) h_{\theta}(x) hθ(x):模型输出,可以理解为某一分类的概率大小,维度为 m × 1 m\times 1 m×1.
  • θ \theta θ:模型要求的参数,维度为 n × 1 n\times 1 n×1.

3. 损失函数

P ( y = 1 ∣ x , θ ) = h θ ( x ) P(y=1|x,\theta)=h_{\theta}(x) P(y=1x,θ)=hθ(x) P ( y = 0 ∣ x , θ ) = 1 − h θ ( x ) P(y=0|x,\theta)=1-h_{\theta}(x) P(y=0x,θ)=1hθ(x),那么可得 y y y的概率分布函数:
P ( y ∣ x , θ ) = ( h θ ( x ) ) y ( 1 − h θ ( x ) ) ( 1 − y ) P(y|x,\theta)=(h_{\theta}(x))^y (1-h_{\theta}(x))^{(1-y)} P(yx,θ)=(hθ(x))y(1hθ(x))(1y)
此时,可以利用“最大似然函数”的思想求解参数 θ \theta θ
L ( θ ) = ∏ i = 1 m ( h θ ( x ( i ) ) ) y ( i ) ( 1 − h θ ( x ( i ) ) ) ( 1 − y ( i ) ) L(\theta)=\prod_{i=1}^{m} (h_{\theta}(x^{(i)}))^{y^{(i)}} (1-h_{\theta}(x^{(i)}))^{(1-y^{(i)})} L(θ)=i=1m(hθ(x(i)))y(i)(1hθ(x(i)))(1y(i))
为了方便求解,对最大似然函数取对数得损失函数为:
J ( θ ) = − l o g L ( θ ) = − ∑ i = 1 m [ y ( i ) l o g h θ ( x ( i ) ) + ( 1 − y ( i ) ) l o g ( 1 − h θ ( x ( i ) ) ) ] J(\theta)=-logL(\theta)=-\sum_{i=1}^{m}[y^{(i)}logh_{\theta}(x^{(i)})+(1-y^{(i)})log(1-h_{\theta}(x^{(i)}))] J(θ)=logL(θ)=i=1m[y(i)loghθ(x(i))+(1y(i))log(1hθ(x(i)))]
其矩阵形式 J ( θ ) = − Y T l o g h θ ( X ) − ( E − Y ) T l o g ( E − h θ ( X ) ) J(\theta)=−Y^Tlogh_{\theta}(X)−(E−Y)^Tlog(E−h_{\theta}(X)) J(θ)=YTloghθ(X)(EY)Tlog(Ehθ(X))

4. 损失函数优化

使用梯度下降法进行优化(本身应是使用梯度上升法最大化 L ( θ ) L(\theta) L(θ),但已对对数似然函数取反,因此使用梯度下降法最小化损失函数):
∂ J ( θ ) ∂ θ = X T ( h θ ( X ) − Y ) \frac{\partial J(\theta)}{\partial \theta}=X^T(h_{\theta}(X)-Y) θJ(θ)=XT(hθ(X)Y)
∂ J ( θ ) ∂ θ = ( x ( i ) ) T ( h θ ( x ( i ) ) − y ( i ) ) \frac{\partial J(\theta)}{\partial \theta}=(x^{(i)})^T(h_{\theta}(x^{(i)})-y^{(i)}) θJ(θ)=(x(i))T(hθ(x(i))y(i))
那么, θ \theta θ每一步的迭代公式为:
θ = θ − η X T ( h θ ( X ) − Y ) \theta=\theta-\eta X^T(h_{\theta}(X)-Y) θ=θηXT(hθ(X)Y)或者 θ = θ − η ( x ( i ) ) T ( h θ ( x ( i ) ) − y ( i ) ) \theta=\theta-\eta (x^{(i)})^T(h_{\theta}(x^{(i)})-y^{(i)}) θ=θη(x(i))T(hθ(x(i))y(i))

5. 损失函数正则化

为防止过拟合,需要对损失函数进行正则化。

  • 二元逻辑回归的L1正则化:
    J ( θ ) = − ∑ i = 1 m [ y ( i ) l o g h θ ( x ( i ) ) + ( 1 − y ( i ) ) l o g ( 1 − h θ ( x ( i ) ) ) ] + α ∣ ∣ θ ∣ ∣ 1 J(\theta)=-\sum_{i=1}^{m}[y^{(i)}logh_{\theta}(x^{(i)})+(1-y^{(i)})log(1-h_{\theta}(x^{(i)}))] +\alpha||\theta||_1 J(θ)=i=1m[y(i)loghθ(x(i))+(1y(i))log(1hθ(x(i)))]+αθ1
    ∣ ∣ θ ∣ ∣ 1 ||\theta||_1 θ1 θ \theta θ L 1 L_1 L1范数。
  • 二元逻辑回归的L2正则化:
    J ( θ ) = − ∑ i = 1 m [ y ( i ) l o g h θ ( x ( i ) ) + ( 1 − y ( i ) ) l o g ( 1 − h θ ( x ( i ) ) ) ] + 1 2 α ∣ ∣ θ ∣ ∣ 2 2 J(\theta)=-\sum_{i=1}^{m}[y^{(i)}logh_{\theta}(x^{(i)})+(1-y^{(i)})log(1-h_{\theta}(x^{(i)}))] +\frac{1}{2}\alpha||\theta||_2^2 J(θ)=i=1m[y(i)loghθ(x(i))+(1y(i))log(1hθ(x(i)))]+21αθ22
    ∣ ∣ θ ∣ ∣ 2 ||\theta||_2 θ2 θ \theta θ L 2 L_2 L2范数。

6. 多元逻辑回归

对于多分类问题逻辑回归的处理方式有:

  • one-vs-rest,OvR
  • Many-vs-Many,MvM
    (1) 最常用的是One-Vs-One(OvO),OvO是MvM的特例,每次选择两类样本来做二元逻辑回归。
    (2) MvM,类似softmax:
    P ( y = k ∣ x , θ ) = e x θ k 1 + ∑ t = 1 K − 1 e x θ t P(y=k|x,\theta)=\frac{e^{x\theta_k}}{1+\sum_{t=1}^{K-1}e^{x\theta_t}} P(y=kx,θ)=1+t=1K1exθtexθk k = 1 , … , K − 1 k=1,\dots,K-1 k=1,,K1
    P ( y = K ∣ x , θ ) = 1 1 + ∑ t = 1 K − 1 e x θ t P(y=K|x,\theta)=\frac{1}{1+\sum_{t=1}^{K-1}e^{x\theta_t}} P(y=Kx,θ)=1+t=1K1exθt1
    以上两式满足 ∑ i = 1 K P ( y = i ∣ x , θ ) = 1 \sum_{i=1}^{K}P(y=i|x,\theta)=1 i=1KP(y=ix,θ)=1

引用
https://www.cnblogs.com/pinard/p/6029432.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值