逻辑回归(LR)算法

一、算法介绍

Logistic regression (逻辑回归)是一种非线性回归模型,特征数据可以是连续的,也可以是分类变量和哑变量,是当前业界比较常用的机器学习方法,用于估计某种事物的可能性,主要的用途:

  1. 分类问题:如,反垃圾系统判别,通过计算被标注为垃圾邮件的概率和非垃圾邮件的概率判定;
  2. 排序问题:如,推荐系统中的排序,根据转换预估值进行排序;
  3. 预测问题:如,广告系统中CTR预估,根据CTR预估值预测广告收益;

这个世界是随机的,所以万物的发生都可以用可能性或者几率(Odds)来表达。“几率”指的是某事物发生的可能性与不发生的可能性的比值。

LR可以用来回归,也可以用来分类,主要是二分类。logistic回归模型在多分类问题上的推广是softmax regression。

二、算法原理

Regression问题的常规步骤为:

1. 寻找h函数(即hypothesis); 2. 构造J函数(损失函数); 3. 想办法使得J函数最小并求得回归参数(θ)

LR在分类问题中,是经过学习得到一组权值,θ0,θ1,..,θm.当加入测试样本集的数据时,权值与测试数据线性加和,即z=θ0+θ1*x1+...+θm*xm,求出一个z值为样本的分类概率。LR分类问题主要在于得到分类的权值,权值是通过h函数求得。在实际应用中我们需要将Hypothesis的输出界定在0和1之间,既:

但是线性回归无法做到,可以引用LR的h函数是一个Sigmoid函数:

g(z)是一个Sigmoid函数,函数的定义域(-inf,+inf),值域为(0,1),因此基本的LR分类器只适合二分类问题,Sigmoid函数是一个“S”形,如下图:

对Sigmoid函数求导数形式为:

对分类结果取1和0的概率假定为如下:

P (y = 1 | x; θ) = hθ (x)

P (y = 0 | x; θ) = 1 − hθ (x)

对于单个样本的后验概率可以合成表示成:

logistic回归方法主要是用最大似然估计来学习的,所以m个样本的后验概率的似然函数为:

最大似然估计是求使ℓ(θ)取最大值的θ。现在我们需要得到LR算法的cost functionJ(θ),根据李航博士《统计学习方法》中对cost function说明,统计学习中常用的损失函数有以下几种:

(1) 0-1损失函数(0-1 loss function):

(2) 平方损失函数(quadratic loss function)

(3) 绝对损失函数(absolute loss function)

L(Y,f(x))=|Y-f(x)|

(4) 对数损失函数(logarithmic loss function) 或对数似然损失函数(log-likelihood loss function)

L(Y,P(Y|X))=-logP(Y|X)

因此,根据对数损失函数,可以得到损失函数如下:

对损失函数求最小值,相当于对ℓ(θ)求最大值,式中m为了推导方便引入的,并无实际意义。我们在这里用的是梯度上升算法求解,即θ := θ + α∇ℓ(θ),我们以一个训练实例(x,y)为例,利用偏导求每次一个梯度方向上损失函数最大值,通过梯度上升达到局部最优解。下图为梯度下降方法示意图。

因此梯度上升方法如下:

通过上式可以得到权值进行预测。

三、python实现过程

实现过程:

改进算法,随机梯度上升算法:

1)第一种改进算法,随机梯度算法,加大计算每组数据的梯度。

Logistic回归优点:

  1、实现简单;

  2、分类时计算量非常小,速度很快,存储资源低;

缺点:

  1、容易欠拟合,一般准确度不太高

  2、只能处理两分类问题(在此基础上衍生出来的softmax可以用于多分类),且必须线性可分;

参考内容:

Coursera公开课笔记: 斯坦福大学机器学习第六课“逻辑回归(Logistic Regression)”

李航博士《统计学习方法》

免责声明:本文系网络转载。版权归原作者所有。如涉及版权,请联系删除!

原文发布于微信公众号 - 智能算法(AI_Algorithm)

原文发表时间:2017-04-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏IT技术精选文摘

深入浅出谈人脸识别技术

在深度学习出现后,人脸识别技术才真正有了可用性。这是因为之前的机器学习技术中,难以从图片中取出合适的特征值。轮廓?颜色?眼睛?如此多的面孔,且随着年纪、光线、拍...

4406
来自专栏新智元

Reddit热文:MIT\北大\CMU合作, 找到深度神经网络全局最优解

在目标函数非凸的情况下,梯度下降在训练深度神经网络中也能够找到全局最小值。本文证明,对于具有残差连接的超参数化的深度神经网络(ResNet),采用梯度下降可以在...

843
来自专栏机器之心

无需深度学习框架,如何从零开始用Python构建神经网络

1605
来自专栏小樱的经验随笔

回归与梯度下降法及实现原理

回归与梯度下降 回归在数学上来说是给定一个点集,能够用一条曲线去拟合之,如果这个曲线是一条直线,那就被称为线性回归,如果曲线是一条二次曲线,就被称为二次回归,回...

3906
来自专栏外文文献翻译

从潜在向量生成大图像 - 第二部分

更多分辨率为1080x1080的MNIST数字

23710
来自专栏SIGAI学习与实践平台

深度多目标跟踪算法综述

原创声明:本文为 SIGAI 原创文章,仅供个人学习使用,未经允许,不得转载,不能用于商业目的。

3482
来自专栏计算机视觉战队

线性分类原来是这么一回事,skr~

SVM是最常用的两个分类器之一,而另一个就是Softmax分类器,它的损失函数与SVM的损失函数不同。

1173
来自专栏AI深度学习求索

弱监督语义分割论文SEC详解(2016-ECCV):Seed, Expand and Constrain

论文SEC-Seed, Expand and Constrain: Three Principlesfor Weakly-Supervised Image Se...

2811
来自专栏ACM算法日常

第三篇:机器学习之代价函数和梯度下降

从隐层开始每个神经元是上一层逻辑回归的结果并且作为下一层的输入,篇幅限制,我们将在下一篇将详细介绍逻辑回归的公式与代码

862
来自专栏计算机视觉战队

每日一学——线性分类笔记(下)

Softmax分类器 SVM是最常用的两个分类器之一,而另一个就是Softmax分类器,它的损失函数与SVM的损失函数不同。对于学习过二元逻辑回归分类器的读者来...

4207

扫码关注云+社区