豆瓣9.6分统计学神作ISL之第七章读书笔记(上),带你系统学习多项式回归、阶梯函数、基函数和回归样条

本文主要是介绍豆瓣9.6分统计学神作ISL之第七章读书笔记(上),带你系统学习多项式回归、阶梯函数、基函数和回归样条,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

  • 1.原文内容概要
  • 2.算法知识总结
    • 2.1 多项式回归(Polynomial Regression)
    • 2.2 阶梯函数(Step Functions)
    • 2.3 基函数(Basis Functions)
    • 2.4 回归样条(Regression Splines)
      • 2.4.1 分段多项式回归(Piecewise Polynomials)
      • 2.4.2 约束条件与样条函数(Constraints and Splines)
      • 2.4.3 样条函数的基函数形式(The Spline Basis Representation)
      • 2.4.4 选择结点的数量和放置位置(Choosing the Number and Locations)
      • 2.4.5 与多项式回归的比较(Comparison to Polynomial Regression)
  • 引用

1.原文内容概要

想象一下,你已经在一条“笔直”的公路上飞驰了六章的距离,一路上你驾驶的都是线性模型这辆赛车——从最小二乘回归的老爷车到偏最小二乘回归的运动版,再到lasso回归ridge回归,甚至是主成分回归这些涡轮增压版本。但,它们都有一个共同的限制:那就是只能在直线赛道上竞速,无法应对那些复杂的非线性地形

线性模型就像是一种可靠的老伙计,它们的可解释性就像是一本打开的书,让你一目了然地理解每个变量如何影响结果,而它们的推断能力则像是一位经验丰富的侦探,帮你揭示数据背后的规律。但是,如果你想要的是预测能力——那种能够预见未来的能力,线性模型就可能显得有些力不从心了

现在,就在这一章节,我们准备升级我们的赛车,让它不再局限于笔直的道路。我们将放宽线性关系的限制,让赛车可以在曲折蜿蜒的山路上飙车,同时尽可能地保持它的稳定性,就像给你的赛车装上一套先进的导航系统,即便在最复杂的赛道上,你也能清楚地知道下一个弯道在哪里。

所以,坐稳了,准备好迎接非线性模型的狂野之旅吧,享受前所未有的速度与激情!

由于内容较多,第七章的笔记将分成【上】、【下】两个章节输出。本次先介绍【上】章的内容,主要包括多项式回归、阶梯函数、基函数和回归样条。

2.算法知识总结

2.1 多项式回归(Polynomial Regression)

首先,我们来探讨单变量回归的情形。一个一元线性回归模型可以表示为:
image.png
为了引入非线性特性,我们可以将自变量的 n n n阶多项式包含进模型中,形成多项式回归模型
image.png
在这里 d d d代表多项式的最高阶数。随着阶数 d d d的增加,模型更能捕捉到数据中的非线性关系,生成的曲线会变得越来越“蜿蜒曲折”

多项式回归实际上可以视为多元线性回归的一种特殊形式,其中自变量不仅仅是原始的 x i x_i xi,还包括它的平方 x i 2 x_i^2 xi2、立方 x i 3 x_i^3 xi3,直至 d d d阶的 x i d x_i^d xid。因此,这样的模型仍然可以通过最小二乘法来拟合。在实际应用中,多项式的最高阶数 d d d通常不会超过 3 或 4,因为过高的阶数可能导致模型过于复杂,难以解释,并且可能引起过拟合问题(Generally speaking, it is unusual to use d greater than 3 or 4)。

在多项式回归分析中,我们采用了工资数据集(Wage data),并将年龄(Age)作为自变量 X X X,工资(Wage)作为因变量 Y Y Y。在此示例中,作者选择了4阶多项式,即设置上述的模型参数 d d d等于4。回归结果如下图所示,图中的蓝色实线展示了通过4阶多项式回归得到的拟合曲线,而上下两条虚线则分别表示拟合曲线加减两倍标准差的范围,这可以视为模型预测的置信区间
image.png

