【机器学习】决策边界的基本概念以及如何在逻辑回归中找到决策边界

引言

在机器学习中,决策边界是分类算法用来区分不同类别数据点的线、面或超平面。这些边界通常是模型的预测规则,用于将特征空间中的点分配到不同的类别。决策边界可以是线性的,也可以是非线性的,取决于数据的分布和所使用的分类算法

文章目录

  • 引言
  • 一、决策边界的例子
    • 1.1 线性分类器
    • 1.1 非线性分类器
  • 二、决策边界的作用
  • 三、绘制决策边界
    • 3.1 选择特征
    • 3.2 选择或计算边界
    • 3.3 绘制边界
    • 3.4 标记数据点
  • 四、决策边界的优缺点
    • 4.1 优点
    • 4.2 缺点
  • 五、决策边界的应用
  • 六、逻辑回归中的决策边界
    • 6.1 目标
    • 6.2 导入numpy、matplotlib库
    • 6.3 数据集
    • 6.4 绘制数据
    • 6.5 逻辑回归模型
    • 6.6 复习逻辑回归和决策边界
    • 6.7 绘制决策边界
    • 6.8 总结

一、决策边界的例子

1.1 线性分类器

如线性回归、逻辑回归、支持向量机(SVM)等,它们使用线性边界。例如,在二维空间中,线性边界是一条直线;在三维空间中,它是一个平面。

1.1 非线性分类器

如决策树、随机森林、神经网络等,它们可以学习到复杂的非线性边界。在二维空间中,这可能是一个曲线;在三维空间中,可能是一个曲面。

二、决策边界的作用

决策边界是模型解释性和可视化的重要组成部分。通过绘制决策边界,我们可以直观地看到模型是如何将数据分为不同类别的。这对于理解模型的行为、发现潜在的错误分类模式以及验证模型的假设都是非常有帮助的

三、绘制决策边界

在绘制决策边界时,通常需要考虑以下几个步骤:

3.1 选择特征

确定哪些特征对分类至关重要

3.2 选择或计算边界

对于线性分类器,这通常是简单计算得到的;对于非线性分类器,可能需要使用训练数据来估计

3.3 绘制边界

在特征空间中绘制决策边界,通常在二维或三维空间中进行

3.4 标记数据点

将不同类别的数据点用不同的符号或颜色标记

四、决策边界的优缺点

4.1 优点

决策边界直观地展示了模型的分类能力,有助于理解和验证模型的假设

4.2 缺点

决策边界可能过于简化,无法准确反映数据的复杂性。此外,决策边界可能不是唯一的,不同的特征选择或参数设置可能导致不同的边界

五、决策边界的应用

决策边界在许多领域都有应用,例如图像识别、文本分类、医学诊断等。通过绘制决策边界,可以更好地理解模型的工作原理,并指导模型的改进和优化

六、逻辑回归中的决策边界

6.1 目标

绘制逻辑回归模型的决策边界。这将帮助更好地理解模型正在预测什么

6.2 导入numpy、matplotlib库

import numpy as np
%matplotlib widget
import matplotlib.pyplot as plt
from lab_utils_common import plot_data, sigmoid, draw_vthresh
plt.style.use('./deeplearning.mplstyle')

6.3 数据集

假设有以下训练数据集

  • 输入变量 X X X是一个NumPy数组,包含6个训练示例,每个示例都有两个特征
  • 输出变量 y y y也是一个NumPy数组,包含6个示例,y要么是0要么是1
X = np.array([[0.5, 1.5], [1,1], [1.5, 0.5], [3, 0.5], [2, 2], [1, 2.5]])
y = np.array([0, 0, 0, 1, 1, 1]).reshape(-1,1)

6.4 绘制数据

使用辅助函数来绘制这些数据。标签为𝑦=1的数据点用红色十字表示,而标签为𝑦=0的数据点用蓝色圆圈表示。

fig,ax = plt.subplots(1,1,figsize=(4,4))
plot_data(X, y, ax)
ax.axis([0, 4, 0, 3.5])
ax.set_ylabel('$x_1$')
ax.set_xlabel('$x_0$')
plt.show()

输出结果:
在这里插入图片描述

