图解机器学习 | 逻辑回归算法详解

在这里插入图片描述

引言

本篇内容我们给大家介绍机器学习领域最常见的模型之一:逻辑回归。它也是目前工业界解决问题最广泛作为baseline的解决方案。逻辑回归之所以被广泛应用,因为其简单有效且可解释性强。

本文的结构如下:

  • 第1部分:回顾机器学习与分类问题。回顾机器学习中最重要的问题之一分类问题,不同的分类问题及数学抽象。

  • 第2部分:逻辑回归核心思想。介绍线性回归问题及逻辑回归解决方式,讲解逻辑回归核心思想。

  • 第3部分:Sigmoid函数与分类器决策边界。介绍逻辑回归模型中最重要的Sigmoid变换函数,以及不同分类器得到的决策边界。

  • 第4部分:模型优化使用的梯度下降算法。介绍模型参数学习过程中最常使用到的优化算法:梯度下降。

  • 第5部分:模型过拟合问题与正则化。介绍模型状态分析及过拟合问题,以及缓解过拟合问题可以使用的正则化手段。

  • 第6部分:特征变换与非线性切分。介绍由线性分类器到非线性分类场景,对特征可以进行的变换如构建多项式特征,使得分类器得到分线性切分能力。

(本篇逻辑回归算法的部分内容涉及到机器学习基础知识,没有先序知识储备的宝宝可以查看ShowMeAI的文章 图解机器学习 | 机器学习基础知识)。

1.机器学习与分类问题

1)分类问题

分类问题是机器学习非常重要的一个组成部分,它的目标是根据已知样本的某些特征,判断一个样本属于哪个类别。分类问题可以细分如下:

  • 二分类问题:表示分类任务中有两个类别新的样本属于哪种已知的样本类。

  • 多类分类(Multiclass Classification)问题:表示分类任务中有多类别。

  • 多标签分类(Multilabel Classification)问题:给每个样本一系列的目标标签。

2)分类问题的数学抽象

从算法的角度解决一个分类问题,我们的训练数据会被映射成n维空间的样本点(这里的n就是特征维度),我们需要做的事情是对n维样本空间的点进行类别区分,某些点会归属到某个类别。

下图所示的是二维平面中的两类样本点,我们的模型(分类器)在学习一种区分不同类别的方法,比如这里是使用一条直线去对2类不同的样本点进行切分。

常见的分类问题应用场景很多,我们选择几个进行举例说明:

  • 垃圾邮件识别:可以作为二分类问题,将邮件分为你「垃圾邮件」或者「正常邮件」。

  • 图像内容识别:因为图像的内容种类不止一个,图像内容可能是猫、狗、人等等,因此是多类分类问题。

  • 文本情感分析:既可以作为二分类问题,将情感分为褒贬两种,还可以作为多类分类问题,将情感种类扩展,比如分为:十分消极、消极、积极、十分积极等。

2.逻辑回归算法核心思想

下面介绍本次要讲解的算法——逻辑回归(Logistic Regression)。逻辑回归是线性回归的一种扩展,用来处理分类问题。

1)线性回归与分类

分类问题和回归问题有一定的相似性,都是通过对数据集的学习来对未知结果进行预测,区别在于输出值不同

  • 分类问题的输出值是离散值(如垃圾邮件和正常邮件)。

  • 回归问题的输出值是连续值(例如房子的价格)。

既然分类问题和回归问题有一定的相似性,那么我们能不能在回归的基础上进行分类呢

可以想到的一种尝试思路是,先用线性拟合,然后对线性拟合的预测结果值进行量化,即将连续值量化为离散值——即使用『线性回归+阈值』解决分类问题

我们来看一个例子。假如现在有一个关于肿瘤大小的数据集,需要根据肿瘤的大小来判定是良性(用数字0表示)还是恶性(用数字1表示),这是一个很典型的二分类问题。

如上图,目前这个简单的场景我们得到1个直观的判定:肿瘤的大小大于5,即为恶性肿瘤(输出为1);肿瘤的大小等于5,即为良性肿瘤(输出为0)。
下面我们尝试之前提到的思路,使用一元线性函数h(x)=θ0+θ1xh(x) = \theta_0+\theta_1x去进行拟合数据,函数体现在图片中就是这条黑色直线。

这样分类问题就可以转化为:对于这个线性拟合的假设函数,给定一个肿瘤的大小,只要将其带入假设函数,并将其输出值和0.5进行比较:

  • 如果线性回归值大于0.5,就输出1(恶性肿瘤)。

  • 如果线性回归值小于0.5,就输出0(良性肿瘤)。

上图的数据集中的分类问题被完美解决。但如果将数据集更改一下,如图所示,如果我们还是以0.5为判定阈值,那么就会把肿瘤大小为6的情况进行误判为良好。

所以,单纯地通过将线性拟合的输出值与某一个阈值进行比较,这种方法用于分类非常不稳定。

2)逻辑回归核心思想

因为「线性回归+阈值」的方式很难得到鲁棒性好的分类器,我们对其进行拓展得到鲁棒性更好的逻辑回归(Logistic Regression,有些地方也叫做「对数几率回归」)。逻辑回归将数据拟合到一个logit函数中,从而完成对事件发生概率的预测。

如果线性回归的结果输出是一个连续值,而值的范围是无法限定的,这种情况下我们无法得到稳定的判定阈值。那是否可以把这个结果映射到一个固定大小的区间内(比如0到1),进而判断呢。

当然可以,这就是逻辑回归做的事情,而其中用于对连续值压缩变换的函数叫做Sigmoid函数(也称Logistic函数,S函数)。

Sigmoid数学表达式为

S(x)=11+exS(x) = \dfrac{1}{1+e^{-x}}

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享