1. 回顾(多元线性回归)
多元线性回归表达式:
y
⃗
=
X
ω
⃗
+
b
⃗
\vec{y} = X\vec{\omega} + \vec{b}
y
=Xω
+b
,其中,对于变量y,每个值
y
i
y_i
yi都是期望值(平均值)
用图形表示为:
2. sigmoid函数
多元线性回归,顾名思义,是一种回归模型,假如现在要做分类,如何用多元线性回归模型来做分类任务呢?一种简单通俗的想法如下:
假如上图中红色的x是需要拟合的数据,由于
y
i
y_i
yi是一种期望值,因此拟合出的多元线性模型就是图中的紫色线。想要借此做分类,可以设置一个阈值,当大于某一阈值时,我们将其分类为1,小于某一阈值时,分类为0,该阈值即图中的绿色直线。
上述方法看似合理,但存在两个问题:
- 如果数据有异常值(特别大,或者特别小等),由于
y
i
y_i
yi是期望值,其拟合的直线就会偏离,如下图所示(直线由原来的灰色箭头偏离为紫色直线):
- 阈值选择问题:实际情况中,即使没有异常值,同一问题,不同的训练数据,选取的阈值都没有一个统一值,更何况不同问题及异常值数据问题。因此使用回归做分类阈值的选择是一个问题。
为了解决上述问题,引入了sigmoid函数,其公式如下:
F
(
x
)
=
e
x
p
(
x
)
1
+
e
x
p
(
x
)
F(x)=\frac{exp(x)}{1+exp(x)}
F(x)=1+exp(x)exp(x)
其图形如下:
观察图形,可以发现,该图形y轴对称且当x小于0时,y小于0.5;x大于0时,y大于0.5。此外,还有一个重要特征,值域为[0,1]。
3. 逻辑回归
联系多元线性回归和sigmoid函数,假如将多元线性回归的预测值y(连续型)作为sigmoid的输入x,公式表达如下:
F
(
x
)
=
e
x
p
(
X
ω
⃗
+
b
⃗
)
1
+
e
x
p
(
X
ω
⃗
+
b
⃗
)
F(x)=\frac{exp(X\vec{\omega} + \vec{b})}{1+exp(X\vec{\omega} + \vec{b})}
F(x)=1+exp(Xω
+b
)exp(Xω
+b
)
通过这一波操作,经过多元线性回归,再经过sigmoid函数,最终结果y的取值范围为[0,1],且当回归预测值大于0时,最终结果y大于0.5,当回归预测值小于0时,最终结果y小于0.5。值域[0,1]这一特征,又和概率论中概率的取值范围一样。因此我们常说逻辑回归的结果就是类别的概率。当回归预测值大于0,最终结果大于0.5,我们认为就是类别1;当回归预测值小于0,最终结果小于0.5,我们认为就是类别0。这里的0.5就是上文中所提到的阈值。
实际问题中,阈值其实不一定是0.5,也可以自定义,比如0.4(具体为多少,需要实际情况实际分析,但在sklearn中默认是0.5。
此外,逻辑回归还有一种图形解释。
提到此,分界线不一定是多元线性回归,还可以是圆等,下述会详细讲解。