《机器学习by周志华》学习笔记-线性模型-02

2024-04-18 06:12

本文主要是介绍《机器学习by周志华》学习笔记-线性模型-02,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、对数几率回归

1.1、背景

上一节我们考虑了线性模型的回归学习,但是想要做分类任务就需要用到上文中的广义线性模型。

当联系函数g(\cdot )连续且充分光滑,考虑单调可微函数g(\cdot ),令:

y=g^{-1}(w^{T}+b)

1.2、概念

找一个单调可谓函数g(\cdot ),将分类任务的真实标记y_{i}与线性回归模型的预测值f(xi)联系起来,也叫做「Heaviside函数」。

在二分类任务中,输出的真实标记y_{i}\in \left \{ 0,1 \right \},而线性回归模型产生的预测值f(x)=w^{T}+b是实数值。于是我们将f(x)转化为0、1值。最理想的情况就是「单位阶跃函数(unit-step function)」,如下所示:

y=\begin{cases} 0, \text{ f(x)< 0 } \\ 0.5, \text{ f(x)= 0 } \\ 1, \text{ f(x)> 0 } \end{cases}

        若f(x)> 0,就判为正例;

        若f(x)< 0,就判为反例;

        若f(x)= 0,则可任意判别;

        如下图所示(红色部分)

黑色部分函数,则称为「对数几率函数」,简称「对率函数」。

从上图可以看出,「单位阶跃函数(unit-step function)」(2条红线+一个点)不连续,因此不能直接用做g^{-1},我们可以在上图中,用「单位阶跃函数」的「替代函数」(对率函数)来用作g^{-1}。并且需要该函数单调可微。可得出:

g^{-1}=y=\frac{1}{1+e^{-f(x)}}=\frac{1}{1+e^{-(w^{T}+b)}}

Sigmoid函数:

Sigmoid函数即S形函数。「对率函数」是Sigmoid函数最重要的代表。我们将会在后面「神经网络」将看到他在神经网络中的重要作用。

综上所述,「对率函数」将f(x)转化为一个接近0或1的y值。并且值得范围在f(x)=0附近变化斜率高。

上述式子可以变化为:

ln\frac{g^{-1}}{1-g^{-1}}=w^{T}+b

g^{-1}视作样本x为正例的可能性。则1-g^{-1}视作样本x为负例的可能性。两者的比值:

\frac{g^{-1}}{1-g^{-1}}

称为「几率(odds)」

几率(odds):

Odds=P/(1-P)

Odds(几率)的计算公式为Odds=P/(1-P),这里的P是指某个事件发生的概率。

Odds是用来表示一个事件发生与不发生的比例,当P=0.5时,Odds=1,当P=0,则Odds趋向于无穷大,反之,当P=1,则Odds趋向于0。

对几率(odds)取对数,则得到了「对数几率(log odds)」,也叫做logit。如下表示:

ln\frac{g^{-1}}{1-g^{-1}}

上述式子,有文献译为「逻辑回归」。但中文「逻辑」与logisitic和logit的含义较大,此处作者翻译为「对数几率回归」,简称「对率回归」。

因为ln\frac{g^{-1}}{1-g^{-1}}=w^{T}+b中的w^{T}+b=y,故我们可以得出:

该等式左边是:线性回归模型的预测结果

而等式右边是:该模型的真实标记yi

因此,我们得出的公式结果,实际上就是在用线性回归模型的预测结果,去逼近真实标记yi的对数几率。所以其对应的模型称为「对数几率回归」。

需要注意的是,它的名字中虽然有回归,但实际是却是一种分类学习方法。其优点如下:

  • 他是直接对分类可能性进行建模,无需事先假设数据分布,这样就避免分布不准确所带来的问题。
  • 它不仅是预测出「类别」,而是可得到近似概率预测,这对许多需利用概率辅助决策的任务很有用。
  • 此外,对数函数是任意阶可导的凸函数,有很好的数学性质,现有的许多数值优化算法都可直接用于求取最优解。

1.3、求解

根据1.2的概念,本章主要求解公式中的w和b。如果我们将上述式子中的g^{-1}视为「后验概率」估计p(y=1|x),,则上述式子可以重写为:

这篇关于《机器学习by周志华》学习笔记-线性模型-02的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/913974

相关文章

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

Java进阶学习之如何开启远程调式

《Java进阶学习之如何开启远程调式》Java开发中的远程调试是一项至关重要的技能,特别是在处理生产环境的问题或者协作开发时,:本文主要介绍Java进阶学习之如何开启远程调式的相关资料,需要的朋友... 目录概述Java远程调试的开启与底层原理开启Java远程调试底层原理JVM参数总结&nbsMbKKXJx

C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)

《C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)》本文主要介绍了C#集成DeepSeek模型实现AI私有化的方法,包括搭建基础环境,如安装Ollama和下载DeepS... 目录前言搭建基础环境1、安装 Ollama2、下载 DeepSeek R1 模型客户端 ChatBo

SpringBoot快速接入OpenAI大模型的方法(JDK8)

《SpringBoot快速接入OpenAI大模型的方法(JDK8)》本文介绍了如何使用AI4J快速接入OpenAI大模型,并展示了如何实现流式与非流式的输出,以及对函数调用的使用,AI4J支持JDK8... 目录使用AI4J快速接入OpenAI大模型介绍AI4J-github快速使用创建SpringBoot

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

Spring AI Alibaba接入大模型时的依赖问题小结

《SpringAIAlibaba接入大模型时的依赖问题小结》文章介绍了如何在pom.xml文件中配置SpringAIAlibaba依赖,并提供了一个示例pom.xml文件,同时,建议将Maven仓... 目录(一)pom.XML文件:(二)application.yml配置文件(一)pom.xml文件:首

如何在本地部署 DeepSeek Janus Pro 文生图大模型

《如何在本地部署DeepSeekJanusPro文生图大模型》DeepSeekJanusPro模型在本地成功部署,支持图片理解和文生图功能,通过Gradio界面进行交互,展示了其强大的多模态处... 目录什么是 Janus Pro1. 安装 conda2. 创建 python 虚拟环境3. 克隆 janus