首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

逻辑回归个人学习总结篇

正文共5103张图,34张图,预计阅读时间20分钟。

线性回归模型既可以用于回归,也可以用于分类。解决回归问题,可以用于连续目标值的预测。但是针对分类问题,该方法则有点不适应,应为线性回归的输出值是不确定范围的,无法很好的一一对应到我们的若干分类中。即便是一个二分类,线性回归+阈值的方式,已经很难完成一个鲁棒性很好的分类器了。

为了更好的实现分类,逻辑回归诞生了。[逻辑回归是假设数据服从Bernoulli分布,因此LR属于参数模型]通过在线性回归模型中引入Sigmoid函数,将线性回归的不确定范围的连续输出值映射到(0,1)范围内,成为一个概率预测问题。可以把LR看作单层的神经网络。LR目标函数:其中Sigmoid函数g(z)的定义如下:Sigmoid函数的函数图像为:

Sigmoid函数的导数形式:

整合一下,LR的单个样本的目标函数为:假设有n个独立的训练样本{(x1,y1),(x2,y2),…,(xn,yn)},y=。那每一个观察到的样本(xi,yi)出现的概率是:解释一下:那我们的整个样本集,也就是n个独立的样本出现的似然函数为(因为每个样本都是独立的,所以n个样本出现的概率就是他们各自出现的概率相乘),到整个样本的后验概率:

其中:

通过对数进一步化简为,最终LR的目标函数为:

2.1.如何求解模型的参数?LR模型的数学形式确定后,剩下就是如何去求解模型中的参数。

利用链式法对目标函数则进行求导:其中,一共可以分为三部分分别求导:第二部分:第三部分:最终整体的求导形式:

模型参数的更新公式为:沿梯度负方向选择一个较小的步长可以保证损失函数是减小的,另一方面,逻辑回归的损失函数是凸函数(加入正则项后是严格凸函数),可以保证我们找到的局部最优值同时是全局最优。

此外,常用的凸优化的方法都可以用于求解该问题。例如共轭梯度下降,牛顿法,LBFGS等。2.2.Python实现LR的核心代码片段2.3.模型的优化-引入正则化当模型的参数过多时,很容易遇到过拟合的问题。这时就需要有一种方法来控制模型的复杂度,典型的做法在优化目标中加入正则项,通过惩罚过大的参数来防止过拟合。

实际应用时,由于我们数据的维度可能非常高,L1正则化因为能产生稀疏解,使用的更为广泛一些。简言之,把Sigmoid函数换成softmax函数,即可适用于多分类的场景。

整体的目标函数:

通过上面的推导可知,当多分类的K=2时,与使用Sigmoid的二分类是一致的。逻辑回归本质上是一个线性模型,但是,这不意味着只有线性可分的数据能通过LR求解,实际上,我们可以通过2种方式帮助LR实现:针对线性不可分的数据集,可以尝试对给定的两个feature做一个多项式特征的映射,例如:

下面两个图的对比说明了线性分类曲线和非线性分类曲线(通过特征映射)

左图是一个线性可分的数据集,右图在原始空间中线性不可分,但是利用核函数,对特征转换[x1,x2]=>[x1,x2,x21,x22,x1x2]后的空间是线性可分的,对应的原始空间中分类边界为一条类椭圆曲线。

在LR中,我们可以通过在基本线性回归模型的基础上引入交叉项,来实现非线性分类,如下:但是这种直接在交叉项xixj的前面加上交叉项系数wij的方式在稀疏数据的情况下存在一个很大的缺陷,即在对于观察样本中未出现交互的特征分量,不能对相应的参数进行估计。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180801A03XKI00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券