支持向量机(二)

文章目录

  • 前言
  • 具体内容

前言

总算要对稍微有点难度的地方动手了,前面介绍的线性可分或者线性不可分的情况,都是使用平面作为分割面的,现在我们采用另一种分割面的设计方法,也就是核方法。
核方法涉及的分割面不再是 w x + b = 0 wx+b=0 wx+b=0,而是 f ( x ) = 0 f(x)=0 f(x)=0了。

具体内容

核方法其实就是坐标映射方法,类似于我们进行回归的时候对于反函数曲线采用 y = w x + b y=\frac{w}{x}+b y=xw+b的形式来对数据进行拟合。
我们常用的标准做法都是先将原始数据 x x x映射为 1 x \frac{1}{x} x1,然后对于数据 ( 1 x , y ) (\frac{1}{x},y) (x1,y)寻找线性函数 y = k t + b y=kt+b y=kt+b来拟合。

在非线性支持向量机中,我们需要把原始特征x通过映射函数变换为 ϕ ( x ) \phi(x) ϕ(x),对于这个映射函数没有什么要求,只不过什么样的映射函数映射以后分类效果最佳是未知的,是需要通过比较才能发现的。
映射函数一般都是把原始特征 x x x变为另一个向量 [ 1 , x 1 , ⋯ , x n , x 1 2 , ⋯ , x i x j , ⋯ , x n 2 , ⋯ ] [1,x_1,\cdots,x_n,x_1^2,\cdots,x_ix_j,\cdots,x_n^2,\cdots] [1,x1,,xn,x12,,xixj,,xn2,]其中的一项或者几项,具体是几项视具体情况确定,这个的目标是保留原始信息同时要增加尽可能多的生成信息,所以一般往高维方向映射。
当然这个函数设计好以后,我们在支持向量机的对偶函数中其实计算的是 K ( x i , x j ) K(x_i,x_j) K(xi,xj),这个函数是上面映射函数的乘积,可能计算更加复杂,所以从方便对偶函数的计算角度出发,设计了专门的对偶核函数,不过对偶核函数是有要求的,需要对所有特征 x x x所构成的gram矩阵是半正定的。
而这种情况下我们可以设计方便计算的核函数,比如:
多项式核函数: K ( x , z ) = ( x ⋅ z + 1 ) p K(x,z)=(x\cdot z+1)^p K(x,z)=(xz+1)p,计算难度大大减小,而且这个多项式核函数对应的映射函数也比较好求:
K ( x , z ) = ( x ⋅ z + 1 ) 2 = ( x 1 z 1 + x 2 z 2 + 1 ) 2 = x 1 2 z 1 2 + 2 x 1 x 2 z 1 z 2 + 2 x 1 z 1 + x 2 2 z 2 2 + 2 x 2 z 2 + 1 = [ x 1 2 , 2 x 1 x 2 , 2 x 1 , x 2 2 , 2 x 2 , 1 ] ∗ [ z 1 2 , 2 z 1 z 2 , 2 z 1 , z 2 2 , 2 z 2 , 1 ] T \begin{align*} K(x,z)&=(x\cdot z+1)^2\\ &=(x_1z_1+x_2z_2+1)^2\\ &=x_1^2z_1^2+2x_1x_2z_1z_2+2x_1z_1+x_2^2z_2^2+2x_2z_2+1\\ &=[x_1^2,\sqrt{2}x_1x_2,\sqrt{2}x_1,x_2^2,\sqrt{2}x_2,1]*[z_1^2,\sqrt{2}z_1z_2,\sqrt{2}z_1,z_2^2,\sqrt{2}z_2,1]^T \end{align*} K(x,z)=(xz+1)2=(x1z1+x2z2+1)2=x12z12+2x1x2z1z2+2x1z1+x22z22+2x2z2+1=[x12,2 x1x2,2 x1,x22,2 x2,1][z12,2 z1z2,2 z1,z22,2 z2,1]T

