【机器学习】逻辑回归(Logistic Regression)
背景
逻辑回归是用回归的方法做 分类
假设数据服从 0-1 分布(伯努利分布),那么随机变量 只有正类 1 和 负类 0 两个选择,并且相应的概率为: 和 。
可以使用线性回归方法,寻找判别函数 ,把数据分隔开。
但是遇到像以下这种数据,可以用逻辑回归,根据输出属于正类的概率来分类。
对于逻辑回归,学习的并不是一条线去拟合每个数据点,而是为了把不同类别的样本分开。
- 在判别函数 输出的基础上使用 函数 将预测值映射到 0,1 之间,表示预测结果的 概率。
- 设置一个阈值,假设为 0.5,如果 ,则表示预测为正类的概率为 0.7。
- 的直观解释为:对于输入 ,求分类结果 属于正类的概率。
- 若一个样本是正类的概率为 ,则是负类的概率为 。将两个式子写在一块: ,当 或者 的时,上式均满足,表示输入样本为正类的概率。
损失函数
为什么使用负的对数似然函数作为损失函数?
这里着重介绍以下,其实逻辑回归也可以使用其他损失函数,比如使用均方误差作为损失函数:
但这个函数不是凸函数,很难进行优化。
再考虑常用于二分类模型中的交叉熵损失函数,即负的对数似然函数:
其中 表示预测正类的概率,也就是 或者 。
根据真实标签,也可以写成下面的格式:
其图像如图所示:
既然是分类任务,不同的类别可以单独的计算损失。对于真实标签为 1 的样本,预测值越接近于 1,损失越小;而真实标签为 1 的样本,预测值越接近于 0,损失越小,交叉熵损失函数刚好满足以上特点,比均方误差损失函数要好得多。
其实这里的损失函数可以通过极大似然估计推导出来。
通过极大似然估计推导损失函数
因为数据真实标签 只有 1 和 0 两种分类,服从 0-1 分布,故 在 上概率分布为:
其似然函数为:
为方便计算,两边取对数,化连乘为累加:
目标是最大化 log 似然函数,加负号转换成最小化:
梯度下降法
梯度下降算法中自变量迭代公式:
参数更新推导:
Note:
题外话
对于真实标签为 1 和 -1 表示正类和负类的情况,还可以这么表示其损失函数。
为 函数,有以下属性:
,也就是 。
和上面一样,设 ,则 。
将两个概率公式合并, 。
似然函数:
为方便计算,两边取对数,取负号,得到损失函数:
根据损失函数图像,可以看出:
当 时,损失函数为 ,如红线所示,预测值离 1 越近,损失越小;
当 时,损失函数为 ,如绿线所示,预测值离 -1 越近,损失越小。
参考
共有 0 条评论