关键词:
1 前言
虽然该机器学习算法名字里面有“回归”,但是它其实是个分类算法。取名逻辑回归主要是因为是从线性回归转变而来的。
logistic回归,又叫对数几率回归。
2 logistic回归和线性回归的关系
2.1 线性回归模型
首先给出线性回归模型:
$h_\\theta(x_1, x_2, ...x_n) = \\theta_0 + \\theta_1x_1 + ... + \\theta_nx_n$
矩阵化如下:
$h_θ(X)=Xθ$
得到模型,需要求出需要的损失函数,一般线性回归我们用均方误差作为损失函数。损失函数代数法表示如下:
$J(\\theta_0, \\theta_1..., \\theta_n) = \\sum\\limits_i=0^m(h_\\theta(x_0, x_1, ...x_n) - y_i)^2$
矩阵化表示如下:
$J(\\mathbf\\theta) = \\frac12(\\mathbfX\\theta - \\mathbfY)^T(\\mathbfX\\theta - \\mathbfY)$
2.2 广义线性回归
其次给出广义线性回归:
如输出 $Y$ 不满足和 $X$ 的线性关系,但 $log \\ Y$ 和 $X$ 满足线性关系,模型函数如下:
$log \\ Y=Xθ$
这样对与每个样本的输入$y$,用$log \\ y$去对应, 从而仍然可以用线性回归的算法去处理这个问题。把 $log\\ y$ 一般化,假设这个函数是单调可微函数 $g(.)$ ,则一般化的广义线性回归形式是:$g(Y)=Xθ$ 或者 $Y=g−1(Xθ)$。这个函数 $g(.)$ 通常称为联系函数。后面会讲到的逻辑回归这是在联系函数的基础上进行分类的。
知道线性回归模型只能进行回归学习,但是若要是做分类任务如何做?答案是在“广义线性回归”模型中:找一个单调可微函数将分类任务的真实标记 $y$ 与线性回归模型的预测值联系起来便可。
2.3 引出logistic 回归
logistic 回归处理二分类问题,输出标记 $y=0,1$,考虑到线性回归模型的预测值 $z=wx+b$ 是一个实值,要将实值 $z$ 转化成 $0/1$ 值,假设可选函数 $g(.)$ 是“单位阶跃函数”:
$y=\\left\\\\beginmatrix 0 & ,z<0 \\\\ 0.5 & ,z=0\\\\ 1 & ,z>0 \\endmatrix\\right.$
预测值大于 $0$ 判断为正例,小于 $0$ 则判断为反例,等于 $0$ 任意判断。
由于单位阶跃函数是非连续的函数,需要一个连续函数,使用Sigmoid 连续函数作为 $g(.)$ 取代单位阶跃函数:
$g(z)=\\frac11+e^(-z) $
Sigmoid 函数在一定程度上近似单位阶跃函数,同时单调可微,图像如下所示:
如图所示,Sigmoid 函数会把自变量 $x\\in\\-\\infty,+\\infty\\$ 映射到 $y\\in\\-1,+1\\$ 上。
Sigmoid 函数处处可导,导数为 $S^\\prime(x)=S(x)(1-S(x))$ ,导数图像如下。从图中可以看出导数范围是 $S^\\prime\\in\\0,0.25\\$。
3 逻辑回归模型
线性回归模型:
$Z_\\theta=X\\theta=w^Tx+b$
Sigmoid函数:
$g(z)=\\frac11+e^-z$
套上 Sigmoid 函数形成 logistic 回归模型的预测函数,可以用于二分类问题:
$h_\\theta (X)=g(\\theta^TX)=\\frac11+e^-\\theta^TX $
一般化
$y=\\frac11+e^-(w^Tx+b) $
$0.5$ 可以作为分类边界
当 $z \\ge 0$ 的时候 $g(z) \\ge 0.5 $
当 $\\theta ^TX \\ge 0 $ 的时候 $g(\\theta ^TX ) \\ge 0.5 $
当 $z \\le 0$ 的时候 $g(z) \\le 0.5 $
当 $\\theta ^TX \\le 0 $ 的时候 $g(\\theta ^TX ) \\le 0.5 $
对上式的预测函数做一个变换为:
$ln\\fracy1-y=w^Tx+b$
观察上式可得:若将 $y$ 视为样本 $x$ 作为正例的可能性,则 $1-y$ 便是其反例的可能性。二者的比值便被称为“几率”,反映了 $x$ 作为正例的相对可能性,这也是logistic回归又被称为对数几率回归的原因。
线性回归模型和logistic回归的关系:
logistic 回归分类模型的预测函数是在用线性回归模型的预测值的结果去逼近真实标记的对数几率!实现了将线性回归的预测值和分类任务的真实标记联系一起。
4 二项逻辑斯谛回归模型
二项逻辑斯谛回归模型是如下的条件概率分布:
$P( Y = 1 |x) = \\dfrac11+e^-(w \\cdot x + b )$
$\\quad\\quad\\quad\\quad\\quad= \\dfrace^(w \\cdot x + b )( 1+e^-(w \\cdot x + b )) \\cdot e^(w \\cdot x + b )$
$\\quad\\quad\\quad\\quad\\quad= \\dfrace^(w \\cdot x + b )1+e^( w \\cdot x + b )$
$ P ( Y = 0 | x ) = 1- P ( Y = 1 | x )$
$\\quad\\quad\\quad\\quad\\quad=1- \\dfrace^(w \\cdot x + b )1+e^( w \\cdot x + b )$
$\\quad\\quad\\quad\\quad\\quad=\\dfrac11+e^( w \\cdot x + b )$
其中,$x \\in R^n$ 是输入,$Y \\in \\left\\ 0, 1 \\right\\$ 是输出,$w \\in R^n$ 和 $b \\in R$ 是参数,$w$ 称为权值向量,$b$ 称为偏置,$w \\cdot x$ 为 $w$ 和 $b$ 的内积。
可将权值权值向量和输入向量加以扩充,即$w = ( w^(1),w^(2),\\cdots,w^(n),b )^T$,$x = ( x^(1),x^(2),\\cdots,x^(n),1 )^T$,则逻辑斯谛回归模型:
$P ( Y = 1 | x ) = \\dfrace^(w \\cdot x )1+e^( w \\cdot x ) $
$P ( Y = 0 | x ) =\\dfrac11+e^( w \\cdot x )$
一个事件的几率是指事件发生的概率 $p$ 与事件不发生的概率 $1−p$的比值,即
$\\dfracp1-p$
该事件的对数几率(logit函数)
$logit( p ) = \\log \\dfracp1-p$
对于逻辑斯谛回归模型
$log \\dfracP ( Y = 1 | x )1-P ( Y = 1 | x ) = w \\cdot x$
即输出 $Y=1$ 的对数几率是输入$x$ 的线性函数。
5 模型参数估计
逻辑斯蒂回归模型学习时,对于给定的训练数据集 $T = \\ ( x_1, y_1 ), ( x_2, y_2 ), \\cdots, ( x_N, y_N ) \\ $
其中,$x_i \\in R^n+1, y_i \\in \\left\\ 0, 1 \\right\\, i = 1, 2, \\cdots, N$。
设:
$ P ( Y =1 | x ) = \\pi ( x ) ,\\quad P ( Y =0 | x ) = 1 - \\pi ( x )$
似然函数
$l ( w ) = \\prod_ \\limits i=1^N P ( y_i | x_i ) $
$= P ( Y = 1 | x_i , w ) \\cdot P ( Y = 0 | x_i, w ) $
$= \\prod_ \\limits i=1^N [ \\pi ( x_i ) ]^y_i[ 1 - \\pi ( x_i ) ]^1 - y_i$
对数似然函数
$L ( w ) = \\log l ( w ) $
$= \\sum_ \\limits i=1^N [ y_i \\log \\pi ( x_i ) + ( 1 - y_i ) \\log ( 1 - \\pi ( x_i ) ) ]$
$= \\sum_ \\limits i=1^N [ y_i \\log \\dfrac\\pi ( x_i )1- \\pi ( x_i ) + \\log ( 1 - \\pi ( x_i ) ) ]$
$= \\sum_ \\limits i=1^N [ y_i ( w \\cdot x_i ) - \\log ( 1 + \\exp ( w \\cdot x ) ) ]$
假设 $w$ 的极大似然估计值是 $\\hatw$,则学得得逻辑斯谛回归模型
$P ( Y = 1 | x ) = \\dfrace^(\\hatw \\cdot x )1+e^( \\hatw \\cdot x )$
$P ( Y = 0 | x ) =\\dfrac11+e^( \\hatw \\cdot x )$
假设离散型随机变量 $Y$ 的取值集合 $\\ 1, 2, \\cdots, K \\$,则多项逻辑斯谛回归模型
$P ( Y = k | x ) = \\dfrace^(w_k \\cdot x )1+ \\sum_ \\limits k=1^K-1e^( w_k \\cdot x ), \\quad k=1,2,\\cdots,K-1$
$P ( Y = K | x ) = 1 - \\sum_ \\limits k=1^K-1 P ( Y = k | x )$
$= 1 - \\sum_ \\limits k=1^K-1 \\dfrace^(w_k \\cdot x )1+ \\sum_ \\limits k=1^K-1e^( w_k \\cdot x )$
$= \\dfrac11+ \\sum_ \\limits k=1^K-1e^( w_k \\cdot x )$
6 逻辑回归的损失函数
逻辑回归使用极大似然法来推导出损失函数。
根据逻辑回归的定义,假设样本输出是 $0$ 或者 $1$ 两类。那么有:
$P(y=1|x,\\theta ) = h_\\theta(x)$
$P(y=0|x,\\theta ) = 1- h_\\theta(x)$
把两种情况和一起就是如下公式:
$P(y|x,\\theta ) = h_\\theta(x)^y(1-h_\\theta(x))^1-y$
得到了 $y$ 的概率分布函数表达式,就可以用似然函数最大化来求解需要的模型系数$\\theta$。最大似然函数$L(\\theta)$:
损失函数就是对数似然函数的负值
$J(\\theta) = -lnL(\\theta) = -\\sum\\limits_i=1^m(y^(i)log(h_\\theta(x^(i)))+ (1-y^(i))log(1-h_\\theta(x^(i))))$
7 逻辑回归的损失函数的优化方法
对于逻辑回归的损失函数极小化,有比较多的方法,最常见的有梯度下降法,坐标轴下降法,牛顿法等。
7.1 逻辑回归的正则化
逻辑回归也会面临过拟合问题,所以我们也要考虑正则化。常见的有L1正则化和L2正则化。
L1正则化形式:$J(\\theta) = -lnL(\\theta) + \\alpha|\\theta|$
L2正则化形式:$J(\\theta) = -lnL(\\theta) + \\frac12\\alpha|\\theta|^2$
8 总结
逻辑回归假设数据服从伯努利分布,在线性回归的基础上,套了一个二分类的Sigmoid函数,使用极大似然法来推导出损失函数,用梯度下降法优化损失函数的一个判别式的分类算法。逻辑回归的优缺点有一下几点:
8.1 优点
- 实现简单,广泛的应用于工业问题上;
- 训练速度较快。分类速度很快
- 内存占用少;
- 便利的观测样本概率分数,可解释性强;
8.2 缺点
- 当特征空间很大时,逻辑回归的性能不是很好;
- 一般准确度不太高
- 很难处理数据不平衡的问题
参考文献
2 logistic回归详解一:为什么要使用logistic函数
机器学习逻辑回归介绍
...辑回归的应用场景逻辑回归(LogisticRegression)是机器学习中的一种分类模型,逻辑回归是一种分类算法,虽然名字中带有回归。由于算法的简单和高效,在实际中应用非常广泛。广告点击率是否为垃圾邮件是... 查看详情
机器学习——逻辑回归(logisticregression)
1前言 虽然该机器学习算法名字里面有“回归”,但是它其实是个分类算法。取名逻辑回归主要是因为是从线性回归转变而来的。 logistic回归,又叫对数几率回归。2logistic回归和线性回归的关系2.1线性回归模型 首先给... 查看详情
机器学习逻辑回归(logisticregression)
...了个大概,剩下的细节只能自己继续摸索。从本质上讲:机器学习就是一个模型对外界的刺激(训练样本)做出反应,趋利避害(评价标准)。 1.什么是逻辑回归?许多人对线性回归都比较熟悉,但知道逻辑回归的人可能就... 查看详情
[机器学习]--逻辑回归总结
逻辑回归是一个分类算法,它可以处理二元分类以及多元分类。虽然它名字里面有“回归”两个字,却不是一个回归算法。那为什么有“回归”这个误导性的词呢?个人认为,虽然逻辑回归是分类模型,但是它的原... 查看详情
andrewng机器学习:逻辑回归
1.逻辑回归解决什么问题?逻辑回归用于分类问题。对于二分类问题,输入多个特征,输出为是或不是(也可以写作1或0)。逻辑回归就是这样一个用于分类的模型。2.什么是逻辑回归?逻辑回归建立在线性回归的基础上。首先,... 查看详情
机器学习100天(十七):017逻辑回归梯度下降
机器学习100天,今天讲的是:逻辑回归-梯度下降!在讲解了逻辑回归的基本原理和损失函数之后,我们来推导逻辑回归模型中参数w和b的梯度表达式。我们之前介绍过,计算逻辑回归的代价函数实际上包含了下面三个过程:Z=WTX+... 查看详情
机器学习100天(十七):017逻辑回归梯度下降
机器学习100天,今天讲的是:逻辑回归-梯度下降!在讲解了逻辑回归的基本原理和损失函数之后,我们来推导逻辑回归模型中参数w和b的梯度表达式。我们之前介绍过,计算逻辑回归的代价函数实际上包含了下面三个过程:Z=WTX+... 查看详情
机器学习算法---逻辑回归及梯度下降
一、逻辑回归简介 logistic回归又称logistic回归分析,是一种广义的线性回归分析模型,常用于数据挖掘,疾病自动诊断,经济预测等领域。 logistic回归是一种广义线性回归(generalizedlinearmodel),因此与多重线性回归分析... 查看详情
机器学习笔记逻辑回归
一、逻辑回归问题二分类的问题为是否的问题,由算出的分数值,经过sign函数输出的是(+1,-1),想要输出的结果为一个几率值,则需要改变函数模型,其中,,则逻辑回归的函数为二、逻辑回归错误评价线性分类和线性回归... 查看详情
逻辑回归|机器学习|分类算法(代码片段)
目录1.逻辑回归1.1逻辑回归原理1.2sigmoid函数2.相关代码2.1LogisticsRegression类2.2求解代码2.3输出结果3.直接调库使用1.逻辑回归1.1逻辑回归原理∙\\bullet∙逻辑回归又叫对数几率回归,是一种对数几率模型,可以求解二分类问... 查看详情
机器学习——线性回归分类与逻辑回归
http://antkillerfarm.github.io/序这是根据AndrewNg的《机器学习讲义》,编写的系列blog。http://www.cnblogs.com/jerrylead/archive/2012/05/08/2489725.html这是网友jerrylead翻译整理的版本,也是本文的一个重要的参考。http://www.tcse.cn/~xulijie/这是jerrylea 查看详情
机器学习100天(十六):016逻辑回归损失函数
机器学习100天,今天讲的是:逻辑回归损失函数。一、如何找到最佳分类直线讲完了逻辑回归基本原理之后,我们再来思考一个非常关键的问题:就是如何找到最佳的分类直线呢?如图中所示,如何判断这三条直线哪个更好?线... 查看详情
机器学习100天(十六):016逻辑回归损失函数
机器学习100天,今天讲的是:逻辑回归损失函数。一、如何找到最佳分类直线讲完了逻辑回归基本原理之后,我们再来思考一个非常关键的问题:就是如何找到最佳的分类直线呢?如图中所示,如何判断这三条直线哪个更好?线... 查看详情
机器学习逻辑回归算法(代码片段)
逻辑回归算法学习目标1.逻辑回归的介绍1.1逻辑回归的应用场景1.2逻辑回归的原理1.2.1输入1.2.2激活函数1.3损失以及优化1.3.1损失1.3.2优化1.4小结2.逻辑回归api介绍3.案例:癌症分类预测-良/恶性乳腺癌肿瘤预测3.1背景介绍3.... 查看详情
机器学习---逻辑回归(machinelearninglogisticregressionii)
在《机器学习---逻辑回归(一)(MachineLearningLogisticRegressionI)》一文中,我们讨论了如何用逻辑回归解决二分类问题以及逻辑回归算法的本质。现在来看一下多分类的情况。 现实中相对于二分类问题,我们更常遇到的是多... 查看详情
第五篇[机器学习]机器学习,逻辑回归comeon
逻辑回归,简单的说,就是用sigmoid函数把连续函数归一化转化成离散的几个可能的结果。逻辑回归的算法最大似然法: 我自己的理解,最大似然法就是在你观测到某一系列事件出现的可能性之后,倒推该事件最可能的... 查看详情
机器学习——从线性回归到逻辑斯特回归
...行总结,其中图片多来自coursera课程上。线性回归是机器学习中很好理解的一种算法。我们以常见的房屋销售为例来进行简单分析:假设我们统计的一个房屋销售的数据如下:在此 查看详情
机器学习:逻辑回归(ovr与ovo)(代码片段)
...对一的意思;改造方法不是指针对逻辑回归算法,而是在机器学习领域有通用性,所有二分类的机器学习算 查看详情