相当于截取了泰勒展开式中的前几项。
换句话说,如果我们想将坐标映射为 [ 1 , x 1 , x 2 , x 1 2 , x 1 x 2 , x 2 2 ] [1,x_1,x_2,x_1^2,x_1x_2,x_2^2] [1,x1,x2,x12,x1x2,x22],然后利用映射后的坐标来计算 w [ 1 , x 1 , x 2 , x 1 2 , x 1 x 2 , x 2 2 ] T + b w[1,x_1,x_2,x_1^2,x_1x_2,x_2^2]^T+b w[1,x1,x2,x12,x1x2,x22]T+b来作为判别函数,那么这个分界面问题的对偶函数中 ϕ ( x i ) ϕ ( x j ) \phi(x_i)\phi(x_j) ϕ(xi)ϕ(xj)就是上面的 ( x ⋅ z + 1 ) p (x\cdot z+1)^p (xz+1)p的形式,也就是我们不用知道中间映射后的坐标,而可以直接计算 ( x i ⋅ x j + 1 ) p (x_i\cdot x_j+1)^p (xixj+1)p

高斯核函数; K ( x , z ) = exp ⁡ ( − ∥ x − z ∥ 2 2 σ 2 ) K(x,z)=\exp(-\frac{{\|x-z\|}^2}{2\sigma^2}) K(x,z)=exp(2σ2xz2),计算难度大大减小,但是这个核函数对应的映射函数不容易求出来。
K ( x , z ) = exp ⁡ ( − ( x 1 − z 1 ) 2 + ( x 2 − z 2 ) 2 2 σ 2 ) = exp ⁡ ( − x 1 2 + z 1 2 − 2 x 1 z 1 + x 2 2 + z 2 2 − 2 x 2 z 2 2 σ 2 ) = exp ⁡ ( − x 1 2 2 σ 2 ) exp ⁡ ( − z 1 2 2 σ 2 ) exp ⁡ ( − x 2 2 2 σ 2 ) exp ⁡ ( − z 2 2 2 σ 2 ) exp ⁡ ( 2 x 1 z 1 2 σ 2 ) exp ⁡ ( 2 x 2 z 2 2 σ 2 ) = exp ⁡ ( − x 1 2 2 σ 2 ) exp ⁡ ( − z 1 2 2 σ 2 ) exp ⁡ ( − x 2 2 2 σ 2 ) exp ⁡ ( − z 2 2 2 σ 2 ) [ 1 + 2 x 1 z 1 2 σ 2 + ⋯ + 1 n ! ( 2 x 1 z 1 2 σ 2 ) n + ⋯ ] [ 1 + 2 x 2 z 2 2 σ 2 + ⋯ + 1 n ! ( 2 x 2 z 2 2 σ 2 ) n + ⋯ ] = exp ⁡ ( − x 1 2 2 σ 2 ) exp ⁡ ( − z 1 2 2 σ 2 ) exp ⁡ ( − x 2 2 2 σ 2 ) exp ⁡ ( − z 2 2 2 σ 2 ) [ ∑ t = 0 + ∞ ∑ k = 0 + ∞ 1 t ! ( 2 x 1 z 1 2 σ 2 ) t 1 k ! ( 2 x 2 z 2 2 σ 2 ) k ] = exp ⁡ ( − x 1 2 2 σ 2 ) exp ⁡ ( − x 2 2 2 σ 2 ) [ 1 , x 1 σ , ⋯ , 1 n ! ( x 1 σ ) n , ⋯ , x 2 σ , x 1 x 2 σ 2 , ⋯ , 1 n ! ( x 1 n x 2 σ n + 1 ) , ⋯ , 1 t ! n ! x 1 t x 2 n σ t + n , ⋯ ] ∗ exp ⁡ ( − z 1 2 2 σ 2 ) exp ⁡ ( − z 2 2 2 σ 2 ) [ 1 , z 1 σ , ⋯ , 1 n ! ( z 1 σ ) n , ⋯ , z 2 σ , z 1 z 2 σ 2 , ⋯ , 1 n ! ( z 1 n z 2 σ n + 1 ) , ⋯ , 1 t ! n ! z 1 t z 2 n σ t + n , ⋯ ] \begin{align*} K(x,z)=&\exp(-\frac{(x_1-z_1)^2+(x_2-z_2)^2}{2\sigma^2})\\ =&\exp(-\frac{x_1^2+z_1^2-2x_1z_1+x_2^2+z_2^2-2x_2z_2}{2\sigma^2})\\ =&\exp(-\frac{x_1^2}{2\sigma^2})\exp(-\frac{z_1^2}{2\sigma^2})\exp(-\frac{x_2^2}{2\sigma^2})\exp(-\frac{z_2^2}{2\sigma^2})\exp(\frac{2x_1z_1}{2\sigma^2})\exp(\frac{2x_2z_2}{2\sigma^2})\\ =&\exp(-\frac{x_1^2}{2\sigma^2})\exp(-\frac{z_1^2}{2\sigma^2})\exp(-\frac{x_2^2}{2\sigma^2})\exp(-\frac{z_2^2}{2\sigma^2})[1+\frac{2x_1z_1}{2\sigma^2}+\cdots+\frac{1}{n!}(\frac{2x_1z_1}{2\sigma^2})^n+\cdots][1+\frac{2x_2z_2}{2\sigma^2}+\cdots+\frac{1}{n!}(\frac{2x_2z_2}{2\sigma^2})^n+\cdots]\\ =&\exp(-\frac{x_1^2}{2\sigma^2})\exp(-\frac{z_1^2}{2\sigma^2})\exp(-\frac{x_2^2}{2\sigma^2})\exp(-\frac{z_2^2}{2\sigma^2})[\sum_{t=0}^{+\infty}\sum_{k=0}^{+\infty}\frac{1}{t!}(\frac{2x_1z_1}{2\sigma^2})^t\frac{1}{k!}(\frac{2x_2z_2}{2\sigma^2})^k]\\ =&\exp(-\frac{x_1^2}{2\sigma^2})\exp(-\frac{x_2^2}{2\sigma^2})[1,\frac{x_1}{\sigma},\cdots,\sqrt{\frac{1}{n!}}(\frac{x_1}{\sigma})^n,\cdots,\frac{x_2}{\sigma},\frac{x_1x_2}{\sigma^2},\cdots,\sqrt{\frac{1}{n!}}(\frac{x_1^nx_2}{\sigma^{n+1}}),\cdots,\sqrt{\frac{1}{t!n!}}\frac{x_1^tx_2^n}{\sigma^{t+n}},\cdots]*\\ &\exp(-\frac{z_1^2}{2\sigma^2})\exp(-\frac{z_2^2}{2\sigma^2})[1,\frac{z_1}{\sigma},\cdots,\sqrt{\frac{1}{n!}}(\frac{z_1}{\sigma})^n,\cdots,\frac{z_2}{\sigma},\frac{z_1z_2}{\sigma^2},\cdots,\sqrt{\frac{1}{n!}}(\frac{z_1^nz_2}{\sigma^{n+1}}),\cdots,\sqrt{\frac{1}{t!n!}}\frac{z_1^tz_2^n}{\sigma^{t+n}},\cdots] \end{align*} K(x,z)======exp(2σ2(x1z1)2+(x2z2)2)exp(2σ2x12+z122x1z1+x22+z222x2z2)exp(2σ2x12)exp(2σ2z12)exp(2σ2x22)exp(2σ2z22)exp(2σ22x1z1)exp(2σ22x2z2)exp(2σ2x12)exp(2σ2z12)exp(2σ2x22)exp(2σ2z22)[1+2σ22x1z1++n!1(2σ22x1z1)n+][1+2σ22x2z2++n!1(2σ22x2z2)n+]exp(2σ2x12)exp(2σ2z12)exp(2σ2x22)exp(2σ2z22)[t=0+k=0+t!1(2σ22x1z1)tk!1(2σ22x2z2)k]exp(2σ2x12)exp(2σ2x22)[1,σx1,,n!1 (σx1)n,,σx2,σ2x1x2,,n!1 (σn+1x1nx2),,t!n!1 σt+nx1tx2n,]exp(2σ2z12)exp(2σ2z22)[1,σz1,,n!1 (σz1)n,,σz2,σ2z1z2,,n!1 (σn+1z1nz2),,t!n!1 σt+nz1tz2n,]

