Logistic regression
逻辑回归,“逻辑”之意与logistic 和 logit 的含义相差甚远,是指”对数“的意思,所以也叫**对数几率回归*;另外虽然叫” 回归 “,但实际是一种分类的方法,逻辑回归是一种线性分类器。
- 算法思想: 根据现有数据对分类边界线建立回归公式,以此进行分类。所以,训练算法的母的就是为了找到最佳的分类回归系数。
- 优点:算法简单,计算量小,速度快。
- 缺点 : 容易过拟合,一般准确度不高。
Logistic 回归分类器
逻辑回归主要是假设数据服从伯努利分布,然后通过极大似然函数的方法,运用梯度下降等方式进行求解参数,来达到将数据二分类的目的。
1、假设数据服从伯努利分布,假设样本为正的概率为
p
(
y
=
1
∣
x
)
=
h
θ
(
x
)
=
1
1
+
e
−
θ
T
x
p(y=1|x)=h_\theta(x)=\frac{1}{1+e^{-\theta^Tx}}
p(y=1∣x)=hθ(x)=1+e−θTx1,则样本为负的概率为
p
(
y
=
−
1
∣
x
)
=
1
−
h
θ
(
x
)
=
e
−
θ
T
x
1
+
e
−
θ
T
x
p(y=-1|x)=1-h_\theta(x)=\frac{e^{-\theta^Tx}}{1+e^{-\theta^Tx}}
p(y=−1∣x)=1−hθ(x)=1+e−θTxe−θTx,逻辑回归表达式为:
(1)
h
θ
(
x
;
θ
)
=
1
1
+
e
−
θ
T
x
h_\theta(x;\theta)=\frac{1}{1+e^{-\theta^Tx}}\tag{1}
hθ(x;θ)=1+e−θTx1(1)
2、使用极大似然函数作为损失函数,因为将极大似然函数取对数就等同于对数似然函数,在逻辑回归下,对数损失函数的训练求解参数的速度比较快。由于数据服从伯努利分布,所以最大化似然函数为:
(2)
L
θ
(
x
)
=
∏
i
h
θ
(
x
)
y
i
(
1
−
h
θ
(
x
)
)
1
−
y
i
L_\theta(x)=\prod_i{h_\theta(x)^{y_i}(1-h_\theta(x))^{1-y_i}}\tag{2}
Lθ(x)=i∏hθ(x)yi(1−hθ(x))1−yi(2)
对(2)式取对数为:
ln
L
θ
(
x
)
=
∑
i
y
i
ln
h
θ
(
x
)
+
(
1
−
y
i
)
ln
(
1
−
h
θ
(
x
)
)
=
∑
i
y
i
ln
1
1
+
e
−
θ
T
x
i
+
(
1
−
y
i
)
ln
e
−
θ
T
x
i
1
+
e
−
θ
T
x
i
=
∑
i
y
i
ln
e
θ
T
x
i
1
+
e
θ
T
x
i
+
(
1
−
y
i
)
(
ln
1
1
+
e
θ
T
x
i
)
=
∑
i
y
i
θ
T
x
i
+
ln
1
1
+
e
θ
T
x
i
\ln L_\theta(x)=\sum_i{y_i \ln h_\theta(x)+(1-y_i) \ln (1-h_\theta(x))} \\ =\sum_i{y_i \ln \frac{1}{1+e^{-\theta^Tx_i}}+(1-y_i) \ln \frac{e^{-\theta^Tx_i}}{1+e^{-\theta^Tx_i}}}\\ =\sum_i{y_i \ln \frac{e^{\theta^Tx_i}}{1+e^{\theta^Tx_i}}+(1-y_i) (\ln \frac{1}{1+e^{\theta^Tx_i}})}\\ =\sum_i{y_i \theta^Tx_i+ \ln \frac{1}{1+e^{\theta^Tx_i}}}
lnLθ(x)=i∑yilnhθ(x)+(1−yi)ln(1−hθ(x))=i∑yiln1+e−θTxi1+(1−yi)ln1+e−θTxie−θTxi=i∑yiln1+eθTxieθTxi+(1−yi)(ln1+eθTxi1)=i∑yiθTxi+ln1+eθTxi1
反之最小化如下函数:
(3)
L
(
θ
)
=
∑
i
−
y
i
θ
T
x
i
+
ln
(
1
+
e
θ
T
x
i
)
L(\theta)= \sum_i{-y_i \theta^Tx_i+ \ln (1+e^{\theta^Tx_i})}\tag{3}
L(θ)=i∑−yiθTxi+ln(1+eθTxi)(3)
3、用梯度下降法求解参数:
再对(3)中
θ
\theta
θ偏导:
∂
L
(
θ
)
∂
θ
=
∑
i
−
y
i
x
i
+
e
θ
T
x
i
x
i
1
+
e
θ
T
x
i
=
∑
i
−
y
i
x
i
+
x
i
h
θ
(
x
i
)
=
∑
i
(
y
i
−
h
θ
(
x
i
)
)
x
i
\frac{\partial L(\theta)}{\partial \theta}= \sum_i{-y_i x_i+ \frac {e^{\theta^Tx_i}x_i}{1+e^{\theta^Tx_i}}}\\ = \sum_i{-y_i x_i+ x_i h_\theta(x_i)}\\ =\sum_i{(y_i-h_\theta(x_i))x_i}
∂θ∂L(θ)=i∑−yixi+1+eθTxieθTxixi=i∑−yixi+xihθ(xi)=i∑(yi−hθ(xi))xi 参数更新公式为:
θ
t
+
1
=
θ
t
+
α
[
y
i
−
h
θ
(
x
i
)
]
x
i
\theta^{t+1}=\theta^t+\alpha[y_i-h_\theta(x_i)]x_i
θt+1=θt+α[yi−hθ(xi)]xi
逻辑回归需要解决的问题
- 易过拟合——在损失函数上加入正则项: J ( θ ) = L ( θ ) + λ ∥ w ∥ p J(\theta)=L(\theta)+\lambda \|w\|_p J(θ)=L(θ)+λ∥w∥p通过惩罚较大参数从而防止过拟合。
- 多分类问题——将sigmoid函数换成softmax函数: p ( y = i ∣ x ; θ ) = e θ i x ∑ j e θ j x p(y=i|x;\theta)=\frac{e^{\theta_i x}}{\sum_j {e^{\theta_j x}}} p(y=i∣x;θ)=∑jeθjxeθix
- 线性不可分问题——加入核函数