那这两倍标准误差曲线怎么算出来的呢?
我们先从某个点的标准误差讲起。比如当我们要计算点 X = x 0 X=x_0 X=x0处的方差 V a r [ f ^ ( x 0 ) ] Var[\hat{f}(x_0)] Var[f^(x0)]时,其中 f ^ ( x 0 ) \hat{f}(x_0) f^(x0)表示为:
image.png
步骤如下所示:
1)首先,从最小二乘法拟合的模型中获取每个系数 β 0 , β 1 , β 2 , . . . , β p β_0, β_1, β_2, ... , β_p β0,β1,β2,...,βp的标准误差
2)其次,确定这些系数之间的协方差矩阵,因为预测值的不确定性不仅由单个系数的不确定性决定,还受到它们之间相互关系的影响;
3)然后,将这些标准误差和协方差矩阵代入一个公式(比较复杂,放在这儿有点辣眼睛,就交给统计软件吧)来推导预测值的方差;
4)最后,将得到的方差开根号,即可得到在 x 0 x_0 x0处的预测值的标准误差。

我们使用上述方法计算每个数据点的标准误差,然后在每个预测值 f ^ ( x i ) \hat{f}(x_i) f^(xi)上减去其对应的二倍标准误差,再将点连成线,即得到二倍标准误差曲线选择二倍的原因是,在随机误差项符合正态分布的假设下,加减二倍标准误差所构建的区间可以近似地表示95%的置信水平,即绝大部分观测值将落在此区间内。

从散点图中可以观察到,数据集呈现一项特征:工资(Wage)明显地分成两个区间,以250为分界。因此,我们可以将因变量 Y Y Y依据工资是否大于250划分为“高收入”和“低收入”两类,这样处理后因变量 Y Y Y转变为一个二元离散变量。在此种情形下,适用的模型不再是简单的线性回归,而是逻辑回归,模型表达式如下:
image.png
如图所示,蓝色实线展示了预测个体属于高收入类别的概率,而虚线则表示概率的两倍标准误差范围,灰色点代表各个样本数据点。另外从图中可见,在右侧的置信区间范围较宽。这主要是因为在所提供的样本数据中,标记为高收入的正样本数量非常有限。据作者描述,在3000个样本中,仅有79位被归类为高收入者。这一悬殊的比例导致了统计估计的不确定性增加,因而置信区间相对较大。
image.png

2.2 阶梯函数(Step Functions)

多项式函数通过在特征的线性模型中引入高次项,为数据添加全局非线性结构(Using polynomial functions of the features as predictors in a linear model imposes a global structure on the non-linear function of X)。这意味着多项式关系对所有 X X X值域内的点都适用。相比之下,分段函数方法将 X X X的值域分割成若干个区间(bins),有效地将连续变量X转换成一个有序的分类变量(This amounts to converting a continuous variable into an ordered categorical variable)。在每个区间内,我们拟合一个单独的线性方程,从而在整个 X X X的值域上构建一个由多个线性片段组成的非线性模型

如图所示,作者通过断点 c 1 , c 2 , . . . , c K c_1, c_2, ..., c_K c1,c2,...,cK将变量 X X X细分为 K + 1 K+1 K+1个新的变量 C 0 ( X ) , C 1 ( X ) , … , C k ( X ) C_0(X),C_1(X),…,C_k(X) C0(X),C1(X),,Ck(X)。这些新变量利用指示函数 I ( ⋅ ) I(·) I(),当条件成立时取值为1,否则为0,它们也被称为哑谜变量(dummy variables)。需要注意的是,对于任一特定的 X = x i X=x_i X=xi,其对应的各个哑谜变量的和恒等于1(因为 x i x_i xi仅属于唯一一个区间)。
image.png
作者随后将这 K + 1 K+1 K+1个新生成的变量作为独立变量重新拟合原始方程,形式如下:
image.png
请注意,公式中我们未包含 C 0 ( X ) C_0(X) C0(X)这个变量因为它与模型中的截距项 β 0 β_0 β0作用相同。在构建哑谜变量时,我们可以省略任意一个类别,正如3个类别的分类仅需要2个哑谜变量即可完整表达。对于 X < c 1 X < c_1 X<c1区间内的数据点,除了截距之外,所有其他变量系数均设为0,因此截距 β 0 β_0 β0可以被解释为当 X < c 1 X < c_1 X<c1时因变量 Y Y Y的平均值。当 c j ≤ X < c j + 1 c_j ≤ X < c_{j+1} cjX<cj+1区间时,模型预测值为 β 0 + β j β_0+β_j β0+βj因此,系数 β j β_j βj的含义是:对于处于区间 c j ≤ X < c j + 1 c_j ≤ X < c_{j+1} cjX<cj+1内的 X X X值,预测值相对于 X < c 1 X < c_1 X<c1区间的平均变化量(so represents the average increase in the response for X in c j ≤ X < c j + 1 c_j ≤ X < c_{j+1} cjX<cj+1relative to X < c 1 X < c_1 X<c1)。