6.5 逻辑回归模型

  • 假设想在这个数据上训练一个逻辑回归模型,该模型具有以下形式
    f ( x ) = g ( w 0 x 0 + w 1 x 1 + b ) f(x) = g(w_0x_0+w_1x_1 + b) f(x)=g(w0x0+w1x1+b)
    其中 g ( z ) = 1 1 + e − z g(z) = \frac{1}{1+e^{-z}} g(z)=1+ez1,这是Sigmoid函数
  • 假设已经训练了模型,并得到了参数 b = − 3 , w 0 = 1 , w 1 = 1 b = -3, w_0 = 1, w_1 = 1 b=3,w0=1,w1=1。也就是说,
    f ( x ) = g ( x 0 + x 1 − 3 ) f(x) = g(x_0+x_1-3) f(x)=g(x0+x13)
    让我们通过绘制其决策边界来尝试理解这个训练好的模型正在预测什么

6.6 复习逻辑回归和决策边界

回想一下,对于逻辑回归,模型可以表示为
f w , b ( x ( i ) ) = g ( w ⋅ x ( i ) + b ) (1) f_{\mathbf{w},b}(\mathbf{x}^{(i)}) = g(\mathbf{w} \cdot \mathbf{x}^{(i)} + b) \tag{1} fw,b(x(i))=g(wx(i)+b)(1)
其中 g ( z ) g(z) g(z)称为Sigmoid函数,它将所有输入值映射到0和1之间: g ( z ) = 1 1 + e − z g(z) = \frac{1}{1+e^{-z}} g(z)=1+ez1
并且 w ⋅ x \mathbf{w} \cdot \mathbf{x} wx是向量点积:
w ⋅ x = w 0 x 0 + w 1 x 1 \mathbf{w} \cdot \mathbf{x} = w_0 x_0 + w_1 x_1 wx=w0x0+w1x1
我们将模型的输出( f w , b ( x ) f_{\mathbf{w},b}(x) fw,b(x))解释为给定𝑥和参数𝑤、𝑏时,𝑦=1的概率
因此,要从逻辑回归模型中得到最终的预测(𝑦=0或𝑦=1),我们可以使用以下启发式方法:

  • 如果 𝑓𝐰,𝑏(𝑥)>=0.5,预测𝑦=1
  • 如果 𝑓𝐰,𝑏(𝑥)<0.5,预测𝑦=0
    让我们绘制Sigmoid函数,看看𝑔(𝑧)>=0.5的地方在哪里
# 在-10到10的范围内绘制Sigmoid(z)
z = np.arange(-10,11)fig,ax = plt.subplots(1,1,figsize=(5,3))
# 绘制z vs sigmoid(z)
ax.plot(z, sigmoid(z), c="b")ax.set_title("Sigmoid function")
ax.set_ylabel('sigmoid(z)')
ax.set_xlabel('z')
draw_vthresh(ax,0)

输出结果:
在这里插入图片描述

g ( z ) > = 0.5 g(z) >= 0.5 g(z)>=0.5的时候, z > = 0 z >=0 z>=0
对于逻辑回归模型, z = w ⋅ x + b z = \mathbf{w} \cdot \mathbf{x} + b z=wx+b

  • 如果 𝐰⋅𝐱+𝑏>=0,模型预测 𝑦=1
  • 如果 𝐰⋅𝐱+𝑏<0,模型预测 𝑦=0

6.7 绘制决策边界

现在,让我们回到我们的例子,以了解逻辑回归模型是如何做出预测的
我们的逻辑回归模型具有以下形式 f ( x ) = g ( − 3 + x 0 + x 1 ) f(x) = g(-3 + x_0+x_1) f(x)=g(3+x0+x1)
从您刚才学到的知识中,您可以看到,这个模型预测 𝑦=1,如果 − 3 + x 0 + x 1 > = 0 -3 + x_0+x_1 >= 0 3+x0+x1>=0
让我们看看这图形上是什么样子。我们将开始绘制 − 3 + x 0 + x 1 = 0 -3 + x_0+x_1 = 0 3+x0+x1=0,这相当于 x 1 = 3 − x 0 x_1 = 3 - x_0 x1=3x0

# 在0到6之间选择值
x0 = np.arange(0,6)
x1 = 3 - x0
fig,ax = plt.subplots(1,1,figsize=(5,4))
# 绘制决策边界
ax.plot(x0,x1, c="b")
ax.axis([0, 4, 0, 3.5])
# 填充线的下方区域
ax.fill_between(x0,x1, alpha=0.2)
# 绘制原始数据
plot_data(X,y,ax)
ax.set_ylabel(r'$x_1$')
ax.set_xlabel(r'$x_0$')
plt.show()

输出结果:
在这里插入图片描述

