logistic回归又称logistic回归分析,是一种广义的线性回归分析模型,经常使用于数据挖掘,疾病自动诊断,经济预测等领域。机器学习
logistic回归是一种广义线性回归(generalized linear model),所以与多重线性回归分析有不少相同之处。函数
其公式以下:学习
其图像以下:spa
咱们经过观察上面的图像能够发现,逻辑回归的值域为(0, 1),当输入为0时,其输出为0.5;当输入小于0,而且愈来愈小时,其输出愈来愈接近于0;相反的,当其输入大于0,而且愈来愈大时,其输出愈来愈接近于1。
3d
一般咱们使用线性回归来预测值,但逻辑回归随有“回归”二字,却一般是用来解决二分类问题的。blog
当其输出大于0.5时,咱们能够认为该样本属于甲类;小于0.5时,认为该样本属于已类。数学
可是因为一个样本数据一般会有多个特征,咱们不能将其直接带入logistic回归公式中,因此,就须要借助以前所介绍的线性回归,使该样本的多个特征值生成一个特定的值,在带入公式中,对其分类,因此z的表达式以下:it
便可获得对于一个数据关于逻辑回归的详细表达式:数据挖掘
经过上式,咱们就能够对一个任意数据进行逻辑回归分析了,可是这当中存在一个问题,即关于θ的取值,只有公式中的θ已知,咱们才能对一个未分类的数据运用此公式,那么该如何求得θ呢?io
请看下面的公式推导。
在上面,咱们获得 后,须要求得θ,关于如何求得θ,将在此进行详细分析。
一般在机器学习中,咱们经常有一个过程叫训练,所谓训练,即经过已知分类(或标签)的数据,求得一个模型(或分离器),而后使用这个模型对未知标签的数据打上标签(或者对其进行分类)。
因此,咱们使用样本(即已知分类的数据),进行一系列的估算,获得θ。这个过程在几率论中叫作参数估计。
在此,咱们将使用极大似然估计的推导过程,求得关于计算θ的公式:
(1) 首先咱们令:
(2) 将上述两式整合:
(3) 求其似然函数:
(4) 对其似然函数求对数:
(5) 当似然函数为最大值时,获得的θ便可认为是模型的参数。求似然函数的最大值,咱们可使用一种方法,梯度上升,但咱们能够对似然函数稍做处理,使之变为梯度降低,而后使用梯度降低的思想来求解此问题,变换
的表达式以下:
(因为乘了一个负的系数,因此梯度上升变梯度降低。)
(6) 由于咱们要使用当前的θ值经过更新获得新的θ值,因此咱们须要知道θ更新的方向(即当前θ是加上一个数仍是减去一个数离最终结果近),因此获得J(θ)后对其求导即可获得更新方向(为何更新方向这么求?以及获得更新方向后为何按照下面的式子处理?请看下方的梯度降低公式的演绎推导),求导过程以下:
(7) 获得更新方向后即可使用下面的式子不断迭代更新获得最终结果。
关于求解函数的最优解(极大值和极小值),在数学中咱们通常会对函数求导,而后让导数等于0,得到方程,而后经过解方程直接获得结果。可是在机器学习中,咱们的函数经常是多维高阶的,获得导数为0的方程后很难直接求解(有些时候甚至不能求解),因此就须要经过其余方法来得到这个结果,而梯度降低就是其中一种。
对于一个最简单的函数:, 咱们该如何求出y最小是x的值呢(不经过解2x = 0的方法)?
(1) 首先对x任取一个值,好比x = -4,能够获得一个y值。
(2) 求得更新方向(若是不求更新方向对x更新,好比x-0.5,或x+0.5,获得图像以下)。
能够发现,咱们若是是向负方向更新x,那么我就偏离了最终的结果,此时咱们应该向正方向更新,因此咱们在对x更新前须要求得x的更新方向(这个更新方向不是固定的,应该根据当前值肯定,好比当x=4时,应向负方向更新)
求其导函数在这一点的值,y' = 2x,x = -4, y' = -8,那么它的更新方向就是y',对x更新咱们只需x:=x-α·y'(α(大于0)为更新步长,在机器学习中,咱们叫它学习率)。
PS:以前说了是多维高阶方程,没法求解,而不是不能对其求导,因此能够对其求导,而后将当前x带入。
(3) 不断重复以前的(1),(2)步,直到x收敛。
梯度降低方法:
对于这个式子,若是:
(1) m是样本总数,即每次迭代更新考虑全部的样本,那么就叫作批量梯度降低(BGD),这种方法的特色是很容易求得全局最优解,可是当样本数目不少时,训练过程会很慢。当样本数量不多的时候使用它。
(2)当m = 1,即每次迭代更新只考虑一个样本,公式为,叫作随机梯度降低(SGD),这种方法的特色是训练速度快,可是准确度降低,并非全局最优。好比对下列函数(当x=9.5时,最终求得是区部最优解):
(3) 因此综上两种方法,当m为全部样本数量的一部分(好比m=10),即咱们每次迭代更新考虑一小部分的样本,公式为,叫作小批量梯度降低(MBGD),它克服了上述两种方法的缺点而又兼顾它们的优势,在实际环境中最常被使用。