将阶梯函数应用至工资数据集后,所得的模型效果图如下。可见,在此案例中,分段常数函数的拟合效果并不理想(例如,在第一个年龄区间内,模型未能反映出工资随年龄增长而上升的趋势)。
image.png
如同之前处理工资数据集的方式,我们可以将工资数据分为高收入和低收入两类,并相应地将线性回归模型转换为逻辑回归模型,如下图所示:
image.png
尽管在本案例中阶梯函数的效果不尽如人意,但在生物统计学和流行病学领域,阶梯函数仍然颇受欢迎(Nevertheless, step function approaches are very popular in biostatistics and epidemiology)。

2.3 基函数(Basis Functions)

在基函数方法中,我们拥有一系列可用于变换自变量 X X X的工具函数,如 b 1 ( X ) , b 2 ( X ) , . . . , b K ( X ) b_1(X), b_2(X), . . . , b_K(X) b1(X),b2(X),...,bK(X)。这些函数 b 1 ( ⋅ ) , b 2 ( ⋅ ) , . . . , b K ( ⋅ ) b_1(·), b_2(·), . . . , b_K(·) b1(),b2(),...,bK()事先选定(fixed and known)的固定函数,被称为基函数多项式和阶梯函数都是基函数的特殊情况(Polynomial and piecewise-constant regression models are in fact special cases of a basis function approach):在多项式基函数中,每个基函数的形式是 b j ( x i ) = x i j b_j(x_i) = x_i^j bj(xi)=xij;而在分段函数的情况下,基函数采用的形式是 b j ( x i ) = I ( c j ≤ x i < c j + 1 ) b_j(x_i) = I(c_j ≤ x_i < c_{j+1}) bj(xi)=I(cjxi<cj+1)

image.png
我们可以将这些基函数 b 1 ( x i ) , b 2 ( x i ) , . . . , b K ( x i ) b_1(x_i), b_2(x_i), ..., b_K(x_i) b1(xi),b2(xi),...,bK(xi)视为自变量,并构建一个多元线性回归模型这意味着我们仍然可以使用最小二乘法来拟合系数,并且适用于线性回归的所有特性(例如系数的标准误差、衡量模型整体显著性的F统计量)也同样适用于基于基函数的模型。

在接下来的章节中,我们将探讨一种非常普遍的基函数选择:回归样条函数(regression splines)

2.4 回归样条(Regression Splines)

2.4.1 分段多项式回归(Piecewise Polynomials)

这种方法融合了之前的多项式回归与阶梯函数的策略,即将自变量分割成多个区间,并在每个区间内分别进行多项式回归拟合。例如,我们可以考虑拟合一个分段三次多项式回归方程(piecewise cubic polynomial regression),形式如下所示:
image.png
乍一看,分段三次多项式回归似乎与普通的三阶多项式回归没有显著区别,但实际上二者有重要差异。在标准的三阶多项式回归中,系数对于 X X X的所有值都是固定不变的而在分段三次多项式回归中,由于自变量 X X X被分成了几个区间,每个区间都单独拟合了一个三阶多项式,因此不同区间的 X = x i X=x_i X=xi值对应的系数( β 0 , β 1 , β 2 , β 3 β_0, β_1, β_2, β_3 β0,β1,β2,β3)是不同的划分这些区间的点称为结点(knots)

