逻辑回归算法
最近参加一个阿里巴巴举办的机器学习训练营,正好在此记录下自己的学习笔记。
提到逻辑回归算法,不知道你是不是把它当做了一个回归算法,我是第一印象把它当做了回归算法,而且我觉得这个不就是线性回归吗?怎么会是一个分类算法呢?
后来查阅资料,翻看逻辑回归算法的数学表达式,才发现是我错了。其实我之前也了解过 Logistic 算法,不过当时都是叫逻辑斯蒂回归算法。一时有点懵逼。今天刚好借此机会记录下,以后自己也好回过头来复习。
这个算法其实挺简单的,主要的的就是一个数学公式:
p
=
p
(
y
=
1
∣
x
,
θ
)
=
h
θ
(
x
,
θ
)
=
1
1
+
e
−
(
w
0
+
∑
i
N
w
i
x
i
)
p = p(y=1|x,\theta) = h_\theta(x,\theta) = \frac{1}{1 + e^{-(w_0 + \sum_i^N w_ix_i)}}
p=p(y=1∣x,θ)=hθ(x,θ)=1+e−(w0+∑iNwixi)1
而线性回归的数学表达式是这样的:
y
=
w
0
+
∑
i
N
w
i
x
i
y = w_0 + \sum_i^N w_ix_i
y=w0+i∑Nwixi
所以你看到其中的区别了吗?
另外呢,由于 e x > 0 e^x > 0 ex>0,所以逻辑回归算法的取值范围是 ( 0 , 1 ) (0, 1) (0,1),而这个值就刚好代表了将元素分为类别 1 的概率。
所以:
p
(
y
=
1
∣
x
,
θ
)
=
h
θ
(
x
,
θ
)
p(y=1|x, \theta) = h_\theta(x,\theta)
p(y=1∣x,θ)=hθ(x,θ)
p
(
y
=
0
∣
x
,
θ
)
=
1
−
h
θ
(
x
,
θ
)
p(y=0|x, \theta) = 1 - h_\theta(x, \theta)
p(y=0∣x,θ)=1−hθ(x,θ)
逻辑回归从其原理上来说,逻辑回归其实是实现了一个决策边界:对于函数
y
=
1
1
+
e
−
z
y=\frac{1}{1 + e^{-z}}
y=1+e−z1,当
z
>
=
0
z>=0
z>=0 时,
y
>
=
0.5
y >= 0.5
y>=0.5分类为 1, 当
z
<
0
z<0
z<0 时,
y
<
0.5
y < 0.5
y<0.5,分类为0,其对应的
y
y
y值我们可以视为类别 1 的函数预测值。
接下来,我们来看看逻辑回归的函数图像:
从这个函数图像中,我们可以看到图像非常的平滑,平滑意味着什么?意味着连续,连续又代表着什么呢?代表着可导。可导就意味着可以用梯度下降的方法进行优化,进而就得最优解。
我们假定
y
=
1
1
+
e
−
x
y = \frac{1}{1 + e^-x}
y=1+e−x1
y
′
=
(
−
1
)
∗
(
1
1
+
e
−
x
)
2
∗
(
1
+
e
−
x
)
′
y^{'} = (-1) * (\frac{1}{1 + e^{-x}})^2 * (1 + e^{-x})^{'}
y′=(−1)∗(1+e−x1)2∗(1+e−x)′
=
(
1
1
+
e
−
x
)
2
∗
e
−
x
=
y
(
1
−
y
)
=(\frac{1}{1 + e^{-x}})^2 * e^{-x} =y(1 - y)
=(1+e−x1)2∗e−x=y(1−y)
所以,逻辑回归非常简单但是应用范围非常广。值得大家入手。