你们有没有每天被垃圾短信骚扰的经历呢?假设我收到了一条短信,这条短信对我来说只有两种情况,要么是对我有用的,要么是没用的。我想通过一个模型去预测该短信是否为垃圾短信,这时候用原来学过的线性回归算法就不太好用了,因为结果只有两种值,要么是垃圾短信(假设为 1),要么不是垃圾短信(假设为 0)。这时候我们要学习一种新的算法去预测这种分类问题,它就是逻辑回归算法(Logistic Regression)。逻辑回归是一种分类算法。

 

让我们来看一下逻辑回归算法,逻辑回归算法的假设函数 hθ(x) 由以下表达式组成:

逻辑回归计算p值 java 实现_吴恩达

其中g(z) 称为逻辑函数(Logistic Function),又称为 Sigmoid Function。g(z) 的函数图像为:

逻辑回归计算p值 java 实现_人工智能_02

对于逻辑回归算法的假设函数 hθ(x) 可以这样理解,对于给定的参数 θ ,一组数据(x, y),通过 x 去预测 y = 1  的概率有多大,或 y = 0 的概率有多大。如果要写成表达式,如下:

逻辑回归计算p值 java 实现_逻辑回归_03

y 只有两种可能性,要么为 0,要么为 1,因此通过 x 去预测 y = 1 和 y = 0 的概率之和为 1。 

 

让我们回到 g(z) 的函数图像,当 z > 0 时,g(z) > 0.5 ,y =1 概率比 y = 0 的概率大,我们就可以假设 y =1。当 z < 0 时,g(z) < 0.5 ,y =1 概率比 y = 0 的概率小,我们就可以假设 y = 0。那么预测 y 的值全部取决于 z 的值。举个例子来说,假设我有以下数据集:

逻辑回归计算p值 java 实现_逻辑回归_04

我想要对该数据集进行分类,那么假设函数 hθ(x) 为:

逻辑回归计算p值 java 实现_吴恩达_05

当我给定参数向量的值为 θ = [-3 1 1] ,那么 z = -3 + x_1  + x_2  ,现在就变成当  -3 + x_1  + x_2  > 0 时 y = 1。我们可以在画出  -3 + x_1  + x_2  =  0 这条直线:

逻辑回归计算p值 java 实现_逻辑回归计算p值 java 实现_06

这条直线划分的两个范围,就是 y = 0 和 y = 1 的范围,这条直线就叫做决策边界(Decision Boundary)。决策边界只与参数 θ 有关。

 

 

ps. 本篇文章是根据吴恩达机器学习课程整理的学习笔记。