Logistic Regression
-
线性回归
形如
的式子,并且输入x预测连续型y,其中
是参数的式子称之为线性回归。其中用矩阵形式表示
问题:如何用线性回归方程来预测二分类问题?即 y ∈{0,1}
2 .Sigmoid函数
既然线性回归方程在预测二分类问题时存在很显然的问题,那么能不能找到一个函数或者一个映射将线性回归值转变为(0,1)之间的数字,在依据一定的大小关系判定实例所属的类别?在茫茫数学的世界中,很幸运的是数学家为我们找到了这样的函数或者说映射。先把这里的映射或者函数定义为g,它为
其中,转化的逻辑为:
判断实例x所属类别的依据就是:
最终结合线性回归为:
2.1 对Sigmoid函数的讨论
函数
的图像是:
由图像可以清晰的看到如下的性质:
-
当x=0时,g(x) = 0.5
-
函数g(x)有两条渐近线,y = 0 与 y = 1 叫做水平渐近线。
-
函数g(x)的导数为:
而
故有:
3 Logistic Regression
3.1 生成模型与判别模型的概念
生成模型(generativemodel):生成模型主要由联合概率分布p(x,y),求出条件概率分布p(y|x)作为预测的模型。 即:
下边就是对于输入的实例x对应的类别要最大化:
常见的生成模型有: 朴素贝叶斯(NaïveBayes) 高斯判别模型(Gaussiandiscriminant analysis) 隐马尔可夫模型(hiddenmarkov model) 判别模型(discriminativemodel):又数据直接学习决策函数f(x)或者条件概率p(y|x),关心的是给定输入x,因该预测什么样的输出Y。 常见的有: 逻辑回归模型(LogisticRegression) 支持向量机(supportvector machine) 决策树(decisiontree) K-近邻法(K-NN)
3.2 逻辑回归模型(LogisticRegression)
所以,比较两个条件概率值的大小,将x分到概率值较大的一类。
3.3 决策边界(dicisionboundary)
对于Sigmoid函数
当g(x)> 0.5 时,此时的实例x为正例,即等价于:
对于逻辑回归模型而言:
即
此时的所有满足这个式子的实例x被分为正例,在二维平面上它为直线方程,此时的所有满足条件的x分到直线的上边,同理
此时的所有满足这个式子的实例x被分为负例,在二维平面上它为直线方程。 二维图像的决策边界图像为:
万一,实例不是线性可分的呢? 此时的决策边界为:
对应的决策边界方程为圆的方程:
3.4 逻辑回归模型(LogisticRegression)的参数估计与损失函数
逻辑回归模型:
注意到, ???? ∈{0,1} 与
即类别y看作属于0-1分布的伯努利分布。 因此可以建立似然函数:
=
此时的对数似然函数:
此时,最大化l(θ)即可求出参数????。
最大化等价于:
这样做的目的即可以方便的定义损失函数,又可以求出参数,何乐而不为呢。 因为损失函数需要极小化,因此最大化
等价于极小化
故可以定义损失函数:
此时用梯度下降法求解参数。 基本的梯度下降法公式:
其中的????称之为学习率,后边详细讨论。后边的部分是损失函数对参数求偏导。
由上边的性质(4)可知
故继续求偏导:
故得到了参数的更新公式:
其中用向量化的式子来表示为:
其中这里的X,y分别为特征矩阵和类别矩阵。 用一个简单的例子说明特征矩阵和类别矩阵是什么。
特征x1与x2分别有样本9个,则此时的特征矩阵为:
类别矩阵为:
此时的特征矩阵和类别矩阵的维数分别为:m✖n与m✖1.m是样本的个数,n是特征数目。
此时的参数选定
开始不断的更新参数直至收敛为止。 此时的h函数为:
将样本带入此函数得到的值为:
故此时的更新公式中的偏导部分为:
=
具体的计算过程用Python来计算出来:
将更新得参数再带到函数g里去进行再次得更新直至收敛为止。
后续精彩内容敬请关注校园宽带小王子来侃大山!!!