所以两个映射函数分别如上所示:
ϕ ( x ) = exp ⁡ ( − x 1 2 2 σ 2 ) exp ⁡ ( − x 2 2 2 σ 2 ) [ 1 , x 1 σ , ⋯ , 1 n ! ( x 1 σ ) n , ⋯ , x 2 σ , x 1 x 2 σ 2 , ⋯ , 1 n ! ( x 1 n x 2 σ n + 1 ) , ⋯ , 1 t ! n ! x 1 t x 2 n σ t + n , ⋯ ] \phi(x)=\exp(-\frac{x_1^2}{2\sigma^2})\exp(-\frac{x_2^2}{2\sigma^2})[1,\frac{x_1}{\sigma},\cdots,\sqrt{\frac{1}{n!}}(\frac{x_1}{\sigma})^n,\cdots,\frac{x_2}{\sigma},\frac{x_1x_2}{\sigma^2},\cdots,\sqrt{\frac{1}{n!}}(\frac{x_1^nx_2}{\sigma^{n+1}}),\cdots,\sqrt{\frac{1}{t!n!}}\frac{x_1^tx_2^n}{\sigma^{t+n}},\cdots] ϕ(x)=exp(2σ2x12)exp(2σ2x22)[1,σx1,,n!1 (σx1)n,,σx2,σ2x1x2,,n!1 (σn+1x1nx2),,t!n!1 σt+nx1tx2n,]

