机器学习算法——逻辑回归

1. 逻辑回归简介

线性回归的模型是求出真实值Y和输入样本的特征X之间的线性关系系数 θ \theta θ,最终求得线性回归模型 Y = X θ Y=X\theta Y=Xθ.当给出新的特征时, 我们希能够带入到 Y = X θ Y=X\theta Y=Xθ中,求出预测值Y是连续值。归为回归模型。
当Y是离散值时,我们就需要对线性回归模型的Y做一次函数变换,将连续值转换成离散值。这时我们就引入逻辑回归。
逻辑回归(LogisticRegression)也叫对数几率回归。
机器学习算法可以分为回归算法和分类算法,逻辑回归算法并不是回归算法,仅为在线性回归的基础上,套用了一个逻辑函数 ,用来解决分类问题,因此将它归为分类算法。

2. 逻辑回归模型

逻辑回归可以解决二分类问题,也可以解决多分类问题。这里先讲述二分类问题,多分类问题待补充。
在逻辑回归(二分类)中,我们一般用sigmoid函数将连续值转换成离散值,实现二分类。
为什么要用sigmoid函数作为假设函数

2.1 假设函数

用sigmoid函数作为假设函数

sigmoid函数形式如下:

(1) g ( z ) = 1 1 + e − z \tag{1}g(z)=\frac{1}{1+e^{-z}} g(z)=1+ez1(1)

