虽然名字中有“回归”,但这其实是个用于分类问题的方法。
一、首先介绍sigmoid函数
σ
(
z
)
=
1
1
+
e
−
z
\sigma(\mathrm{z})=\frac{1}{1+\mathrm{e}^{-\mathrm{z}}}
σ(z)=1+e−z1
图像如下:
这个函数的意义在于,对任意
x
∈
(
−
∞
,
+
∞
)
x\in(-\infty, +\infty)
x∈(−∞,+∞),y的值都可以被限制在[0,1]内,也就是“概率”的取值范围。
二、Logistic Regression
(1)对于一个分类问题,输入
x
∈
R
n
x\in R^{n}
x∈Rn,输出
y
=
0
或
1
y=0或1
y=0或1。但不直接用分类的方法,而是用回归的模型去计算概率,定义
y
^
=
P
(
y
=
1
∣
x
)
=
σ
(
w
T
x
+
b
)
∈
(
0
,
1
)
\hat{y}=P(y=1 \mid x) = \sigma (w^Tx+b) \in (0,1)
y^=P(y=1∣x)=σ(wTx+b)∈(0,1)其中w和b是我们后面要确定的参数。这个模型就是Logistic Regression。
(2)接下来我们要计算w和b。常用的确定参数的方法是最小二乘法和极大似然法,此处我们选择极大似然估计。由上一步已知 y ^ = P ( y = 1 ∣ x ) \hat{y}=P(y=1 \mid x) y^=P(y=1∣x) 1 − y ^ = P ( y = 0 ∣ x ) 1-\hat{y}=P(y=0 \mid x) 1−y^=P(y=0∣x)这两个式子可以用下面这一个式子同时表达 P ( y ∣ x ) = y ^ y ( 1 − y ^ ) 1 − y P(y \mid x) = \hat{y}^y(1-\hat y)^{1-y} P(y∣x)=y^y(1−y^)1−y(不理解的话把y=1和y=0分别带进去试一下)。
于是对于n个样本点
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
.
.
.
(
x
n
,
y
n
)
(x_1, y_1), (x_2, y_2) ... (x_n, y_n)
(x1,y1),(x2,y2)...(xn,yn),似然函数为
∏
i
=
1
n
y
i
^
y
i
(
1
−
y
^
i
)
1
−
y
i
\prod_{i=1}^{n} \hat{y_i}^{y_i }(1-\hat y_i)^{1-{y_i}}
i=1∏nyi^yi(1−y^i)1−yi取负对数就得到了Logistic Regression的损失函数
L
(
w
,
b
)
=
−
∑
i
=
1
n
[
y
i
l
o
g
y
i
^
+
(
1
−
y
i
)
l
o
g
(
1
−
y
i
^
)
]
L(w,b) =- \sum_{i=1}^{n}[y_i log{\hat{y_i}} + (1-y_i)log(1-\hat{y_i})]
L(w,b)=−i=1∑n[yilogyi^+(1−yi)log(1−yi^)]
让L(w,b)达到最小的w和b就是我们要找的值。手动算的话让L对w和b的偏导数等于0就解出来了,写代码的话用的方法是梯度下降法。