如果只看后面的向量的话,他就是泰勒展开式中各个项,但是它前面还乘上了系数 exp ⁡ ( − x 1 2 2 σ 2 ) exp ⁡ ( − x 2 2 2 σ 2 ) \exp(-\frac{x_1^2}{2\sigma^2})\exp(-\frac{x_2^2}{2\sigma^2}) exp(2σ2x12)exp(2σ2x22)缩放了一下。
换句话说,这个映射函数把原始特征映射为了一个无穷维的坐标,我们实际上做的是用这个映射后的坐标 exp ⁡ ( − x 1 2 2 σ 2 ) exp ⁡ ( − x 2 2 2 σ 2 ) [ 1 , x 1 σ , ⋯ , 1 n ! ( x 1 σ ) n , ⋯ , x 2 σ , x 1 x 2 σ 2 , ⋯ , 1 n ! ( x 1 n x 2 σ n + 1 ) , ⋯ , 1 t ! n ! x 1 t x 2 n σ t + n , ⋯ ] \exp(-\frac{x_1^2}{2\sigma^2})\exp(-\frac{x_2^2}{2\sigma^2})[1,\frac{x_1}{\sigma},\cdots,\sqrt{\frac{1}{n!}}(\frac{x_1}{\sigma})^n,\cdots,\frac{x_2}{\sigma},\frac{x_1x_2}{\sigma^2},\cdots,\sqrt{\frac{1}{n!}}(\frac{x_1^nx_2}{\sigma^{n+1}}),\cdots,\sqrt{\frac{1}{t!n!}}\frac{x_1^tx_2^n}{\sigma^{t+n}},\cdots] exp(2σ2x12)exp(2σ2x22)[1,σx1,,n!1 (σx1)n,,σx2,σ2x1x2,,n!1 (σn+1x1nx2),,t!n!1 σt+nx1tx2n,]去构成分界面 w exp ⁡ ( − x 1 2 2 σ 2 ) exp ⁡ ( − x 2 2 2 σ 2 ) [ 1 , x 1 σ , ⋯ , 1 n ! ( x 1 σ ) n , ⋯ , x 2 σ , x 1 x 2 σ 2 , ⋯ , 1 n ! ( x 1 n x 2 σ n + 1 ) , ⋯ , 1 t ! n ! x 1 t x 2 n σ t + n , ⋯ ] + b w\exp(-\frac{x_1^2}{2\sigma^2})\exp(-\frac{x_2^2}{2\sigma^2})[1,\frac{x_1}{\sigma},\cdots,\sqrt{\frac{1}{n!}}(\frac{x_1}{\sigma})^n,\cdots,\frac{x_2}{\sigma},\frac{x_1x_2}{\sigma^2},\cdots,\sqrt{\frac{1}{n!}}(\frac{x_1^nx_2}{\sigma^{n+1}}),\cdots,\sqrt{\frac{1}{t!n!}}\frac{x_1^tx_2^n}{\sigma^{t+n}},\cdots]+b wexp(2σ2x12)exp(2σ2x22)[1,σx1,,n!1 (σx1)n,,σx2,σ2x1x2,,n!1 (σn+1x1nx2),,t!n!1 σt+nx1tx2n,]+b作为分界面,其中 w w w为无穷维向量,那么这个分界面问题的对偶函数中 ϕ ( x i ) ϕ ( x j ) \phi(x_i)\phi(x_j) ϕ(xi)ϕ(xj)就是上面的 exp ⁡ ( − ( x 1 − z 1 ) 2 + ( x 2 − z 2 ) 2 2 σ 2 ) \exp(-\frac{(x_1-z_1)^2+(x_2-z_2)^2}{2\sigma^2}) exp(2σ2(x1z1)2+(x2z2)2)的形式,也就是我们不用知道中间映射后的坐标,而可以直接计算 exp ⁡ ( − ( x 1 − z 1 ) 2 + ( x 2 − z 2 ) 2 2 σ 2 ) \exp(-\frac{(x_1-z_1)^2+(x_2-z_2)^2}{2\sigma^2}) exp(2σ2(x1z1)2+(x2z2)2)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【搭建私人图床】使用LightPicture开源搭建图片管理系统并远程访问

