【机器学习】学习笔记(四)之 逻辑回归问题

本文详细介绍了逻辑回归在分类问题中的应用,包括假设函数、决策边界和代价函数的解释。探讨了梯度下降算法在优化逻辑回归参数中的关键作用,并扩展至一对多分类算法和高级优化技巧。深入理解了如何处理多类别问题以及如何利用更高效的优化算法提升模型性能。
摘要由CSDN通过智能技术生成

一、分类问题

在分类问题中,你要预测的变量 𝑦 是离散的值,我们将学习一种叫做逻辑回归 (Logistic Regression) 的算法,这是目前最流行使用最广泛的一种学习算法。
在分类问题中,我们尝试预测的是结果是否属于某一个类(例如正确或错误)。分类问题的例子有:判断一封电子邮件是否是垃圾邮件;判断一次金融交易是否是欺诈;区别一个肿瘤是恶性的还是良性的。
分类问题分为二元分类、多分类问题。
逻辑回归算法,这个算法的性质是:它的输出值永远在 0 到 1 之间。
我们将因变量(dependent variable)可能属于的两个类分别称为负向类(negative class)正向类(positive class),则因变量 ,其中 0 表示负向类,1 表示正向类。

1.假设函数

我们引入一个新的模型,逻辑回归,该模型的输出变量范围始终在 0 和 1 之间。 逻辑回归模型的假设是:ℎ𝜃(𝑥) = 𝑔(𝜃^𝑇𝑋) 其中: 𝑋 代表特征向量 𝑔 代表逻辑函数(logisticfunction)是一个常用的逻辑函数为 S 形函数(Sigmoid function),公式为: g ( z ) = 1 1 + e − z g(z) = \dfrac{1}{1+e^{-z}} g(z)=1+ez1
在这里插入图片描述
合起来,我们得到逻辑回归模型的假设:
对模型的理解: g ( z ) = 1 1 + e − z g(z) = \dfrac{1}{1+e^{-z}} g(z)=1+ez1
ℎ𝜃(𝑥)的作用是,对于给定的输入变量,根据选择的参数计算输出变量=1 的可能性即ℎ𝜃(𝑥) = 𝑃(𝑦 = 1|𝑥; 𝜃)
例如,如果对于给定的𝑥,通过已经确定的参数计算得出ℎ𝜃(𝑥) = 0.7,则表示有 70%的几率𝑦为正向类,相应地𝑦为负向类的几率为 1-0.7=0.3。

2.决策边界

决策边界是干什么的呢?
这个概念能更好地帮助我们理解逻辑回归的假设函数在计算什么。
决策边界是假设函数的一个属性,取决于参数𝜃,不是数据集的属性,我们并不需要绘制数据集而确定决策边界。
所以只有给定了参数向量𝜃,决策边界就确定了。
训练集———>拟合参数𝜃————>确定决策边界

3.代价函数

我们要介绍如何拟合逻辑回归模型的参数𝜃。具体来说,我要定义用来拟合参数的优化目标或者叫代价函数,这便是监督学习问题中的逻辑回归模型的拟合问题。

对于线性回归模型,我们定义的代价函数是所有模型误差的平方和。理论上来说,我们也可以对逻辑回归模型沿用这个定义,但是问题在于,当我们将带入到这样定义了的代价函数中时,我们得到的代价函数将是一个非凸函数(non-convexfunction)。
在这里插入图片描述
这意味着我们的代价函数有许多局部最小值,这将影响梯度下降算法寻找全局最小值。
在这里插入图片描述
代码实现:

import numpy as np
def cost(theta, X, y):
 theta = np.matrix(theta)
 X = np.matrix(X)
 y = np.matrix(y)
 first = np.multiply(-y, np.log(sigmoid(X* theta.T)))
 second = np.multiply((1 - y), np.log(1 - sigmoid(X* theta.T)))
 return np.sum(first - second) / (len(X))

二、逻辑回归的梯度下降算法

如何运用梯度下降法,来拟合出逻辑回归的参数呢?
在这里插入图片描述
根据这个代价函数,为了拟合出参数,该怎么做呢?我们要试图找尽量让𝐽(𝜃) 取得最小值的参数𝜃。
最小化代价函数的方法,是使用梯度下降法(gradient descent)。这是我们的代价函数:
在这里插入图片描述
在这里插入图片描述
因此,即使更新参数的规则看起来基本相同,但由于假设的定义发生了变化,所以逻辑函数的梯度下降,跟线性回归的梯度下降实际上是两个完全不同的东西。
n 个参数同时更新、特征缩放 这些方法都是适合逻辑回归的梯度下降算法的。

三、高级优化

一些高级优化算法和一些高级的优化概念,利用这些方法,我们就能
够使通过梯度下降,进行逻辑回归的速度大大提高。
其实梯度下降算法做的就是来计算代价函数𝐽(𝜃)和偏导数项两个项。我们也可以用更高级的算法来实现:共轭梯度法 BFGS (变尺度法) 和 L-BFGS (限制变尺度法)。

四、一对多的分类算法

使用逻辑回归 (logistic regression)来解决多类别分类问题,即"一对多" (one-vs-all) 的分类算法。
第一个例子:假如说你现在需要一个学习算法能自动地将邮件归类到不同的文件夹里,或者说可以自动地加上标签,那么,你也许需要一些不同的文件夹,或者不同的标签来完成这件事,来区分开来自工作的邮件、来自朋友的邮件、来自家人的邮件或者是有关兴趣爱好
的邮件,那么,我们就有了这样一个分类问题:其类别有四个,分别用𝑦 = 1、𝑦 = 2、𝑦 = 3、 𝑦 = 4 来代表。
第二个例子:是有关药物诊断的,如果一个病人因为鼻塞来到你的诊所,他可能并没有生病,用 𝑦 = 1 这个类别来代表;或者患了感冒,用 𝑦 = 2 来代表;或者得了流感用𝑦 = 3来代表。
下图,二元分类和多元分类示意图:
在这里插入图片描述
这里的三角形是正样本,而圆形代表负样本。可以这样想,设置三角形的值为 1,圆形的值为 0,下面我们来训练一个标准的逻辑回归分类器,这样我们就得到一个正边界。
在这里插入图片描述
为了能实现这样的转变,我们将多个类中的一个类标记为正向类(𝑦 = 1),然后将其他所有类都标记为负向类,这个模型记作ℎ𝜃^(1)(𝑥)
在这里插入图片描述

最后,在我们需要做预测时,我们将所有的分类机都运行一遍,然后对每一个输入变量,都选择最高可能性的输出变量。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tialyg

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值