例如,在这里我们设定一个结点 c c c,则对应的分段三阶多项式回归可以表示为:
image.png
可以看到,实际上我们分别对两个不同的区间的样本数据拟合了两个标准三阶多项式回归模型:对于 x i < c x_i<c xi<c的样本,我们拟合了一个具有系数 β 01 , β 11 , β 21 , β 31 β_{01}, β_{11}, β_{21}, β_{31} β01,β11,β21,β31的三阶多项式;而对于 x i ≥ c x_i≥c xic的样本,我们拟合了另一个独立的三阶多项式回归模型,具有系数 β 02 , β 12 , β 22 , β 32 β_{02}, β_{12}, β_{22}, β_{32} β02,β12,β22,β32。这些系数都可以通过最小二乘法计算得出。

通常情况下,如果我们设定了 K K K个结点,最终我们将拟合 K + 1 K+1 K+1个相应的分段模型随着设置的结点数量增多,模型的灵活性(或者说复杂度)也会相应增加(Using more knots leads to a more flexible piecewise polynomial)。当然,理论上多项式的阶数可以是任意选择的。可能大家已经注意到了,我们最初提到的阶梯函数回归实际上就是分段多项式回归在阶数为0时的特例

下图展示了使用工资数据集,并按照年龄(Age)以50岁为分界线分成两部分后,拟合的分段三阶多项式回归模型。这个模型的一个显著特点是,在Age=50这个点上函数是不连续的,这导致模型在这个点上显得不太合理。由于模型中结点的数量为1,并且是三阶多项式拟合,因此需要估计8个系数。所以,我们说这个模型的自由度为8
image.png

这里需要简要说明一下自由度的定义在不同的语境下,自由度的定义可能会有所不同
1)在统计学中自由度通常定义为样本量减去模型中参数的数量(或等价地,约束条件的数量)。例如,如果你有10000个数据点,对于一个三元线性回归模型,你需要估计的参数包括一个截距项和三个斜率项,总共是4个参数。因此,自由度将是样本大小10000减去4,等于9996。
2)在机器学习中比如在线性回归或神经网络中,模型的自由度可以等同于模型参数(如权重和偏置)的数量。在这里,作者使用的是机器学习领域中对自由度的定义。

2.4.2 约束条件与样条函数(Constraints and Splines)

为了解决上图在Age=50处跳跃不连续的问题,我们在拟合模型时需要加入一些限制条件,例如要求模型在结点处必须是连续的。下图展示了加入这些限制条件后拟合的结果,看起来比之前的结果要好一些,但是连接处仍然显得有些不自然
image.png

为了使得在结点处的连接更加自然我们将限制条件加强为“不仅要求函数连续,还要求光滑地连续”用数学术语来说,就是在Age=50这个点上,函数的一阶和二阶导数也必须连续结合原先对函数本身连续性的要求,这相当于一共加上了三个限制条件。通常情况下,每增加一个限制条件,我们就会减少一个自由度,这样做可以降低模型的复杂度。这次修改导致模型的自由度从8减少到了5最终得到的这个模型有一个专业名称,叫做三阶样条函数(cubic spline)。拟合结果如下图所示,现在肉眼几乎无法辨识出不连续的地方了。(建议大家这里回顾下上面的三张图,深刻体会下模型如何从Piecewise Cubic 到 Continuous Piecewise Cubic 最后到 Cubic Spline的转变)。
image.png

通常情况下,我们所说的 d d d 阶样条函数指的是分段的 d d d 阶多项式回归模型,并且附带了限制条件:在每个结点上,从函数其本身到 d − 1 d-1 d1 阶导数都必须连续。下图所示为最简单的1阶样条函数,但更常见的叫法是线性样条函数,它的限制条件仅要求函数本身在结点处连续(因为此时 d = 1 d=1 d=1,所以只要求0阶导数,即函数本身,连续即可)。
image.png

2.4.3 样条函数的基函数形式(The Spline Basis Representation)

我们可以使用之前讨论的基础函数(basis function)来表示回归样条(regression spline)

例如,一个具有 k k k个结点的三阶样条回归模型可以通过基函数表示为:

image.png
通过选择合适的函数形式 b 1 , b 2 , … , b K + 3 b_1, b_2, \ldots, b_{K+3} b1,b2,,bK+3,我们就能够表示具有 k k k个结点的三阶样条回归模型了