文章目录 1.前言2. Lightpicture网站搭建2.1. Lightpicture下载和安装2.2. Lightpicture网页测试2.3.cpolar的安装和注册 3.本地网页发布3.1.Cpolar云端设置3.2.Cpolar本地设置 4.公网访问测试5.结语 1.前言 现在的手机越来越先进,功能也越来越多,而手机…

BeautifulSoup模块基本使用方法(解析—提取数据)

一、了解BeautifulSoup 1、简介 一个灵活又方便的网页解析库,最主要的功能是从网页抓取数据,处理高效,支持多种解析器, 它通过转换器实现文档导航、查找、修改文档的方式。利用它可不用编写正则也能方便的实现网页信息的抓取&am…

【Node.js】Express-Generator:快速生成Express应用程序的利器

在Node.js世界中,Express是一个广泛使用的、强大的Web应用程序框架。它为开发者提供了一系列的工具和选项,使得创建高效且可扩展的Web应用程序变得轻而易举。然而,对于初学者来说,配置和初始化Express应用程序可能会有些困难。为了…

【汇编中的寄存器分类与不同寄存器的用途】

汇编中的寄存器分类与不同寄存器的用途 寄存器分类 在计算机体系结构中,8086CPU,寄存器可以分为以下几类: 1. 通用寄存器: 通用寄存器是用于存储数据和执行算术运算的寄存器。在 x86 架构中,这些通用寄存器通常包括…

Redis——数据结构介绍

Redis是一个key-value的数据库,key一般是String类型,不过value的类型是多样的: String:hello wordHash:{name:"Jack",age:21}List:[A -> B -> C -> D]Set:{A,B,C}SortedSet…

uni-app 之 图片

uni-app 之 图片 获取图片 v-bind 动态绑定 image.png <template><view><view>--- 获取图片1 ---<image src"../../static/img/tabbar_home1.png"></image></view><view>--- 获取图片2 v-bind 动态绑定---<image v-bi…

面试题查漏补缺 i++和 ++ i哪个效率更高

i 和 i 哪个效率更高&#xff1f; 在这里声明&#xff0c;简单地比较前缀自增运算符和后缀自增运算符的效率是片面的&#xff0c;因为存在很多因素影响这个问题的答案。首先考虑内建数据类型的情况:如果自增运算表达式的结果没有被使用&#xff0c;而是仅仅简单地用于增加一员…

从本地到Gitee:一步步学习文件上传及解决常见报错问题

&#x1f642;博主&#xff1a;小猫娃来啦 &#x1f642;文章核心&#xff1a;一步步学习文件上传及解决常见报错问题 文章目录 安装git进入gitee官网&#xff0c;登录账号新建仓库先打开git命令行上传本地资源到仓库第一步&#xff1a;git init第二步&#xff1a;git add .第三…

大数据错误

question1 : Could not locate Hadoop executable: D:\hadoop-3.3.1\bin\winutils.exe - 【已解决】Could not locate executable E:\Hadoop\bin\winutils.exe in the Hadoop binaries._could not locate executable e:\hadoop-3.3.1\bin\wi_君问归期魏有期的博客-CSDN博客 q…

Revit SDK 介绍:CreateAirHandler 创建户式风管机

