【机器学习】入门笔记系列(3)| 逻辑回归模型

「逻辑回归模型」解决的是监督学习中的分类问题。但由于历史原因名字中带有回归,但它实际上是分类算法。还是从最基础的分类问题「二分类问题」开始讲起。

先统一符号表达

x_{j}^{(i)} = 第 i 个训练样本中的第 j 个属性值
x^{(i)} = 第 i 个训练样本所有属性组成的向量
m = 样本数
n = 属性数
X \varepsilon \mathbb{R}^{m*(n+1)},\theta \varepsilon \mathbb{R}^{(n+1)*1},y \varepsilon \mathbb{R}^{m*1}

二分类问题

我们的输出向量 y 不是连续的值范围,而是只有 0 或 1(即 y ε {0,1})。

假设函数 / 逻辑分类器

假设函数应该满足
0 \leqslant h_\theta(x) \leqslant 1

在二分类问题中,假设函数的含义是 h_\theta(x) = P(y = 1 | x; \theta),即 h_\theta(x) = 在给定的输入特征 x 和参数 \theta 下,预测 y = 1 的概率。

假设函数是 Sigmoid 函数,也称为逻辑函数,公式如下:
h_\theta(x) = g(X\theta) = \frac{1}{1+e^{-X\theta}}

Sigmoid 函数

由 Sigmoid 函数的特点:

  1. X\theta \geq 0 时, h_\theta(x) \geq 0.5,也就是此时预测值等于 1 的概率大于等于50%,所以此时预测 y=1
  2. X\theta < 0 时, h_\theta(x) < 0.5,也就是此时预测值等于 1 的概率小于50%,所以此时预测 y=0

而我们称 X\theta = 0 为「决策边界」,决策边界将分隔 y = 0 和 y = 1 的区域。此外,X\theta 不需要是线性组合,可以是圆形函数(如 X\theta = \theta_0 + \theta_1x_{1}^{2} + \theta_2x_{2}^{2})或者其他形状函数,以适应我们的数据。

代价函数

我们不能使用与线性回归相同的代价函数,因为逻辑回归假设函数不是线性函数,若将逻辑回归假设函数代入到线性回归的代价函数中产生的函数会导致输出波动,从而导致许多局部最优。 换句话说,它不是凸函数。

下面的代价函数 J(θ) 对于逻辑回归模型而言一定是凸函数,它是由最大似然估计原理从统计中得出。而关于如何通过最大似然估计原理得到这个公式就不属于目前讲解范畴。

逻辑回归代价函数

通过合并公式,得:

J(\theta) = \frac{1}{m}\sum_{i=1}^{m}Cost(h_\theta(x) - y^{(i)}) = - \frac{1}{m}\sum_{i=1}^{m}(y^{(i)}log(h_\theta(x)) + (1-y^{(i)})log(1 - log(h_\theta(x))))

矢量化后,公式为:

J(\theta) = - \frac{1}{m}(y^T log(g(X\theta)) + (1-y^T)log(1 - g(X\theta)))

梯度下降算法

梯度下降算法通用形式为:

梯度下降算法通式

将逻辑回归的代价函数代入通式并求导后,公式变为:

逻辑回归梯度下降算法

会发现,此算法与我们在线性回归中使用的算法相同。 但两个模型的假设函数 h_\theta(x) 不同,所以两者的梯度下降算法还有有所区别的。

矢量化:
\theta = \theta - \frac{\alpha }{m}X^T(g(X\theta) - y)

除了梯度下降算法能求逻辑回归模型代价函数的最小值外,还有「共轭梯度算法」 、「BFGS」、「L-BFGS」三种算法。这三种算法的学习需要花上几天甚至几周的时间,这里就不多介绍。简单介绍一下这三种与梯度下降算法的对比,他们的优势和劣势。

优点 缺点
不需要选择学习率 \alpha 算法复杂
收敛速度比梯度算法快

这三种算法使用时最好是调用现有的库。库中的算法是经过数值专家进行优化过的,比自己编写的代码好得多。

多分类问题

学会了解决二分类问题后,现在,我们将数据分类为两类以上,即从 y = {0,1} 扩展到 y = {0,1,...,n}。

一对多算法

「一对多算法」:先将选择其中一个类别独立出来,再将其他的类别当做一个类别,然后运用二分类问题的解决方法就可以解出这个独立类别的决策边界;以此类推,求得所有类别的决策边界。下面用图解释算法的过程。

一对多算法过程

与上图对应 y 值的变化:

image.png

其中,多分类问题的假设函数及其含义如下图:

多分类问题的假设函数

如何预测:将输入值输到每一个假设函数中,将返回结果最大的当做预测结果。

总结

最后用一张表总结一下逻辑回归模型中的算法和公式

逻辑回归模型中的算法和公式

扩展知识

在 Octave 中运行梯度下降算法

fminunc 函数已经对梯度下降算法已经进行一定优化。fminunc 函数的使用细节见使用help fminunc 命令

fminunc函数

costFunction函数的解释

上述的算法代码也可以套用在线性回归模型中。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,504评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,434评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,089评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,378评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,472评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,506评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,519评论 3 413
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,292评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,738评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,022评论 2 329
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,194评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,873评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,536评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,162评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,413评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,075评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,080评论 2 352

推荐阅读更多精彩内容