sigmoid函数的导数形式如下:
(2) g ′ ( z ) = g ( z ) ( 1 − g ( z ) ) = e − z ( 1 + e ( − z ) ) 2 \tag{2}g^{'}(z) = g(z)(1-g(z))=\frac{e^{-z}}{(1+e^{(-z)})^{2}} g(z)=g(z)(1g(z))=(1+e(z))2ez(2)

sigmoid函数图像:

sigmoid函数图像
sigmoid函数的性质:
x > 0 x>0 x>0时, y y y趋于1;
x = 0 x=0 x=0时, y = 0.5 y=0.5 y=0.5
x &lt; 0 x&lt;0 x<0时, y y y趋于0;

数据集
(3) Y = ( y 1 y 2 ⋯ y i ) \tag{3} Y=\begin{pmatrix} &amp;y^1\\ &amp;y^2\\ &amp;\cdots\\ &amp;y^i \end{pmatrix} Y=y1y2yi(3)
(3) X = ( x 1 1 , x 2 1 , x 3 1 , ⋯ &ThinSpace; , x n 1 x 1 2 , x 2 2 , x 3 2 , ⋯ x n 2 ⋯ x 1 i , x 2 i , x 3 i , ⋯ x n i ) \begin{aligned} \tag{3}X=\begin{pmatrix} &amp;x_1^1, &amp;x_2^1, &amp;x_3^1,&amp;\cdots, &amp;x_n^1 \\ &amp;x_1^2, &amp;x_2^2, &amp;x_3^2,&amp;\cdots &amp;x_n^2 \\ &amp;\cdots\\ &amp;x_1^i, &amp;x_2^i, &amp;x_3^i,&amp;\cdots &amp;x_n^i \end{pmatrix} \end{aligned} X=x11,x12,x1i,x21,x22,x2i,x31,x32,x3i,,xn1xn2xni(3)
X b = ( 1 , x 1 1 , x 2 1 , x 3 1 , ⋯ &ThinSpace; , x n 1 1 , x 1 2 , x 2 2 x 3 2 , ⋯ x n 2 ⋯ 1 , x 1 i , x 2 i , x 3 i ⋯ x n i ) \begin{aligned} X_b= \begin{pmatrix} &amp;1,&amp;x_1^1, &amp;x_2^1, &amp;x_3^1,&amp;\cdots, &amp;x_n^1 \\ &amp;1,&amp;x_1^2, &amp;x_2^2 &amp;x_3^2,&amp;\cdots &amp;x_n^2 \\ &amp;\cdots\\ &amp;1,&amp;x_1^i, &amp;x_2^i, &amp;x_3^i&amp;\cdots &amp;x_n^i \end{pmatrix} \end{aligned} Xb=1,1,1,x11,x12,x1i,x21,x22x2i,x31,x32,x3i,xn1xn2xni
Y = X b θ Y=X_b\theta Y=Xbθ
最终要求的模型参数 (4) θ = ( θ 0 θ 1 ⋯ θ n ) \tag{4} \theta=\begin{pmatrix} &amp;\theta_0 \\ &amp;\theta_1\\ &amp;\cdots\\ &amp;\theta_n \end{pmatrix} θ=θ0θ1θn(4)

θ 0 为 截 距 {\theta_0为截距} θ0
z = θ 0 + θ 1 x 1 + θ 2 x 2 + ⋯ + θ n x n = X i θ z=\theta_0+\theta_1x_1+\theta_2x_2+\cdots +\theta_nx_n=X^i\theta z=θ0+θ1x1+θ2x2++θnxn=Xiθ得:
构造假设函数,假设数据服从伯努利分布

(5) p ^ = h θ ( x ) = 1 1 + e − z = 1 1 + e − X i θ \tag{5}\hat p=h_{\theta}(x)=\frac{1}{1+e^{-z}}=\frac{1}{1+e^{-X^i\theta}} p^=hθ(x)=1+ez1=1+eXiθ1(5)
y = { 1 p ^ ⩾ 0.5 , 即 X i θ ⩾ 0 0 p ^ &lt; 0.5 , 即 X i θ &lt; 0 y = \begin{cases} 1 &amp; \hat p \geqslant0.5 , 即 X^i\theta\geqslant0 \\ 0 &amp; \hat p&lt;0.5, 即X^i\theta&lt;0 \end{cases} y={10p^0.5,Xiθ0p^<0.5,Xiθ<0
h θ ( x ) ∈ [ 0 , 1 ] h_\theta(x)∈[0,1] hθ(x)[0,1],假设 h θ ( x ) h_{\theta}(x) hθ(x)是样本 x x x为正例的可能性, 1 − h θ ( x ) 1-h_{\theta}(x) 1hθ(x)是样本 x x x为反例的可能性

正例:( y = 1 y=1 y=1): P ( y = 1 ∣ x ; θ ) = h θ ( x ) = 1 1 + e − X i θ P(y=1|x;\theta)=h_{\theta}(x)=\frac{1}{1+e^{-X^i\theta}} P(y=1xθ)=hθ(x)=1+eXiθ1
反例:( y = 0 y=0 y=0): P ( y = 0 ∣ x ; θ ) = 1 − h θ ( x ) = 1 − 1 1 + e − X i θ P(y=0|x;\theta)=1-h_{\theta}(x)=1-\frac{1}{1+e^{-X^i\theta}} P(y=0xθ)=1hθ(x)=11+eXiθ1

两者的比值对数称为对数几率: l n h θ ( x ) 1 − h θ ( x ) ln\frac{h_{\theta}(x)}{1-h_{\theta}(x)} ln1hθ(x)hθ(x)
决策边界:
X i θ = 0.5 X^i\theta = 0.5 Xiθ=0.5

  • 如果X有两个特征
  • θ 0 + θ 1 x 1 + θ 2 x 2 = 0 \theta_0+\theta_1x_1+\theta_2x_2=0 θ0+θ1x1+θ2x2=0
  • x 2 = − θ 0 − θ 1 x 1 θ 2 x_2=\frac{-\theta_0-\theta_1x_1}{\theta_2} x2=θ2θ0θ1x1

2.2 损失函数推导

损失函数是基于极大似然估计 得到的

  1. 将上述概率合并,得: 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
  2. 构造逻辑回归模型的似然函数为: (7) L ( θ ) = ∏ i = 1 m p ( y = 1 ∣ x i ) y ( i ) p ( y = 0 ∣ x i ) 1 − y ( i ) \tag{7}L(\theta)= \prod_{i=1}^{m}p(y=1|x_i)^{y^{(i)}}p(y=0|x_i)^{1-y^{(i)}} L(θ)=i=1mp(y=1xi)y(i)p(y=0xi)1y(i)(7) l ( θ ) l(\theta) l(θ)为样本的似然函数,有 θ ∗ \theta^{*} θ使得 l ( θ ) l(\theta) l(θ)的取值最大,那么 θ ∗ \theta^{*} θ就叫做参数 θ \theta θ的极大似然估计值
  3. 对数似然函数: (8) l ( θ ) = ∑ i = 1 m [ y ( i ) l n p ( y = 1 ∣ x i ) + ( 1 − y ( i ) ) l n p ( y = 0 ∣ x i ) ] \tag{8}l(\theta)=\sum_{i=1}^{m}[y^{(i)}lnp(y=1|x_i)+(1-y^{(i)})lnp(y=0|x_i)] l(θ)=i=1m[y(i)lnp(y=1xi)+(1y(i))lnp(y=0xi)](8)化简
    l ( θ ) = ∑ i = 1 m [ y ( i ) l n h θ ( x ) + ( 1 − y ( i ) ) l n ( 1 − h θ ( x ) ) ] l(\theta)=\sum_{i=1}^{m}[y^{(i)}lnh_{\theta}(x)+(1-y^{(i)})ln(1-h_{\theta}(x))] l(θ)=i=1m[y(i)lnhθ(x)+(1y(i))ln(1hθ(x))]
    令每个样本属于其真实标记的概率越大越好, l ( θ ) l(\theta) l(θ)是高阶连续可到的凸函数,

取对数的原因:
根据前面你的似然函数公式,是一堆的数字相乘,这种算法求导会非常麻烦,而取对数是一种很方便的手段,由于ln对数属于单调递增函数,因此不会改变极值点,由于对数的计算法则: l n a b = b l n a , l n a b = l n a + l n b lna^b=blna,lnab=lna+lnb lnab=blna,lnab=lna+lnb,这样求导就很方便了。

2.3 损失函数

求最大似然函数,就是损失函数(对似然函数先取负号)最小化。所以加个负号就成了损失函数;最小化损失函数可以梯度下降法求解。
除以样本数m —— 数量越多误差越大,所以平滑一下
(9) J ( θ ) = − 1 m l ( θ ) = − 1 m ∑ i = 1 m [ y ( i ) l n h θ ( x ) + ( 1 − y ( i ) ) l n ( 1 − h θ ( x ) ) ] = − 1 m ∑ i = 1 m [ y ( i ) l o g ( p ^ ) + ( 1 − y ( i ) ) l o g ( 1 − p ^ ) ] \tag{9} \begin{aligned} &amp;J(\theta)=-\frac{1}{m}l(\theta)\\ &amp;=-\frac{1}{m}\sum_{i=1}^{m}[y^{(i)}lnh_{\theta}(x)+(1-y^{(i)})ln(1-h_{\theta}(x))]\\ &amp;=-\frac{1}{m}\sum_{i=1}^{m}[y^{(i)}log(\hat p)+(1-y^{(i)})log(1-\hat p)] \end{aligned} J(θ)=m1l(θ)=m1i=1m[y(i)lnhθ(x)+(1y(i))ln(1hθ(x))]=m1i=1m[y(i)log(p^)+(1y(i))log(1p^)](9)

模型求解

模型求解的过程实际上就是求损失函数最小时的参数 θ \theta θ,求解的方法有梯度下降法,坐标轴下降法,牛顿法等,这里用梯度下降法推导!!!

  1. 对损失函数求导 (10) ▽ J ( θ ) = ( ∂ J ( θ ) ∂ θ 0 ∂ J ( θ ) ∂ θ 1 ⋯ ∂ J ( θ ) ∂ θ n ) \tag{10}\triangledown J(\theta)=\begin{pmatrix} \frac{\partial J(\theta)}{\partial \theta_0}\\ \frac{\partial J(\theta)}{\partial \theta_1}\\ \cdots\\ \frac{\partial J(\theta)}{\partial \theta_n}\\ \end{pmatrix} J(θ)=θ0J(θ)θ1J(θ)θnJ(θ)(10)
  2. p ^ \hat {p} p^求导 (10) p ^ ′ = h θ ′ ( x ) = e − X i θ ( 1 + e ( − X i θ ) ) 2 \tag{10}\hat {p}^{&#x27;}=h_{\theta}^{&#x27;}(x) = \frac{e^{-X^i\theta}}{(1+e^{(-X^i\theta)})^{2}} p^=hθ(x)=(1+e(Xiθ))2eXiθ(10)
  3. 对 l o g [ h θ ( x i ) ] 求 导 对log[h_\theta(x^i)]求导 log[hθ(xi)] (12) l o g [ h θ ( x i ) ] ′ = 1 h θ ( x i ) ⋅ h θ ( x i ) ′ = ( 1 + e − X i θ ) ( 1 + e − X i θ ) − 2 ⋅ e − X i θ = ( 1 + e − X i θ ) − 1 ⋅ e − X i θ = e − X i θ 1 + e − X i θ = 1 − 1 1 + e − X i θ = 1 − h θ ( x i ) \tag{12}\begin{aligned} &amp;log[h_\theta(x^i)]^{&#x27;}\\ &amp;=\frac {1}{ h_\theta(x^i)}·h_\theta(x^i)^{&#x27;}\\ &amp;= (1+e^{-X^i\theta})(1+e^{-X^i\theta})^{-2}·e^{-X^i\theta}\\ &amp;=(1+e^{-X^i\theta})^{-1}·e^{-X^i\theta}\\ &amp;=\frac{e^{-X^i\theta}}{1+e^{-X^i\theta}}\\ &amp;=1-\frac{1}{1+e^{-X^i\theta}}\\ &amp;=1-h_\theta(x^i) \end{aligned} log[hθ(xi)]=hθ(xi)1hθ(xi)=(1+eXiθ)(1+eXiθ)2eXiθ=(1+eXiθ)1eXiθ=1+eXiθeXiθ=11+eXiθ1=1hθ(xi)(12)
  4. 对 l o g [ 1 − h θ ( x i ) ] 求 导 对log[1-h_\theta(x^i)]求导 log[1hθ(xi)]
    (13) l o g [ 1 − h θ ( x i ) ] ′ = 1 1 − h θ ( x i ) ⋅ ( − 1 ) ⋅ h θ ( x i ) ′ = − 1 + e − x i e − x i ⋅ ( 1 + e − x i ) − 2 ⋅ e − x i = − h θ ( x i ) \tag{13}\begin{aligned} &amp;log[1-h_\theta(x^i)]^{&#x27;}\\ &amp;=\frac{1}{1-h_\theta(x^i)}·(-1)·h_\theta(x^i)^{&#x27;}\\ &amp;=-\frac{1+e^{-x^i}}{e^{-x^i}}·(1+e^{-x^i})^{-2}·e^{-x^i}\\ &amp;=-h_\theta(x^i)\\ &amp;\end{aligned} log[1hθ(xi)]=1hθ(xi)1(1)hθ(xi)=exi1+exi(1+exi)2exi=hθ(xi)(13)
  5. ( 1 − y ( i ) ) l o g [ 1 − h θ ( x i ) ] (1-y^{(i)})log[1-h_\theta(x^i)] (1y(i))log[1hθ(xi)]求导
    (14) d [ ( 1 − y ( i ) ) l o g ( 1 − h θ ( x i ) ] d θ j = ( 1 − y ( i ) ) ⋅ ( − h θ ( x i ) ) ⋅ X j ( i ) \tag {14} \begin{aligned} &amp;\frac{d[(1-y^{(i)})log(1-h_\theta(x^i)]}{d\theta_j}\\ &amp;= (1-y^{(i)})·(-h_\theta(x^i))·X_j^{(i)} \end{aligned} dθjd[(1y(i))log(1hθ(xi)]=(1y(i))(hθ(xi))Xj(i)(14)
  6. y ( i ) l o g ( h θ ( x i ) ) ] y^{(i)}log(h_\theta(x^i))] y(i)log(hθ(xi))]求导
    (15) d [ y ( i ) l o g ( h θ ( x i ) ) ] d θ j = y ( i ) ( 1 − h θ ( x i ) ) ⋅ X j ( i ) \tag {15} \begin{aligned} &amp;\frac{d[y^{(i)}log(h_\theta(x^i))]}{d\theta_j}\\ &amp;=y^{(i)}(1-h_\theta(x^i))·X_j^{(i)} \end{aligned} dθjd[y(i)log(hθ(xi))]=y(i)(1hθ(xi))Xj(i)(15)

最终求化简结果 (16) J ( θ ) θ j = − 1 m ∑ i = 1 m ( h θ ( x i ) − y ( i ) ) X j ( i ) = − 1 m ∑ i = 1 m ( y ^ ( i ) − y ( i ) ) X j ( i ) \begin{aligned}\tag{16} &amp;\frac{J(\theta)}{\theta_j}=-\frac{1}{m}\sum_{i=1}^{m}(h_\theta(x^i)-y^{(i)})X_j^{(i)}\\ &amp;=-\frac{1}{m}\sum_{i=1}^{m}(\hat y^{(i)}-y^{(i)})X_j^{(i)} \end{aligned} θjJ(θ)=m1i=1m(hθ(xi)y(i))Xj(i)=m1i=1m(y^(i)y(i))Xj(i)(16)

梯度下降法中的更新公式: (18) θ j = θ j − α m ∑ i = 1 m ( y ^ ( i ) − y ( i ) ) X j ( i ) \tag {18}\theta_j=\theta_j- \frac{\alpha}{m}\sum_{i=1}^{m}(\hat y^{(i)}-y^{(i)})X_j^{(i)} θj=θjmαi=1m(y^(i)y(i))Xj(i)(18)

i = 1 , 2 , 3 , ⋯ &ThinSpace; , m i= 1,2,3,\cdots,m i=1,2,3,,m

j = 1 , 2 , 3 , ⋯ &ThinSpace; , n j=1,2,3,\cdots,n j=1,2,3,,n

α 为 学 习 率 \alpha为学习率 α

正则化方法

为防止模型过拟合,提高模型的泛化能力,通常会在损失函数的后面添加一个正则化项。L1正则化和L2正则化可以看做是损失函数的惩罚项。所谓【惩罚】是指对损失函数中的某些参数做一些限制

L2正则化(ℓ2 -norm)

使用L2正则化的模型叫做Ridge Regularization(岭回归),直接在原来的损失函数基础上加上权重参数的平方和:
令损失函数为 J 0 J_0 J0,则Ridge Regularization为:
(5) J = J 0 + 1 2 η ∑ i = 1 n θ 2 \tag{5}J=J_0+\frac{1}{2}\eta \sum_{i=1}^{n}\theta^2 J=J0+21ηi=1nθ2(5)
使最终的损失函数最小,要考虑 J 0 J_0 J0 (6) L 2 = 1 2 η ∑ i = 1 n θ 2 \tag{6}L_2=\frac{1}{2}\eta \sum_{i=1}^{n} \theta^2 L2=21ηi=1nθ2(6)两个因素,最终的损失函数就是求等高 圆圈+黑色圆圈的和的最小值。由图可知两个圆相交时, J J J取得最小值。

在这里插入图片描述

为什么 L 2 L_2 L2正则化项能够防止过拟合的情况?
对损失函数的参数优化求解过程进行分析
(7) ∂ J ∂ θ = ∂ J 0 ∂ θ + α θ \tag{7}\frac{\partial J}{\partial \theta}=\frac{\partial J_0}{\partial \theta}+\alpha \theta θJ=θJ0+αθ(7)

(8) ∂ J ∂ b = ∂ J ∂ b \tag{8}\frac{\partial J}{\partial b}=\frac{\partial J}{\partial b} bJ=bJ(8)
可以发现L2正则化项对b的更新没有影响,但是对于 θ \theta θ的更新有影响:
θ → θ − η ∑ i = 1 m ∂ J i ∂ θ − η α θ \theta \rightarrow \theta - \eta\sum_{i=1}^{m} \frac{\partial J_i}{\partial \theta}-\eta \alpha \theta θθηi=1mθJiηαθ

(9) = ( 1 − η α ) θ − η ∑ i = 1 m ∂ J i ∂ θ \tag{9}=(1-\eta \alpha )\theta - \eta \sum_{i=1}^{m}\frac{\partial J_i}{\partial \theta} =(1ηα)θηi=1mθJi(9)

在不使用L2正则化时,求导结果中 θ \theta θ前系数为1,现在 θ \theta θ前面系数为 1 − η α 1−η\alpha 1ηα ,因为η、 α \alpha α都是正的,所以 1 − η α 1−η\alpha 1ηα小于1,它的效果是减小 θ \theta θ,这也就是权重衰减(weight decay)的由来。

在岭回归中,规范化项是所有系数的平方和,称为L2-norm(L2范数)。在我们的模型中就是试图最小化RSS+λ(sumβj^2)。当λ增加时,系数会缩小,趋向于0但永远不会为0。岭回归的优点是可以提高预测准确度,但因为它不能使任何一个特征的系数为0,所以在模型解释性上会有些问题。为了解决这个问题,我们使用LASSO回归。

L1正则化(ℓ1 -norm)

使用L1正则化的模型建叫做Lasso Regularization(Lasso回归),直接在原来的损失函数基础上加上权重参数的绝对值, η \eta η为正则化参数:
假设损失函数为 (1) J 0 = ∑ i = 1 m ( y ( i ) − θ 0 − θ 1 x 1 − θ 2 x 2 − ⋯ − θ n x n ) \tag{1}J_0=\sum_{i=1}^{m}(y^{(i)}-\theta_0-\theta_1x_1-\theta_2x_2-\cdots-\theta_nx_n) J0=i=1m(y(i)θ0θ1x1θ2x2θnxn)(1)则Lasso Regularization为:
(2) J = J 0 + η ∑ i = 1 m ∣ θ ∣ \tag{2}J=J_0+\eta \sum_{i=1}^{m}|\theta| J=J0+ηi=1mθ(2)
J J J 是带有绝对值符号的函数,因此 J J J是不完全可微的。当我们在原始损失函数 J 0 J_0 J0后添加 L 1 L_1 L1正则化项时,相当于对 J 0 J_0 J0做了一个约束。令 L 1 = η ∑ i = 1 m ∣ θ ∣ L_1=\eta\sum_{i=1}^{m}|\theta| L1=ηi=1mθ,则 J = J 0 + L 1 J=J_0+L_1 J=J0+L1,此时我们的任务变成在 L L L约束下求出 J J J取最小值时的 θ \theta θ η \eta η 被称为正则化系数.

下面通过图像来说明如何在约束条件 L 1 L_1 L1下求 J J J的最小值。
在这里插入图片描述
最终的损失函数就是求等高圆圈+黑色黑色矩形的和的最小值。由图可知等高圆圈+黑色矩形首次相交时, J J J取得最小值。
为什么 L 1 L_1 L1正则化项能够防止过拟合的情况?
对损失函数的参数优化求解过程进行分析
(3) ∂ J ∂ θ = ∂ J 0 ∂ θ + α s g n ( θ ) \tag{3}\frac{\partial J}{\partial \theta}=\frac{\partial J_0}{\partial \theta}+\alpha sgn(\theta) θJ=θJ0+αsgn(θ)(3)

上式中 s g n ( θ ) sgn(\theta) sgn(θ)表示 θ \theta θ的符号。那么权重 θ \theta θ的更新规则为:
(4) θ → θ − η ∑ i = 1 m ∂ J i ∂ θ − η α s g n ( θ ) \tag{4}\theta \rightarrow \theta - \eta\sum_{i=1}^{m} \frac{\partial J_i}{\partial \theta}-\eta \alpha sgn(\theta) θθηi=1mθJiηαsgn(θ)(4)

比原始的更新规则多出了 η α s g n ( θ ) η \alpha sgn(\theta) ηαsgn(θ)这一项。当 θ \theta θ为正时,更新后的 θ \theta θ变小。当 θ \theta θ为负时,更新后的 θ \theta θ变大——因此它的效果就是让 η \eta η往0靠,使网络中的权重尽可能为0,也就相当于减小了网络复杂度,防止过拟合。

区别于岭回归中的L2-norm,LASSO回归使用L1-norm,即所有特征权重的绝对值之和,也就是要最小化RSS+λ(sum|βj|)。这个收缩惩罚项确实可以使特征权重收缩到0,相对于岭回归,这是一个明显的优势,因为可以极大地提高模型的解释性。如果LASSO这么好,那还要岭回归做什么?当存在高度共线性或高度两两相关的情况下,LASSO回归可能会将某个预测特征强制删除,这会损失模型的预测能力。举例来说,如果特征A和B都应该存在于模型之中,那么LASSO可能会将其中一个的系数缩减到0。可见岭回归与Lasso回归应该是互为补充的关系。

弹性网络

弹性网络的优势在于,它既能做到岭回归不能做的特征提取,又能实现LASSO不能做的特征分组。重申一下,LASSO倾向于在一组相关的特征中选择一个,忽略其他。弹性网络包含了一个混合参数α,它和λ同时起作用。α是一个0和1之间的数,λ和前面一样,用来调节惩罚项的大小。请注意,当α等于0时,弹性网络等价于岭回归;当α等于1时,弹性网络等价于LASSO。实质上,我们通过对β系数的二次项引入一个第二调优参数,将L1惩罚项和L2惩罚项混合在一起。通过最小化(RSS + λ[(1 - α)(sum|βj|^2)/2 + α(sum|βj|)]/N)完成目标。

逻辑回归的优缺点

优点

1、它是直接对分类可能性建模,无需事先假设数据分布,这样就避免了假设分布不准确问题。

2、它不仅预测类别,而且可以得到近似概率预测,这对许多概率辅助决策的任务很有用。

3、对率函数是任意阶可导凸函数,有很好的数学性质,现有许多的数值优化算法都可以直接用于求解。

缺点

对数据和场景的适应能力有局限性,不如决策树算法适应性那么强

sklearn.linear_model.LogisticRegression参数说明

官方英文文档

参数解释数值类型(默认值)选项
penalty正则化选择参数。‘newton-cg’,‘sag’和’lbfgs’解算器只支持l2惩罚。版本0.19中的新功能:使用SAGA求解器的l1惩罚(允许’多项’+ L1)str (l1)‘l1’或’l2’,
dual对偶方法只用在求解线性多核(liblinear)的L2惩罚项上。当样本数量>样本特征的时候,dual通常设置为False。bool (False)Ture/False
solversolver参数决定了我们对逻辑回归损失函数的优化方法str(liblinear)newton-cg;lbfgs;liblinear;sag;saga。
multi_classmulti_class参数决定了我们分类方式的选择str(ovr)ovr;multinomial
class_weight用于标示分类模型中各种类型的权重,可以是一个字典或者’balanced’字符串,默认为不输入,也就是不考虑权重,即为None。如果选择输入的话,可以选择balanced让类库自己计算类型权重,或者自己输入各个类型的权重。举个例子,比如对于0,1的二元模型,我们可以定义class_weight={0:0.9,1:0.1},这样类型0的权重为90%,而类型1的权重为10%。如果class_weight选择balanced,那么类库会根据训练样本量来计算权重。某种类型样本量越多,则权重越低,样本量越少,则权重越高。当class_weight为balanced时,类权重计算方法如下:n_samples / (n_classes * np.bincount(y))。n_samples为样本数,n_classes为类别数量,np.bincount(y)会输出每个类的样本数,例如y=[1,0,0,1,1],则np.bincount(y)=[2,3]。dict/str字典或者’balanced’字符串
tol停止求解的标准Float(1e-4)
c正则化系统λ的倒数Float(1.0)
verbose日志冗长度int(0)
warm_start热启动参数,如果为True,则下一次训练是以追加树的形式进行(重新使用上一次的调用作为初始化)。bool(False)Flase/Ture
n_jobs并行数,用CPU的一个内核运行程序,2的时候,用CPU的2个内核运行程序。为-1的时候,用所有CPU的内核运行程序。int(1)
max_iter算法收敛最大迭代次数,仅在正则化优化算法为newton-cg, sag和lbfgs才有用,算法收敛的最大迭代次数。int(10)
random_state随机数种子,仅在正则化优化算法为sag,liblinear时有用。Int(无)
fit_intercept是否存在截距或偏差bool(Ture)False/Ture

具体参数详解

逻辑回归处理多分类问题

OvO(One vs One)

假设训练集有N类样本, C 1 , C 2 , ⋯ &ThinSpace; , C N C_1,C_2,\cdots,C_N C1,C2,,CN训练时两两组合为二分类进行训练,新样本通过这 C N 2 C_N^{2} CN2个分类器后会得到 N ( N − 1 ) 2 \frac {N(N−1)}{2} 2N(N1)个分类结果,最终结果可根据这些分类结果投票产生。

OvR(One vs Rest)

训练时一个类作为正例,其余所有类作为反例。这样共有 N N N个二分类器进行训练,新样本通过分类器时预测结果为正例的即为最终结果。

MvM(Many vs Many)

MvM是每次将若干各类作为正例,剩下的若干个类作为反例,OvO和OvR其实是MvM的特殊情况。但是MvM的正反例构造必须有特殊的设计,不能随意选取。这里我们介绍一种最常用的MvM技术:“纠错输出码”(ECOC)

类别不平衡问题

逻辑回归面经

参考文献

逻辑回归原理小结
scikit-learn 逻辑回归类库使用小结
Logistic Regression(逻辑回归)原理及公式推导
机器学习算法–逻辑回归原理介绍
正则化方法

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值