机器学习笔记--分类问题与逻辑回归

注:本文为学习笔记,描述与截图多来自课件和百科,学习网站为:https://www.coursera.org/learn/machine-learning/supplement/fDCQp/classification

1.分类问题与模型


1)分类

分类是机器学习非常重要的一个组成部分,它的目标是根据已知样本的某些特征,判断一个新的样本属于哪种已知的样本类。分类是监督学习的一个实例,根据已知训练集提供的样本,通过计算选择特征参数,创建判别函数以对样本进行的分类。

如预测一个人是否得了肿瘤癌,结果只有两种,得了和没得。要尝试分类,一种方法是使用线性回归,将大于0.5的所有预测映射为1,将小于0.5的所有预测映射为0。但是,此方法效果不佳,因为分类实际上不是线性函数。

 2)模型

线性函数的模型不适用于分类问题,在结果只有指定的两个离散值的情况下,比如0,1,线性函数预测的结果可能0与1之间,也可能远大于1或远小于0。因此我们需要修改我们的预测模型,0机器学习笔记--分类问题与逻辑回归机器学习笔记--分类问题与逻辑回归机器学习笔记--分类问题与逻辑回归1符合我们的期望。

新的模型为S函数也称为逻辑函数:

机器学习笔记--分类问题与逻辑回归

函数的图形为S型,如下:

机器学习笔记--分类问题与逻辑回归

此处显示的函数g(z)将任何实数映射到(0,1)区间,适用于分类问题。

机器学习笔记--分类问题与逻辑回归 的值表示输出结果为1的概率,例如机器学习笔记--分类问题与逻辑回归=0.7表示有70%的概率结果为1。结果为0的概率与结果为1的概率相加应为1

机器学习笔记--分类问题与逻辑回归

3)决策边界

为了获得0或1分类,我们可以按如下方式转换假设函数的输出:

机器学习笔记--分类问题与逻辑回归

函数g的输入若大于等于0,则输出大于等于0.5:

机器学习笔记--分类问题与逻辑回归

机器学习笔记--分类问题与逻辑回归

当函数g的输入值为 机器学习笔记--分类问题与逻辑回归, 函数表达式将如下:

机器学习笔记--分类问题与逻辑回归

也就意味着:

机器学习笔记--分类问题与逻辑回归

决策边界是分隔y = 0和y = 1区域的线,它是由我们的假设函数创建的,如:

机器学习笔记--分类问题与逻辑回归

在这个例子中,我们的决策边界是机器学习笔记--分类问题与逻辑回归=5,也就是图形结果的垂直线,当机器学习笔记--分类问题与逻辑回归小于5时,输出结果为1,当机器学习笔记--分类问题与逻辑回归大于5时,输出结果为0。

函数g(z)的输入不一定为线性函数,也可以是其他形状,如机器学习笔记--分类问题与逻辑回归

 

2.逻辑回归模型


  1)代价函数:

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

逻辑函数的代价函数为如下所示:

机器学习笔记--分类问题与逻辑回归

当y=1时机器学习笔记--分类问题与逻辑回归机器学习笔记--分类问题与逻辑回归的关系如下图:

机器学习笔记--分类问题与逻辑回归

当y=0时机器学习笔记--分类问题与逻辑回归机器学习笔记--分类问题与逻辑回归的关系如下图:

机器学习笔记--分类问题与逻辑回归

我们可以得到如下的关系:

机器学习笔记--分类问题与逻辑回归

如果我们的正确答案“ y”为0,则如果我们的假设函数也输出0,则成本函数将为0。如果我们的假设接近1,则成本函数将接近无穷大。

如果我们正确的答案y为1,那么如果我们的假设函数输出为1,则成本函数将为0。如果我们的假设接近0,则成本函数将接近无穷大。

2).简化的成本函数与梯度下降

我们可以将成本函数的两个条件情况压缩为一个情况:

机器学习笔记--分类问题与逻辑回归

当y=1时,第二项的机器学习笔记--分类问题与逻辑回归为0,不会影响结果。同理,当y=0时,第一项的机器学习笔记--分类问题与逻辑回归为0,也不会影响结果。

代价函数如下:

机器学习笔记--分类问题与逻辑回归

向量化的实现是:

机器学习笔记--分类问题与逻辑回归

梯度下降的一般形式为:

机器学习笔记--分类问题与逻辑回归

我们可以使用微积分计算出导数部分,从而得到:

机器学习笔记--分类问题与逻辑回归

注意,该算法与我们在线性回归中使用的算法相同。 我们必须同时更新机器学习笔记--分类问题与逻辑回归中的所有值。

向量化的实现是:

机器学习笔记--分类问题与逻辑回归

3).高级优化

“共轭梯度”,“ BFGS”和“ L-BFGS”是更复杂,更快速的优化θ的方法,可用于替代梯度下降。这些算法很多算法库都有提供,不用自己编写。

我们首先需要提供一个函数,该函数针对给定的输入值θ评估以下两个函数:

机器学习笔记--分类问题与逻辑回归

我们可以编写一个返回这两个函数的函数:

机器学习笔记--分类问题与逻辑回归

然后,我们可以使用算法库的“ fminunc()”优化算法以及“ optimset()”函数,该函数创建一个对象,其中包含要发送给“ fminunc()”的选项。

机器学习笔记--分类问题与逻辑回归

我们将成本函数,theta值的初始向量以及预先创建的“ options”对象赋予函数“ fminunc()”。

3.多类别分类:一对多


现实情况中,我们通常需要对多个类别进行分类, 代替y = {0,1},我们将扩展定义为y = {0,1 ... n}。由于y = {0,1 ... n},我们将问题分为n + 1个(+1,因为索引从0开始)二进制分类问题。 在每一个类别中,我们预测“ y”是我们类别之一的概率。

机器学习笔记--分类问题与逻辑回归

我们通常上是选择一个类型,然后将所有其他类型合并为一个第二类型。 我们反复进行此操作,对每种情况应用二元逻辑回归,然后使用返回最高值的假设作为我们的预测。

机器学习笔记--分类问题与逻辑回归