为什么这里算上截距一共要拟合的是 K + 4 K+4 K+4个参数呢?

这与自由度的概念有关。在本章中,作者将自由度等同于模型中需要拟合的参数数量。通常情况下,如果结点的数量为 K K K,则最终我们会拟合 K + 1 K+1 K+1个相应的分段模型。由于在这里我们拟合的是三阶多项式,所以在不添加任何限制条件的情况下,包括每个分段的截距在内,总共需要拟合 ( K + 1 ) × 4 (K+1) \times 4 (K+1)×4个系数。然而,由于样条函数需要在每个结点处施加三个限制条件(即要求函数值、一阶导数和二阶导数连续),这意味着在每个结点会减少3个自由度。因此,对于 K K K个结点,总共会减去 3 K 3K 3K个自由度。所以,最终得到的参数数量是 ( K + 1 ) × 4 − 3 K = K + 4 (K+1) \times 4 - 3K = K + 4 (K+1)×43K=K+4个。

现在我们来确定 b 1 , b 2 , … , b K + 3 b_1, b_2, \ldots, b_{K+3} b1,b2,,bK+3合适的函数形式。在表达样条函数时,我们通常会选择一个样条基函数,其中幂基(Power basis)是一种常用的样条基函数,它采用幂函数作为基函数。然而,直接使用完整的幂函数基可能会导致模型过拟合或计算不稳定,因此在实际应用中,通常会使用截断的幂基(也就是分段),即“Truncated power basis”。其形式如下所示:
image.png
其中 ξ ξ ξ表示结点。
然后我们将 β 4 h ( x , ξ ) β_4h(x,ξ) β4h(x,ξ)这一项加入到最初的分段三次多项式回归中变为: y i = β 0 + β 1 x i + β 2 x i 2 + β 3 x i 3 + β 4 h ( x , ξ ) + ε y_i=β_0+β_1x_i+β_2x_i^2+β_3x_i^3+β_4h(x,ξ)+ε yi=β0+β1xi+β2xi2+β3xi3+β4h(x,ξ)+ε

再次提醒,这个公式不应被误解为普通的三阶多项式(如果有疑问,可以回顾第2.4.1节的内容)。换句话说,为了拟合一个具有 K K K个结点的三阶样条回归模型,我们相当于拟合了一个包含截距项 K + 3 K+3 K+3个自变量的普通最小二乘线性回归模型。这些自变量的形式可以表示为 X , X 2 , X 3 , h ( X , ξ 1 ) , h ( X , ξ 2 ) , … , h ( X , ξ K ) X, X^2, X^3, h(X, \xi_1), h(X, \xi_2), \dots, h(X, \xi_K) X,X2,X3,h(X,ξ1),h(X,ξ2),,h(X,ξK),其中 ξ 1 , … , ξ K \xi_1, \ldots, \xi_K ξ1,,ξK就是那 K K K个结点。由于模型中有 K + 4 K+4 K+4个系数需要拟合,因此这个模型的自由度可以视为 K + 4 K+4 K+4

如下面蓝色实线所示,我们继续使用之前的工资数据集,用年龄(Age)来预测工资(Wage),这次我们使用具有3个结点的三阶样条(cubic spline)进行拟合(三条垂直的虚线代表这三个结点)。

可以看到,整个函数形态非常平滑,但存在一个明显的缺点,在变量的边缘部分(小于最小结点或大于最大结点的部分),预测结果的不确定性(方差)会变得很大,这可以通过两侧虚线的宽度来判断。因此,我们可以增加另一个限制条件,即在 X X X的边界处函数必须是线性的,正如下图中红色实线所示。可以看出,在加入这个额外限制条件后,两侧的虚线明显变窄了(两条红色虚线的间距相较于蓝色虚线),这表明预测的不稳定性在降低。这条红色实线也有一个官方名称,叫做自然三阶样条(natural cubic spline)(A natural spline is a regression spline with additional boundary constraints: the natural function is required to be linear at the boundary (in the region where X is smaller than the smallest knot, or larger than the largest knot) )。
image.png

2.4.4 选择结点的数量和放置位置(Choosing the Number and Locations)

当我们想要拟合一个样条函数时,我们需要面对的首要问题是,如何放置那些结点(knots)?

