逻辑回归(logisitic regression)

前言

    逻辑回归,又称逻辑斯蒂回归,与线性回归一样,都是线性模型家族的经典的分类方法。线性回归以及逻辑回归都属于广义线性模型。逻辑回归是基于线性模型进行实值预测,通过非线性函数(sigmoid函数)映射到0,1之间,来处理二分类任务。
   逻辑回归的目的是寻找一个非线性函数的最佳拟合参数,求解过程可以由最优化算法来完成。在优化算法中最常用的就是梯度上升或者下降(具体需要看目标函数的表达,一般情况下,求目标函数的最大可以转换为求目标函数取反后的最小值,使用梯度下降)算法,在梯度下降算法中,随机梯度下降算法与梯度下降算法的效果相当,但占用更少的计算资源。

逻辑回归模型

   1.逻辑斯蒂分布

      定义:设X是连续随机变量,X服从逻辑斯蒂分布是指X具有下列分布函数和密度函数:F(x)=P(Xx)=11+e(xμ)/γ F(x)=P(X \leq x)=\frac{1}{1+e^{-(x-\mu)/\gamma} }
f(x)=F(x)=e(xμ)/γγ(1+e(xμ)/γ)2f(x)=F'(x)=\frac{e^{-(x-\mu)/\gamma}}{\gamma(1+e^(x-\mu)/\gamma)^2}
       式中,μ\mu为位置参数,γ>0\gamma>0为形状参数。
       函数图像如下:
逻辑回归(logisitic regression)

   2.二项逻辑斯蒂回归模型

       一种分类模型,由条件概率分布P(YX)P(Y|X)表示,形式为参数化的逻辑斯蒂分布。随机变量X取值为    实数,随机变量Y取值为1或0,通过监督学习的方法来估计模型参数。
       二项逻辑斯蒂回归模型定义如下:
P(Y=1x)=ewx+b1+ewx+bP(Y=1|x)=\frac{e^{w\cdot x+b}}{1+e^{w\cdot x+b}}
P(Y=0x)=11+ewx+bP(Y=0|x)=\frac{1}{1+e^{w\cdot x+b}}
       这里,xRnx\in R^n是输入,Y0,1Y\in {0,1}是输出,wRnw\in R^nbRb\in R是参数,w称为权重向量,b称为偏    置,wxw\cdot x为w和x的内积。
       有时为了方便,把b扩充到w中,x用对应b的1扩充,即w=(w(1),w(2),...,w(n),b)Tw=(w^{(1)},w^{(2)},...,w^{(n)},b)^Tx=(x(1),x(2),...,x(n),1)Tx=(x^{(1)},x^{(2)},...,x^{(n)},1)^T。这时的逻辑斯蒂回归模型为:
P(Y=1x)=ewx1+ewxP(Y=1|x)=\frac{e^{w\cdot x}}{1+e^{w\cdot x}}
P(Y=0x)=11+ewxP(Y=0|x)=\frac{1}{1+e^{w\cdot x}}
       逻辑斯蒂回归模型的特点:
       一个事件的几率是指该事件发生的概率与该事件不发生的概率的比值。如果事件发生的概率是p,那么该事件发生的几率是p1p\frac{p}{1-p},该事件的对数几率是logit(p)=logp1plogit(p)=log\frac{p}{1-p}
       对逻辑斯蒂回归而言,就是logP(Y=1X)1P(Y=1X)=wxlog\frac{P(Y=1|X)}{1-P(Y=1|X)}=w\cdot x。这也展示了在逻辑斯蒂回归模型中,输出Y=1的对数几率是输入x的线性函数,或者说,输出Y=1的对数几率是由输入x的线性函数表示的模型,即逻辑斯蒂回归模型。
      以逻辑斯蒂回归模型的参数估计,是对目标函数为对数似然函数使用梯度下降,拟牛顿法等求解。
逻辑斯蒂回归模型的似然函数为:i=1N[π(xi)]yi[1π(xi)]1yi\prod_{i=1}^N[\pi(x_i)]^{y_i}[1-\pi(x_i)]^{1-y_i}
对数似然函数为:

L(w)=i=1N[yilogπ(xi)+(1yi)log(1π(xi))] L(w)=\sum_{i=1}^N[y_i log\pi(x_i)+(1-y_i)log(1-\pi(x_i))]
L(w)=i=1N[yilogπ(xi)1π(xi)+log(1π(xi))] L(w)=\sum_{i=1}^N\left[y_ilog\frac{\pi(x_i)}{1-\pi(x_i)}+log(1-\pi(x_i))\right]
L(w)=i=1N[yi(wxi)log(1+ewxi)] L(w)=\sum_{i=1}^N[y_i(w\cdot x_i)-log(1+e^{w\cdot x_i})] 其中P(Y=1x)=π(x),P(Y=0x)=1π(x)P(Y=1|x)=\pi (x), P(Y=0|x)=1-\pi(x)
L(w)L(w)求极大值,得到ww的估计值。
以似然函数为目标函数最优化问题通常采用迭代法求解。这时的目标函数是凸函数,具有很好的性质。
假设w的极大似然估计值是w^\hat{w},那么学习到的逻辑斯蒂回归模型为:
P(Y=1x)=ew^x1+ew^xP(Y=1|x)=\frac{e^{\hat{w}\cdot x}}{1+e^{\hat{w}\cdot x}}
P(Y=0x)=11+ew^xP(Y=0|x)=\frac{1}{1+e^{\hat{w}\cdot x}}

   3.多项逻辑斯蒂回归模型

      将二项逻辑斯蒂回归推广为多项逻辑斯蒂回归模型,用于多分类。假设离散型随机变量Y的取值集合是{1,2,3,…,K},那么多项逻辑斯蒂回归模型是:
P(Y=kx)=ewkx1+k=1K1ewkxk=1,2,...,K1P(Y=k|x)=\frac{e^{w_k\cdot x}}{1+\sum_{k=1}^{K-1}e^{w_k\cdot x}},k=1,2,...,K-1
P(Y=kx)=11+i=1K1ewkxP(Y=k|x)=\frac{1}{1+\sum_{i=1}^{K-1}e^{w_k\cdot x}}这里,xRn+1,wkRn+1x\in R^{n+1},w_k\in R^{n+1}

   4.梯度下降法

[待补充]

   5.迭代尺度法

[待补充]

   6.拟牛顿法

[待补充]

   7.极大似然估计

[待补充]

sklearn.linear_model.LogisticRegression参数详解

sklearn.linear_model.LogisticRegression(penalty=’l2’, dual=False, tol=0.0001, C=1.0, fit_intercept=True, intercept_scaling=1, class_weight=None, random_state=None, solver=’warn’, max_iter=100, multi_class=’warn’, verbose=0, warm_start=False, n_jobs=None)[source]
【待补充】

其他一些需要注意的问题

【待补充】

应用场景

【待补充】

CAML机器学习系列1:深入浅出ML之Regression家族
sklearn逻辑回归文档
《机器学习西瓜书》学习笔记——第三章_线性模型:对数几率回归(逻辑回归)
机器学习算法-逻辑回归