在上面的图中,蓝色线代表 x 0 + x 1 − 3 = 0 x_0 + x_1 - 3 = 0 x0+x13=0,它应该在 x 1 x1 x1轴上与3相交(如果我们设置 x 1 x1 x1= 3, x 0 x0 x0= 0),在 x 0 x0 x0轴上与3相交
阴影区域代表 − 3 + x 0 + x 1 < 0 -3 + x_0+x_1 < 0 3+x0+x1<0,线上面的区域是 − 3 + x 0 + x 1 > 0 −3 +x_0+x_1>0 3+x0+x1>0,任何位于阴影区域(在线之下)的点都被分类为 𝑦=0,任何位于或高于线的点都被分类为 𝑦=1,这条线被称为“决策边界”

通过使用更高阶的多项式项(例如:𝑓(𝑥)=𝑔(𝑥20+𝑥1−1),我们可以得到更复杂的非线性边界

6.8 总结

  • 探索逻辑回归中的决策边界
  • 学习如何在逻辑回归中找到决策边界

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3281601.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

鸿蒙 HarmonyOS NEXT端云一体化开发-云数据库篇

一、概述 云数据库是一款基于对象模型的数据库&#xff0c;采用存储区、对象类型和对象三级结构。 数据模型 存储区 存储区是一个独立的数据存储区域&#xff0c;多个数据存储区之间相互独立&#xff0c;每个存储区拥有完全相同的对象类型定义 --类似于关系型数据库中的da…

ECMA6Script学习笔记(五)

【摘要】 本文是对自己学习ES6的学习笔记回顾,后面是概要: 本文介绍了ES6中的对象创建和拷贝方法。对象创建方面&#xff0c;ES6通过class关键字支持了面向对象的语法糖&#xff0c;包括属性设置、getter和setter方法、构造器、静态方法以及私有属性的定义。同时&#xff0c;展…

专业做护眼灯的有哪些品牌?五款市面主流护眼灯专业测评

专业做护眼灯的有哪些品牌&#xff1f;市面上出现的品牌毫不夸张的说&#xff0c;真的算得上是琳琅满目&#xff0c;而且每一个品牌都在说自己的产品才是最值得的&#xff0c;这种情况下来&#xff0c;很多人一时之间根本就不知道要选择哪一款比较好。而且还有一些还会买到低劣…

vue基础知识总结(2)--- axios的使用

一.下载Vue3&#xff1a; 选择自己想要下载的项目文件夹&#xff0c;cmd回车打开命令栏&#xff0c;执行 &#xff1a; cnpm init vuelatest 然后等待一会就可以创建一个项目&#xff0c;并更改项目名&#xff1a; √ 请输入项目名称&#xff1a; ... vue-project 之后按照…

华为仓颉语言测试申请

1. 申请网址 HarmonyOS NEXT仓颉语言开发者预览版 Beta招募- 华为开发者联盟 点击立即报名登录华为账号 勾选选项 , 点击同意 按要求填写信息即可 2. 申请通过后官方会通过邮件的方式发送相关下载途径 , 根据文档进行下载即可 package Cangmain(): Int64 {println("你…

AI技术修复奥运珍贵历史影像,《永不失色的她》再现百年奥运女性光彩

Greatness of HER &#xff01; AI致敬 , 了不起的「她」。 7月25日&#xff0c;在国际奥委会和各方力量的支持下&#xff0c;阿里云以AI技术修复奥运珍贵历史影像&#xff0c;让百年奥运女性的伟大光彩被看见&#xff0c;并在巴黎推出《永不失色的她》全球首映礼。 国际奥委会…

Graph Contrastive Learning via Interventional View Generation

发表于:WWW24 推荐指数: #paper/⭐⭐ 框架与动机: 整体框架 动机: 如上四个: b.HLCL 生成随机增强视图,并分别用高通过滤器和低通过滤器过滤 c.生成同配异配视图,都用低通过滤器 d.生成同配视图异配视图,同配视图用低通过滤器,异配视图用高通过滤器 通过图d,我们可以得出:d&g…

基于Material studio拉伸-断裂过程的Perl脚本

在材料科学的研究中&#xff0c;拉伸-断裂过程一直是科学家们探索的焦点。这一过程涉及复杂的力学行为和材料内部微观结构的变化&#xff0c;对于理解材料的性能至关重要。然而&#xff0c;传统的实验方法不仅耗时耗力&#xff0c;而且难以捕捉到微观尺度上的所有细节。 为了满…

网站如何实现HTTPS访问

要实现网站通过HTTPS协议访问&#xff0c;主要依赖于为网站部署SSL/TLS证书。 SSL&#xff08;Secure Sockets Layer&#xff09;是用于在互联网上加密数据传输的安全协议。部署了SSL证书之后&#xff0c;网站就可以通过HTTPS&#xff08;超文本传输安全协议&#xff09;来提供…

C# Unity 面向对象补全计划 之 初识继承方法与多态

本文仅作学习笔记与交流&#xff0c;不作任何商业用途&#xff0c;作者能力有限&#xff0c;如有不足还请斧正 本系列旨在通过补全学习之后&#xff0c;给出任意类图都能实现并做到逻辑上严丝合缝 1.继承方法 C# & Unity 面向对象补全计划 之 继承&#xff08;字段与属性&…

Java真人版猫爪老鼠活动报名平台系统

&#x1f43e;“真人版猫爪老鼠活动报名平台系统”——趣味追逐&#xff0c;等你来战&#xff01;&#x1f42d; &#x1f431;【萌宠变主角&#xff0c;现实版趣味游戏】 厌倦了电子屏幕的虚拟游戏&#xff1f;来试试“真人版猫爪老鼠活动”吧&#xff01;在这个平台上&…

PHP进阶-CentOS7部署LNMP服务架构的项目

在开发和部署Web应用时&#xff0c;LNMP&#xff08;Linux、Nginx、MySQL、PHP&#xff09;的组合是非常常见的。这篇博客将介绍如何通过一个简单的脚本&#xff0c;在CentOS 7上部署LNMP&#xff0c;并将PHP项目自动部署到服务器上。这不仅可以节省大量的时间&#xff0c;还能…

一个接口未做超时处理,引发数据库hang了

前言 在代码开发过程中&#xff0c;你是否会经常遇到以下问题&#xff1f; 数据库连接被瞬间占用&#xff0c;出现性能瓶颈 系统资源被大量占用&#xff0c;出现锁等待或性能下降 事务日志大量增长 上述这些状况的出现可能是未提交事务引发的。该类事务开启后&#xff0c;…

什么是五力分析?5分钟带你了解它在企业财务经营中的应用与价值!

如今&#xff0c;随着全球化进程的不断加速&#xff0c;市场环境复杂多变&#xff0c;市场竞争日益激烈&#xff0c;财务经营已经成为了企业应对复杂市场环境、保持自身竞争力的关键。体系化的五力分析平台能够为企业提供一套全面的解决方案&#xff0c;帮助企业在盈利能力、偿…

【随机链表的复制】python刷题记录

R3-哈希表 参考k神题解 哈希表法&#xff1a; """ # Definition for a Node. class Node:def __init__(self, x: int, next: Node None, random: Node None):self.val int(x)self.next nextself.random random """class Solution:def copy…

Java红娘相亲交友平台系统源码小程序

&#x1f495;遇见真爱&#xff0c;从“红娘相亲交友平台系统”开始&#xff01;&#x1f46b; &#x1f339;【精准匹配&#xff0c;缘分不再擦肩而过】 还在为茫茫人海中找不到那个TA而烦恼吗&#xff1f;“红娘相亲交友平台系统”利用先进的大数据分析技术&#xff0c;根据…

电脑怎么压缩图片?6个简单实用的压缩方法分享(无损压缩)

电脑怎么压缩图片&#xff1f;面对电脑较大的图片&#xff0c;小编是建议大家进行压缩的。文件过大容易影响电脑存储空间&#xff0c;而且还不容易上传和传输。图片压缩有很多方法可以有效解决&#xff0c;简单几步就能将图片压缩变小&#xff0c;下面是相关的介绍&#xff0c;…

web期末大作业家乡-浙江

代码下载: https://pan.quark.cn/s/2e157769c4ad

android动态权限申请并告知权限申请的使用目的

随着工信部对APP的一系列整治&#xff0c;现在要求APP在申请相机、位置等敏感权限时需要向用户同步告知权限申请的使用目的。个大应用市场在APP上线审核中也会重点检查这项要求。 从Android 6.0开始&#xff0c;对于敏感权限的获取&#xff0c;APP需要调用系统提供的动态申请权…

借银行的贷款去还网贷,可以吗?

近日&#xff0c;有很多网友问我&#xff0c;他们申请的公积金贷款&#xff0c;能不能用这笔钱来还清信用卡和网贷&#xff0c;但又怕这么做会违法&#xff0c;或者银行会突然要求他提前还贷。 首先&#xff0c;放心&#xff0c;这么做不违法。但银行确实不太鼓励这么用贷款&am…