理想情况下,我们希望在数据表现出较强非线性的地方放置更多的结点,因为一个区域内结点越多,该区域最终拟合出的函数的非线性特征就越明显。然而,在实际情况中,我们往往难以准确判断数据在哪里呈现非线性,哪里保持线性。因此,通常情况下,我们会先确定模型的自由度,然后让软件根据自变量的相同百分位数来放置对应数量的结点(One way to do this is to specify the desired degrees of freedom, and then have the software automatically place the corresponding number of knots at uniform quantiles of the data)。

下图是作者拟合的一个拥有3个结点的自然三阶样条(natural cubic spline),作者只是事先确定了这次模型的自由度为4。接下来,3个结点(knots)的位置选择就完全交给了软件自动完成,分别选择了25分位数、50分位数和75分位数。**至于为什么自由度设为4,在自然三阶样条下就等价于3个结点呢?**严格来讲,实际上这里有5个结点,包括内部的三个显性结点,以及左右两个边界的结点。根据前面的知识,我们知道一个拥有5个结点的三阶自然样条函数,有 5 + 3 + 1 = 9 5+3+1=9 5+3+1=9自由度,因为自然样条需要在自变量的两个边界各加两个限制条件(第一、第二阶可导),所以最终的自由度是 9 − 2 − 2 = 5 9-2-2=5 922=5个。又因为这5个自由度里包含一个截距的常数项,所以我们一般只认为是4个自由度。
image.png

那么,结点(knots)的数量或者说模型自由度通常是如何确定的呢?答案是交叉验证(相信这个答案大家已经听麻了)。作者仍然使用了之前的工资数据集,用年龄来预测工资,这里采用了10折交叉验证,分别拟合了自然三阶样条和普通三阶样条。可以看出,两种方式都表明,只包含一个自由度(即单纯的线性模型)对数据集的模型是欠拟合的,而一旦自由度超过三个,误差曲线变得平缓。因此,在这个例子中,选择自由度为3是合理的
image.png

这里需要提醒的是,到目前为止,我们只考虑了单变量的情况,所以自由度的选择显得很容易。在后面的内容中,我们将讨论加性样条模型(additive spline models)这种模型包含了多个自变量,并要求我们针对每个变量有针对性地选择其对应的自由度。在这种情况下,实际工作中,我们通常也只会选择一个固定的自由度,将其适用于所有变量(This could potentially require the selection of degrees of freedom for each variable. In cases like this we typically adopt a more pragmatic approach and set the degrees of freedom to a fixed number, say four, for all terms)。

2.4.5 与多项式回归的比较(Comparison to Polynomial Regression)

下图使用相同的数据集比较了一个拥有15个自由度的自然三次样条(natural cubic spline)也拥有15个自由度的普通多项式回归模型。可以看到,在自变量的边界上,普通多项式回归模型预测的数值极不稳定,波动极大;而自然三次样条则相对平缓很多,这正是自然三次样条的特性,因为在边界上加了额外的限制条件。

一般情况下,自然三次样条都要比普通的多项式回归模型更稳定。这是因为普通的多项式回归为了增加模型的非线性特征,只能不停地增加变量的阶数,例如这里,最高阶数达到了15,即 X 15 X^{15} X15;而自然三次样条只需要增加结点(knots)的个数,同时保持最高阶数不变。
image.png

引用

image.png

这篇关于豆瓣9.6分统计学神作ISL之第七章读书笔记(上),带你系统学习多项式回归、阶梯函数、基函数和回归样条的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

51单片机学习记录———定时器

文章目录 前言一、定时器介绍二、STC89C52定时器资源三、定时器框图四、定时器模式五、定时器相关寄存器六、定时器练习 前言 一个学习嵌入式的小白~ 有问题评论区或私信指出~ 提示:以下是本篇文章正文内容,下面案例可供参考 一、定时器介绍 定时器介绍:51单片机的定时器属于单片机的内部资源,其电路的连接和运转均在单片机内部完成。 定时器作用: 1.用于计数系统,可

问题:第一次世界大战的起止时间是 #其他#学习方法#微信