前言 这个例子介绍如何通过 API 创建一个户式风管机族的内容&#xff0c;包含几何和接头。 内容 效果 核心逻辑 必须打开机械设备的族模板创建几何实体来表示风管机创建风机的接头 创建几何实体来表示风管机 例子中创建了多个拉伸&#xff0c;下面仅截取一段代码&#xff…

开发指导—利用 CSS 动画实现 HarmonyOS 动效(二)

注&#xff1a;本文内容分享转载自 HarmonyOS Developer 官网文档 点击查看《开发指导—利用CSS动画实现HarmonyOS动效&#xff08;一&#xff09;》 3. background-position 样式动画 通过改变 background-position 属性&#xff08;第一个值为 X 轴的位置&#xff0c;第二个…

go web之一:hello world快速上手+handle(http.Handle和http.HandleFunc的区别与联系)

前情提要&#xff1a; 需要安装好go的环境和VSCode的go插件。 hello world快速上手 1、创建go.mod 在项目根目录下打开命令行&#xff0c;或者直接用VSCode中的终端。输入命令 go mod init github.com/solenovex/web-tutorial 然后就能看到项目结构中多了一个go.mod 2、…

JavaWeb知识梳理(后端部分)

JavaWeb 静态web资源&#xff08;如html 页面&#xff09;&#xff1a;指web页面中供人们浏览的数据始终是不变。 动态web资源&#xff1a;指web页面中供人们浏览的数据是由程序产生的&#xff0c;不同时间点访问web页面看到的内容各不相同。 静态web资源开发技术&#xff1…

23种设计模式之---单例模式

闲来无事学一下设计模式&#xff0c;希望这23种可以一直更下去&#xff0c;什么时候能更完呢&#xff0c;也许一个月&#xff0c;也许一年&#xff0c;也许断更 设计模式六大原则 本文是23篇的第一篇&#xff0c;在学习设计模式之前&#xff0c;你需要了解下六大原则。 1、开…

2023年特色小镇行业研究报告

第一章 行业概况 1.1 定义 特色小镇&#xff0c;是指以特定产业、文化、旅游、历史等特色为依托&#xff0c;以小镇为载体&#xff0c;通过优化提升小镇的综合功能和服务能力&#xff0c;形成独特的区域品牌和产业集群&#xff0c;进而推动区域经济社会发展的一种新型城镇化形…

ElementUI浅尝辄止24:Message 消息提示

常用于主动操作后的反馈提示。与 Notification 的区别是后者更多用于系统级通知的被动提醒。 1.如何使用&#xff1f; Message 在配置上与 Notification 非常类似&#xff0c;所以部分 options 在此不做详尽解释&#xff0c;可以结合 Notification 的文档理解它们。Element 注…

Docker 部署SpringBoot项目,使用外部配置文件启动项目

一、Springboot项目引入配置文件的方式&#xff1a; 第一种是在jar包的同一目录下建一个config文件夹&#xff0c;然后把配置文件放到这个文件夹下&#xff1b; 第二种是直接把配置文件放到jar包的同级目录&#xff1b; 第三种在classpath下建一个config文件夹&#xff0c;然后…

长连接和短连接有什么区别?

长连接和短连接是什么&#xff1f; HTTP的长连接和短连接本质上是TCP长连接和短连接。HTTP属于应用层协议&#xff0c;在传输层使用TCP协议&#xff0c;在网络层使用IP协议。 IP协议主要解决网络路由和寻址问题&#xff0c;TCP协议主要解决如何在IP层之上可靠地传递数据包&…

Python实现Word、Excel、PPT批量转为PDF

今天看见了一个有意思的脚本Python批量实现Word、EXCLE、PPT转PDF文件。 因为我平时word用的比较的多&#xff0c;所以深有体会&#xff0c;具体怎么实现的我们就不讨论了&#xff0c;因为这个去学了也没什么提升&#xff0c;不然也不会当作脚本了。这里我将其放入了pyzjr库中…

React 配置别名 @ ( js/ts 项目中通过 webpack.config.js 配置)

一、简介 在 Vue 项目当中&#xff0c;可以使用 来表示 src/&#xff0c;但在 React 项目中&#xff0c;默认却没有该功能&#xff0c;因此需要进行手动的配置来实现该功能。 别名主要解决的问题&#xff1a;每个页面都使用路径的方式进行引入&#xff0c;这样很麻烦&#xff…