Coursera机器学习课程笔记(3) Logistic Regression

逻辑回归(Logistic Regression)

分类问题

在分类问题中,我们尝试预测的是结果是否属于某一个类(例如正确或错误)。分类问题的例子有:判断一封电子邮件是否是垃圾邮件;判断一次金融交易是否是欺诈等等。

我们从二元的分类问题开始讨论。

我们将因变量(dependant variable)可能属于的两个类分别称为负向类(negative class)和正向类(positive class),则因变量

其中 0 表示负向类,1 表示正向类。

假说表示

回顾在一开始提到的乳腺癌分类问题,我们可以用线性回归的方法求出适合数据的一条直线:

根据线性回归模型我们只能预测连续的值,然而对于分类问题,我们需要输出 0 或 1,我们可以预测:
当 hθ 大于等于 0.5 时,预测 y=1
当 hθ 小于 0.5 时,预测 y=0 对于上图所示的数据,这样的一个线性模型似乎能很好地完成分类任务。假使我们又观测到一个非常大尺寸的恶性肿瘤,将其作为实例加入到我们的训练集中来,这将使得我们获得一条新的直线。

这时,再使用 0.5 作为阀值来预测肿瘤是良性还是恶性便不合适了。可以看出,线性回
归模型,因为其预测的值可以超越[0,1]的范围,并不适合解决这样的问题。
我们引入一个新的模型,逻辑回归,该模型的输出变量范围始终在 0 和 1 之间。 逻辑
回归模型的假设是:hθ(X)=g(θTX)
其中:
X 代表特征向量
g 代表逻辑函数(logistic function)是一个常用的逻辑函数为 S 形函数(Sigmoid function),
公式为:
该函数的图像为:

合起来,我们得到逻辑回归模型的假设:
对模型的理解:
hθ(x)的作用是,对于给定的输入变量,根据选择的参数计算输出变量=1 的可能性
(estimated probablity)即
例如,如果对于给定的 x,通过已经确定的参数计算得出 hθ(x)=0.7,则表示有 70%的几
率 y 为正向类,相应地 y 为负向类的几率为 1-0.7=0.3。

判定边界

现在假设我们有一个模型:并且参数 θ 是向量[-3 1 1]。 则当-3+x1+x2 大于等于 0,即 x1+x2 大于等于 3 时,模型将预测 y=1。

假使我们的数据呈现这样的分布情况,怎样的模型才能适合呢?

因为需要用曲线才能分隔 y=0 的区域和 y=1 的区域,我们需要二次方特征: 假设参数

是[-1 0 0 1 1],则我们得到的判定边界恰好是圆点在原点且半径为 1 的圆形。
我们可以用非常复杂的模型来适应非常复杂形状的判定边界。

代价函数

对于线性回归模型,我们定义的代价函数是所有模型误差的平方和。理论上来说,我们也可以对逻辑回归模型沿用这个定义,但是问题在于,当我们将 带入到这样定义了的代价函数中时,我们得到的代价函数将是一个非凸函数(non-convex function)。

这意味着我们的代价函数有许多局部最小值,这将影响梯度下降算法寻找全局最小值。
因此我们重新定义逻辑回归的代价函数为:
其中


将构建的 Cost(hθ(x),y)简化如下:

带入代价函数得到:

在得到这样一个代价函数以后,我们便可以用梯度下降算法来求得能使代价函数最小的参数了。算法为:

注:虽然得到的梯度下降算法表面上看上去与线性回归的梯度下降算法一样,但是这里的 hθ(x)=g(θTX)与线性回归中不同,所以实际上是不一样的。另外,在运行梯度下降算法之前,进行特征缩放依旧是非常必要的。

一些梯度下降算法之外的选择: 除了梯度下降算法以外,还有一些常被用来令代价函数最小的算法,这些算法更加复杂和优越,而且通常不需要人工选择学习率,通常比梯度下降算法要更加快速。这些算法有:共轭梯度(Conjugate Gradient),局部优化法(Broyden fletchergoldfarb shann,BFGS)和有限内存局部优化法(LBFGS)。

多类分类:一个对所有


你可能感兴趣的:(机器学习,R数据分析,机器学习,stanford,Andrew-Ng,数据分析,逻辑回归)