在一元线性回归模型一文中提到过很多机器学习模型都是在线性回归模型的基础上创建的,本篇文章就简单的描述一下如何将线性回归应用到分类问题中——即逻辑回归。
逻辑回归的基本概念
线性回归针对的是连续型的数据类型,对于二分类(取值为0或1)问题当然不适用。数学推导中最常用的思想就是将未知问题转化为已知的问题来求解。现在我们的问题是如何对数据集进行分类,很自然的就会想到将其与线性回归模型联系起来。简单的数据预处理一文中提到通过归一化可以将连续值映射到[0,1]这个区间中,这样我们就可以通过阶跃函数来实现分类,阶跃函数如下:
y
=
{
0
,
z < 0
0.5
,
z = 0
1
,
z > 0
(1)
y = \begin{cases} 0, & \text{z < 0} \\ 0.5, & \text{z = 0} \\ \tag{1} 1, & \text{z > 0} \end{cases}
y=⎩⎪⎨⎪⎧0,0.5,1,z < 0z = 0z > 0(1)
即当预测值z大于零就判为正例,小于零则判为反例,预测值为临界值零则可以任意判别。
然而,单位阶跃函数不连续,因此不能通过求导的方式来求得误差最小的参数。因此为了实现逻辑回归,我们找到了对数几率函数(logistic function,也叫逻辑函数)来代替单位阶跃函数:
y
=
1
1
+
e
−
z
(2)
y=\frac{1}{1+e^{-z}} \tag{2}
y=1+e−z1(2)
它将z值转化为一个接近0或1的y值。对数几率函数曲线如下图所示:
虽然它的名字是“回归”,但实际却是一种分类学习方法,这种方法有很多优点:
- 它是直接对分类可能性进行建模,无需事先假设数据分布,这样就避免了假设分布不准确所带来的问题;
- 它不是仅预测出“类别”,而是可得到近似概率预测,这对许多需利用概率辅助决策的任务很有用;
- 对率函数(对数几率函数)是任意阶可导的凸函数,有很好的数学性质,现有的许多数值优化算法都可直接用于求取最优解。
为什么叫逻辑回归呢?因为它使用了逻辑函数(Logisitic 函数),通过逻辑函数将连续值转化为可以分类的结果。
逻辑回归的假设函数
根据上面得到的对数几率函数,然后结合线性回归的知识我们可以推导出逻辑回归的假设函数。逻辑回归的假设函数形式如下:
h
θ
(
x
)
=
1
1
+
e
−
θ
T
x
(3)
h_\theta(x) = \frac{1}{1+e^{-\theta^Tx}} \tag{3}
hθ(x)=1+e−θTx1(3)
结合式(1)可知:
z
=
θ
T
x
(4)
z = \theta^Tx \tag{4}
z=θTx(4)
式(4)就是线性回归的基本方程,其中x是我们的输入,
θ
\theta
θ就是我们要求取的参数。
得到假设函数后,接下来就要考虑如何评价模型的结果,由线性回归模型很容易的就会想到使用MSE(均方误差)来评价模型的结果,以及使用梯度下降方法来求解最佳的参数 θ \theta θ。这两部分内容放到下一篇文章来讨论。
参考文献
《机器学习》周志华