1、前言
在kaggle数据竞赛网站中,LR算法出场率最高。
除了应用广泛外,LR的建模过程还体现了数据建模中很重要的思想:对问题划分层次,并利用非线性变换和线性模型的组合,将未知的复杂问题分解为已知的简单问题
可以说:理解好逻辑回归的细节,就掌握了数据建模的精髓。
2、什么是逻辑回归
逻辑回归虽说名字带有回归,但却是分类算法。
其原理是将样本的特征和样本发生的概率联系起来,即预测的是样本发生的概率,再通过阈值判定进行分类,由于预测的概率是连续变量,所以叫做逻辑回归算法。
2.1 假设函数推导
根据逻辑回归算法原理,求得样本发生的概率,再通过阈值判定,分为正例和反例,正例和反例的函数,其实是单位跃迁函数,但是简单的单位跃迁函数并不连续,所以使用sigmoid函数来代替单位跃迁函数。
3、逻辑回归模型的损失函数
因为逻辑回归算法属于分类算法,最好的评价标准是分类准确率,但是算法模型预测值为连续变量,则需要变通一下,引入统计学先验概率
我们将损失函数分成两类:
- 如果给定样本的真实类别y=1,则估计出来的概率p越小,损失函数越大(估计错误)
- 如果给定样本的真实类别y=0,则估计出来的概率p越大,损失函数越大(估计错误)
分析上面的公式: - 当y=1时,损失函数的特点是,预测值越趋于0,损失越大;越趋于1,损失越小。
- 当y=0时,损失函数的特点是,预测值越趋于1,损失越大;越趋于0,损失越小。
刚好符合我们的期望损失函数,就是当模型预测失败时我们给予一个很大的损失,当模型预测成功时,给予一个很小的损失。
然后将两类损失函数合一:
4、损失函数的梯度下降法
对于损失函数:
对应的梯度为:
再对sigmoid函数进行链式求导。最后得到向量化后的梯度结果为:
5、python实现逻辑回归代码
(略)