问题:第一次世界大战的起止时间是 A.1913 ~1918 年 B.1913 ~1918 年 C.1914 ~1918 年 D.1914 ~1919 年 参考答案如图所示

[word] word设置上标快捷键 #学习方法#其他#媒体

word设置上标快捷键 办公中,少不了使用word,这个是大家必备的软件,今天给大家分享word设置上标快捷键,希望在办公中能帮到您! 1、添加上标 在录入一些公式,或者是化学产品时,需要添加上标内容,按下快捷键Ctrl+shift++就能将需要的内容设置为上标符号。 word设置上标快捷键的方法就是以上内容了,需要的小伙伴都可以试一试呢!

AssetBundle学习笔记

AssetBundle是unity自定义的资源格式,通过调用引擎的资源打包接口对资源进行打包成.assetbundle格式的资源包。本文介绍了AssetBundle的生成,使用,加载,卸载以及Unity资源更新的一个基本步骤。 目录 1.定义: 2.AssetBundle的生成: 1)设置AssetBundle包的属性——通过编辑器界面 补充:分组策略 2)调用引擎接口API

Javascript高级程序设计(第四版)--学习记录之变量、内存

原始值与引用值 原始值:简单的数据即基础数据类型,按值访问。 引用值:由多个值构成的对象即复杂数据类型,按引用访问。 动态属性 对于引用值而言,可以随时添加、修改和删除其属性和方法。 let person = new Object();person.name = 'Jason';person.age = 42;console.log(person.name,person.age);//'J

大学湖北中医药大学法医学试题及答案,分享几个实用搜题和学习工具 #微信#学习方法#职场发展

今天分享拥有拍照搜题、文字搜题、语音搜题、多重搜题等搜题模式,可以快速查找问题解析,加深对题目答案的理解。 1.快练题 这是一个网站 找题的网站海量题库,在线搜题,快速刷题~为您提供百万优质题库,直接搜索题库名称,支持多种刷题模式:顺序练习、语音听题、本地搜题、顺序阅读、模拟考试、组卷考试、赶快下载吧! 2.彩虹搜题 这是个老公众号了 支持手写输入,截图搜题,详细步骤,解题必备

《offer来了》第二章学习笔记

1.集合 Java四种集合:List、Queue、Set和Map 1.1.List:可重复 有序的Collection ArrayList: 基于数组实现,增删慢,查询快,线程不安全 Vector: 基于数组实现,增删慢,查询快,线程安全 LinkedList: 基于双向链实现,增删快,查询慢,线程不安全 1.2.Queue:队列 ArrayBlockingQueue:

【操作系统】信号Signal超详解|捕捉函数

🔥博客主页: 我要成为C++领域大神🎥系列专栏:【C++核心编程】 【计算机网络】 【Linux编程】 【操作系统】 ❤️感谢大家点赞👍收藏⭐评论✍️ 本博客致力于知识分享,与更多的人进行学习交流 ​ 如何触发信号 信号是Linux下的经典技术,一般操作系统利用信号杀死违规进程,典型进程干预手段,信号除了杀死进程外也可以挂起进程 kill -l 查看系统支持的信号

通信系统网络架构_2.广域网网络架构

1.概述          通俗来讲,广域网是将分布于相比局域网络更广区域的计算机设备联接起来的网络。广域网由通信子网于资源子网组成。通信子网可以利用公用分组交换网、卫星通信网和无线分组交换网构建,将分布在不同地区的局域网或计算机系统互连起来,实现资源子网的共享。 2.网络组成          广域网属于多级网络,通常由骨干网、分布网、接入网组成。在网络规模较小时,可仅由骨干网和接入网组成

硬件基础知识——自学习梳理

计算机存储分为闪存和永久性存储。 硬盘(永久存储)主要分为机械磁盘和固态硬盘。 机械磁盘主要靠磁颗粒的正负极方向来存储0或1,且机械磁盘没有使用寿命。 固态硬盘就有使用寿命了,大概支持30w次的读写操作。 闪存使用的是电容进行存储,断电数据就没了。 器件之间传输bit数据在总线上是一个一个传输的,因为通过电压传输(电流不稳定),但是电压属于电势能,所以可以叠加互相干扰,这也就是硬盘,U盘