线性回归的模型是求出真实值Y和输入样本的特征X之间的线性关系系数 θ \theta θ,最终求得线性回归模型 Y = X θ Y=X\theta Y=Xθ.当给出新的特征时, 我们希能够带入到 Y = X θ Y=X\theta Y=Xθ中,求出预测值Y是连续值。归为回归模型。 当Y是离散值时,我们就需要对线性回归模型的Y做一次函数变换,将连续值转换成离散值。这时我们就引入逻辑回归。 逻辑回归(LogisticRegression)也叫对数几率回归。 机器学习算法可以分为回归算法和分类算法,逻辑回归算法并不是回归算法,仅为在线性回归的基础上,套用了一个逻辑函数 ,用来解决分类问题,因此将它归为分类算法。
逻辑回归可以解决二分类问题,也可以解决多分类问题。这里先讲述二分类问题,多分类问题待补充。 在逻辑回归(二分类)中,我们一般用sigmoid函数将连续值转换成离散值,实现二分类。 为什么要用sigmoid函数作为假设函数
用sigmoid函数作为假设函数
sigmoid函数形式如下:
(1) g ( z ) = 1 1 + e − z \tag{1}g(z)=\frac{1}{1+e^{-z}} g(z)=1+e−z1(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)(1−g(z))=(1+e(−z))2e−z(2)
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 < 0 x<0 x<0时, y y y趋于0;
数据集 (3) Y = ( y 1 y 2 ⋯ y i ) \tag{3} Y=\begin{pmatrix} &y^1\\ &y^2\\ &\cdots\\ &y^i \end{pmatrix} Y=⎝⎜⎜⎛y1y2⋯yi⎠⎟⎟⎞(3) (3) X = ( x 1 1 , x 2 1 , x 3 1 , ⋯   , 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} &x_1^1, &x_2^1, &x_3^1,&\cdots, &x_n^1 \\ &x_1^2, &x_2^2, &x_3^2,&\cdots &x_n^2 \\ &\cdots\\ &x_1^i, &x_2^i, &x_3^i,&\cdots &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 , ⋯   , 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} &1,&x_1^1, &x_2^1, &x_3^1,&\cdots, &x_n^1 \\ &1,&x_1^2, &x_2^2 &x_3^2,&\cdots &x_n^2 \\ &\cdots\\ &1,&x_1^i, &x_2^i, &x_3^i&\cdots &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} &\theta_0 \\ &\theta_1\\ &\cdots\\ &\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+e−z1=1+e−Xiθ1(5) y = { 1 p ^ ⩾ 0.5 , 即 X i θ ⩾ 0 0 p ^ < 0.5 , 即 X i θ < 0 y = \begin{cases} 1 & \hat p \geqslant0.5 , 即 X^i\theta\geqslant0 \\ 0 & \hat p<0.5, 即X^i\theta<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) 1−hθ(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=1∣x;θ)=hθ(x)=1+e−Xiθ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=0∣x;θ)=1−hθ(x)=1−1+e−Xiθ1
两者的比值对数称为对数几率: l n h θ ( x ) 1 − h θ ( x ) ln\frac{h_{\theta}(x)}{1-h_{\theta}(x)} ln1−hθ(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损失函数是基于极大似然估计 得到的
将上述概率合并,得: 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(y∣x;θ)=[hθ(x)]y[1−hθ(x)]1−y构造逻辑回归模型的似然函数为: (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=1∏mp(y=1∣xi)y(i)p(y=0∣xi)1−y(i)(7) l ( θ ) l(\theta) l(θ)为样本的似然函数,有 θ ∗ \theta^{*} θ∗使得 l ( θ ) l(\theta) l(θ)的取值最大,那么 θ ∗ \theta^{*} θ∗就叫做参数 θ \theta θ的极大似然估计值对数似然函数: (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=1∑m[y(i)lnp(y=1∣xi)+(1−y(i))lnp(y=0∣xi)](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=1∑m[y(i)lnhθ(x)+(1−y(i))ln(1−hθ(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,这样求导就很方便了。
求最大似然函数,就是损失函数(对似然函数先取负号)最小化。所以加个负号就成了损失函数;最小化损失函数可以梯度下降法求解。 除以样本数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} &J(\theta)=-\frac{1}{m}l(\theta)\\ &=-\frac{1}{m}\sum_{i=1}^{m}[y^{(i)}lnh_{\theta}(x)+(1-y^{(i)})ln(1-h_{\theta}(x))]\\ &=-\frac{1}{m}\sum_{i=1}^{m}[y^{(i)}log(\hat p)+(1-y^{(i)})log(1-\hat p)] \end{aligned} J(θ)=−m1l(θ)=−m1i=1∑m[y(i)lnhθ(x)+(1−y(i))ln(1−hθ(x))]=−m1i=1∑m[y(i)log(p^)+(1−y(i))log(1−p^)](9)
模型求解的过程实际上就是求损失函数最小时的参数 θ \theta θ,求解的方法有梯度下降法,坐标轴下降法,牛顿法等,这里用梯度下降法推导!!!
对损失函数求导 (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(θ)=⎝⎜⎜⎜⎛∂θ0∂J(θ)∂θ1∂J(θ)⋯∂θn∂J(θ)⎠⎟⎟⎟⎞(10)对 p ^ \hat {p} p^求导 (10) p ^ ′ = h θ ′ ( x ) = e − X i θ ( 1 + e ( − X i θ ) ) 2 \tag{10}\hat {p}^{'}=h_{\theta}^{'}(x) = \frac{e^{-X^i\theta}}{(1+e^{(-X^i\theta)})^{2}} p^′=hθ′(x)=(1+e(−Xiθ))2e−Xiθ(10) 对 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} &log[h_\theta(x^i)]^{'}\\ &=\frac {1}{ h_\theta(x^i)}·h_\theta(x^i)^{'}\\ &= (1+e^{-X^i\theta})(1+e^{-X^i\theta})^{-2}·e^{-X^i\theta}\\ &=(1+e^{-X^i\theta})^{-1}·e^{-X^i\theta}\\ &=\frac{e^{-X^i\theta}}{1+e^{-X^i\theta}}\\ &=1-\frac{1}{1+e^{-X^i\theta}}\\ &=1-h_\theta(x^i) \end{aligned} log[hθ(xi)]′=hθ(xi)1⋅hθ(xi)′=(1+e−Xiθ)(1+e−Xiθ)−2⋅e−Xiθ=(1+e−Xiθ)−1⋅e−Xiθ=1+e−Xiθe−Xiθ=1−1+e−Xiθ1=1−hθ(xi)(12) 对 l o g [ 1 − h θ ( x i ) ] 求 导 对log[1-h_\theta(x^i)]求导 对log[1−hθ(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} &log[1-h_\theta(x^i)]^{'}\\ &=\frac{1}{1-h_\theta(x^i)}·(-1)·h_\theta(x^i)^{'}\\ &=-\frac{1+e^{-x^i}}{e^{-x^i}}·(1+e^{-x^i})^{-2}·e^{-x^i}\\ &=-h_\theta(x^i)\\ &\end{aligned} log[1−hθ(xi)]′=1−hθ(xi)1⋅(−1)⋅hθ(xi)′=−e−xi1+e−xi⋅(1+e−xi)−2⋅e−xi=−hθ(xi)(13)对 ( 1 − y ( i ) ) l o g [ 1 − h θ ( x i ) ] (1-y^{(i)})log[1-h_\theta(x^i)] (1−y(i))log[1−hθ(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} &\frac{d[(1-y^{(i)})log(1-h_\theta(x^i)]}{d\theta_j}\\ &= (1-y^{(i)})·(-h_\theta(x^i))·X_j^{(i)} \end{aligned} dθjd[(1−y(i))log(1−hθ(xi)]=(1−y(i))⋅(−hθ(xi))⋅Xj(i)(14)对 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} &\frac{d[y^{(i)}log(h_\theta(x^i))]}{d\theta_j}\\ &=y^{(i)}(1-h_\theta(x^i))·X_j^{(i)} \end{aligned} dθjd[y(i)log(hθ(xi))]=y(i)(1−hθ(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} &\frac{J(\theta)}{\theta_j}=-\frac{1}{m}\sum_{i=1}^{m}(h_\theta(x^i)-y^{(i)})X_j^{(i)}\\ &=-\frac{1}{m}\sum_{i=1}^{m}(\hat y^{(i)}-y^{(i)})X_j^{(i)} \end{aligned} θjJ(θ)=−m1i=1∑m(hθ(xi)−y(i))Xj(i)=−m1i=1∑m(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=θj−mαi=1∑m(y^(i)−y(i))Xj(i)(18)
i = 1 , 2 , 3 , ⋯   , m i= 1,2,3,\cdots,m i=1,2,3,⋯,m
j = 1 , 2 , 3 , ⋯   , n j=1,2,3,\cdots,n j=1,2,3,⋯,n
α 为 学 习 率 \alpha为学习率 α为学习率
为防止模型过拟合,提高模型的泛化能力,通常会在损失函数的后面添加一个正则化项。L1正则化和L2正则化可以看做是损失函数的惩罚项。所谓【惩罚】是指对损失函数中的某些参数做一些限制
使用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=1∑nθ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=1∑nθ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} ∂b∂J=∂b∂J(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=1∑m∂θ∂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=1∑m∂θ∂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正则化的模型建叫做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=1∑m(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=1∑m∣θ∣(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=1∑m∂θ∂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、对率函数是任意阶可导凸函数,有很好的数学性质,现有许多的数值优化算法都可以直接用于求解。
对数据和场景的适应能力有局限性,不如决策树算法适应性那么强
官方英文文档
参数解释数值类型(默认值)选项penalty正则化选择参数。‘newton-cg’,‘sag’和’lbfgs’解算器只支持l2惩罚。版本0.19中的新功能:使用SAGA求解器的l1惩罚(允许’多项’+ L1)str (l1)‘l1’或’l2’,dual对偶方法只用在求解线性多核(liblinear)的L2惩罚项上。当样本数量>样本特征的时候,dual通常设置为False。bool (False)Ture/Falsesolversolver参数决定了我们对逻辑回归损失函数的优化方法str(liblinear)newton-cg;lbfgs;liblinear;sag;saga。multi_classmulti_class参数决定了我们分类方式的选择str(ovr)ovr;multinomialclass_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/Turen_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具体参数详解
假设训练集有N类样本, C 1 , C 2 , ⋯   , 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(N−1)个分类结果,最终结果可根据这些分类结果投票产生。
训练时一个类作为正例,其余所有类作为反例。这样共有 N N N个二分类器进行训练,新样本通过分类器时预测结果为正例的即为最终结果。
MvM是每次将若干各类作为正例,剩下的若干个类作为反例,OvO和OvR其实是MvM的特殊情况。但是MvM的正反例构造必须有特殊的设计,不能随意选取。这里我们介绍一种最常用的MvM技术:“纠错输出码”(ECOC)
逻辑回归面经
逻辑回归原理小结 scikit-learn 逻辑回归类库使用小结 Logistic Regression(逻辑回归)原理及公式推导 机器学习算法–逻辑回归原理介绍 正则化方法