【深度学习】图形模型基础(5):线性回归模型第二部分:单变量线性回归模型

1.引言

在统计学与机器学习的广阔领域中,线性回归作为一种基础而强大的预测技术,其核心在于通过输入变量(或称预测器、自变量)来估计输出变量(响应变量、因变量)的连续值。本章聚焦于线性回归的一个基本但意义深远的实例——单变量线性回归,即仅使用一个连续型自变量x来预测另一个连续型因变量y。

具体而言,我们构建了一个线性模型,其形式为 y i = a + b x i + ε y_i = a + bx_i + ε yi=a+bxi+ε,其中 y i y_i yi代表第i个观测值的因变量, ξ \xi ξ是自变量的相应观测值, a a a b b b是模型的参数(分别称为截距和斜率),而 ξ \xi ξ代表误差项,用于捕捉模型无法完全解释的变异性。我们的目标是基于给定的数据集 ( x i , y i ) (x_i, y_i) (xi,yi)(其中 i i i从1到 n n n n n n为样本数量),找到最佳的 a ‘ a` a b b b值,使得模型能够最准确地预测或拟合数据。

为了深入理解这一过程,我们将通过一个实际案例来逐步展示:从数据准备、模型拟合、结果可视化(包括数据点和拟合线的展示),到模型解释(解读斜率和截距的含义)。此外,为了验证模型的稳健性和拟合效果,我们还将采用模拟数据的方法,通过人为生成的数据集来重复模型拟合过程,以此检查拟合流程的有效性和准确性。

尤为值得一提的是,单变量线性回归不仅是复杂统计模型的基础,而且它还隐含了简单比较的逻辑。在某些特定情境下,当斜率 b b b接近或等于某一固定值时(如0或1),线性回归模型就退化为一种更为直观的比较分析,从而展示了其作为数据分析工具箱中通用而灵活的工具之一的重要地位。

2.单变量线性回归的示例

本节以经济增长与美国总体选举的关系展示单变量回归模型的基本特性。

在探讨总统选举中选票份额与经济表现之间关系的统计模型时,我们聚焦于由著名政治学家道格拉斯·希布斯(Douglas Hibbs)提出的“面包与和平”理论框架。这一理论简约而有力,其核心在于通过经济增长这一单一变量来预测选举结果,并巧妙地考虑了战争时期的特殊情况,如1952年史蒂文森(Stevenson)因战争而遭遇的选举挫折,以及1968年汉弗莱(Humphrey)在越南战争阴影下的失利。尽管通过整合更多信息(如现任总统的执政状态、民意调查结果等)能够进一步提升预测精度,但这一基础模型已展现出其非凡的预测能力。

为了具体实现这一模型,我们采用了线性回归的方法,并将结果可视化于图2.2中。此图直观地描绘了经济增长(自变量x)与现任政党选票份额(因变量y)之间的关系,通过一条拟合线展现了两者之间的统计关联。数据来源于精心整理的 h i b b s . d a t hibbs.dat hibbs.dat文件,其中包含了历次选举中现任政党在两党制投票中的得票百分比( v o t e vote vote)以及前几年的平均个人收入增长( g r o w t h growth growth),作为分析的关键指标。

在R环境中,我们首先读取并绘制了这些数据,以便直观感受经济增长与选举结果之间的潜在联系。随后,利用 s t a n g l m stan_glm stanglm函数(来自 r s t a n a r m rstanarm rstanarm包,一个结合了贝叶斯统计与广义线性模型的强大工具)拟合了线性模型 M 1 M1 M1,其中 v o t e vote vote被建模为 g r o w t h growth growth的函数。通过执行 p r i n t ( M 1 ) print(M1) print(M1),我们在R控制台中获得了模型的详细输出,这些输出包括参数估计值(如斜率和截距,它们分别量化了经济增长对选票份额的直接影响)、拟合优度指标(评估模型对数据解释的充分程度)、以及残差分析(揭示模型未能解释的变异性)。

深入理解这些输出结果,对于评估模型的有效性、识别潜在的数据模式以及探索经济增长与选举结果之间复杂关系的本质至关重要。尽管第8章将更深入地探讨模型的拟合过程与细节,但当前阶段的分析已为我们提供了关于这一重要社会现象的初步见解,揭示了经济增长在塑造选举结果方面不可忽视的力量。
在这里插入图片描述
图2.1 道格拉斯·希布斯的“面包与和平”投票与经济模型。自1952年以来的总统选举按前一届政府任期末经济表现(通过通货膨胀调整后的平均个人收入增长来衡量)的顺序列出。对决以现任政党的候选人对阵其他政党的候选人列出。经济表现越好,现任政党的候选人表现得越好,最大的例外是1952年(朝鲜战争)和1968年(越南战争)。
在这里插入图片描述
图2.2 (a)根据经济预测选举:图7.1中的数据以散点图的形式表示,每年有一个数据点,(b)带有线性拟合的数据, y = 46.3 + 3.0 x y = 46.3 + 3.0x y=46.3+3.0x

3.利用经济预测分析总统选举投票

在探讨如何通过经济增长率来预测总统选举投票份额的过程中,我们深入分析了投票结果与经济状况之间的关联。本例中,投票份额作为结果变量,而经济增长率则作为预测变量。值得注意的是,我们的模型默认包含了一个截距项,这意味着回归线并非简单地从原点出发,而是形式为 y = a + b x y = a + bx y=a+bx,其中 a a a 是截距, b b b 是斜率,而 x x x 代表经济增长率。

3.1.截距项的意义与调整

在某些特定情境下,我们可能希望拟合一条截距为零的直线,即 y = b x y = bx y=bx。这可以通过在R中使用 s t a n g l m stan_glm stanglm 函数时添加 − 1 -1 1 参数来实现,如 s t a n g l m ( v o t e   − 1 + g r o w t h ) stan_glm(vote ~ -1 + growth) stanglm(vote 1+growth)。然而,在本例中,由于我们希望模型能够反映经济增长为零时现任政党可能遭受的惩罚性影响,因此保留截距项是有意义的。

3.2.模型系数解读

模型拟合后,我们得到了两个关键系数:截距和增长率的斜率,以及它们的不确定性度量(通过中位数和MAD_SD表示)和残差标准差(sigma)。具体来说,拟合的直线方程为 y = 46.3 + 3.0 x y = 46.3 + 3.0x y=46.3+3.0x,这意味着:

  • 当经济增长率为零时,现任政党预计将获得46.3%的选票,这通常预示着选举的失利。
  • 经济增长率每增加一个百分点,现任政党的预期选票份额将增加3.0个百分点。

斜率的标准误差较小(0.7),表明这一估计具有较高的可靠性,且95%置信区间为[1.6, 4.4],与零显著分离,进一步支持了经济增长对选举结果的重要影响。

3.3.残差标准差与模型预测能力

残差标准差(σ=3.9)反映了模型预测与实际结果之间的平均差异,约68%的观测值将落在拟合线±3.9个百分点之内。这表明模型虽然提供了有价值的预测信息,但并非完全准确,选举结果仍受多种因素影响。

3.4案例分析

回顾2008年选举,当时的经济增长率约为0.1%,根据我们的模型,预测现任政党(共和党)将获得约46.6%的选票,而奥巴马(民主党)则有望获得53.4%的选票。这一预测与实际情况相符,展示了模型在特定条件下的有效性。

在2016年选举前,我们基于约2%的经济增长率进行了预测。根据模型,希拉里·克林顿的预期投票份额为52.3%。然而,这个预测值本身并不直接告诉我们希拉里获胜的概率。为了评估这一预测的不确定性,我们构建了图2.3,展示了以52.3为中心、标准差为3.9的正态分布图,从而量化了预测的不确定性。
在这里插入图片描述
图2.3 基于2%的经济增长率,对希拉里·克林顿在2016年两党投票中所占百分比的预测分布。曲线显示了一个以预测点 46.3 + 3.0 × 2.0 = 52.3 为中心的正态分布,标准差为3.9,这是基于模型拟合的估计不确定性。阴影区域表示基于模型的克林顿获胜的概率,即 1 - pnorm(50, 52.3, 3.9),或者0.72。

为了更直观地解释如何利用投票份额预测来估算希拉里·克林顿在2016年普选中的获胜概率,我们可以进一步探讨这一过程的逻辑和实用性。在图7.3中,通过将预测的投票份额分布(以52.3%为中心,标准差为3.9%)与50%的获胜阈值进行比较,我们得到了一个概率值,即希拉里赢得选举的概率为72%。这一计算不仅展示了统计模型的应用,还揭示了概率分布在预测不确定性中的关键作用。

为什么预测投票份额而非直接预测获胜者?

预测投票份额而非直接预测获胜者的原因,根植于选举复杂性和结果不确定性的本质。以下是通过分析三类选举情况来阐述这一点的深度解析:

  1. 势均力敌的选举
    在势均力敌的选举中,如1960年的肯尼迪与尼克松对决,两位候选人的支持率极为接近,使得直接预测获胜者变得极为困难且不可靠。这种情况下,预测投票份额(即每位候选人可能获得的选票百分比)比单纯判断谁将获胜更加合理和科学。它提供了关于选举结果可能性的更细致、更全面的信息,有助于理解选举的紧张程度和潜在的不确定性。

  2. 具有竞争性的选举
    对于像2008年奥巴马与麦凯恩这样的选举,虽然一方被普遍认为是更有可能的获胜者,但另一方仍保留着相当程度的竞争力。在这种情境下,预测投票差距(即两位候选人之间的选票百分比差异)以及任何一方获胜的概率,比简单地宣布某位候选人将获胜更为准确和有用。这不仅有助于评估选举的紧张程度,还能为选民、媒体和政策制定者提供关于选举结果可能性的重要参考。

  3. 概率视角的优越性
    通过预测投票份额并计算获胜概率,我们能够以更加量化和精确的方式理解选举结果的不确定性。这种方法不仅有助于减少主观臆断和偏见的影响,还能为决策制定提供更加科学、客观的依据。此外,概率分布还允许我们考虑极端情况的可能性(尽管它们可能较为罕见),从而进一步完善我们对选举结果的理解。

预测投票份额而非直接预测获胜者,是出于对选举复杂性和结果不确定性的充分考虑。通过预测投票份额并计算获胜概率,我们能够以更加全面、细致和量化的方式理解选举结果的可能性,为选民、媒体和政策制定者提供更加准确、有用的信息。这种方法不仅提高了预测的准确性和可靠性,还促进了对选举结果更深入、更科学的理解和分析。

4.利用模拟数据检验模型拟合过程

虽然前一个例子简单到可以通过绘图直观判断直线是否穿过数据点,但更普遍地说,在已知真实情况的受控条件下进行拟合并检查拟合效果是一种良好的实践。本文将通过选举模型来演示这一过程。

步骤1:构建虚拟世界
我们首先为模型中的所有参数设定真实的值。鉴于我们已经对数据进行了模型拟合,我们将假设这些特定的参数值是真实的。即,我们假设公式 y = a + b x + error y = a + bx + \text{error} y=a+bx+error 正确无误,其中误差来自均值为0、标准差为 σ \sigma σ 的正态分布。然后,我们使用数据集中已有的预测变量 x x x 来检查这些预测变量是否能够复现与我们观察到的 y y y 一致的分布。

a <- 46.3
b <- 3.0
sigma <- 3.9
x <- hibbs$growth
n <- length(x)

步骤2:生成模拟数据
接下来,我们生成一个假数据向量 y y y 并将其放入数据框中:

y <- a + b*x + rnorm(n, 0, sigma)
fake <- data.frame(x, y)

步骤3:拟合模型并比较拟合值与预设值
然后,我们对这些数据执行回归分析。在拟合过程中,不使用预设的真实值 α \alpha α β \beta β σ \sigma σ

it <- stan_glm(y ~ x, data=fake)
print(fit)

回归分析的输出结果如下:

Median MAD_SD
(Intercept) 44.4 1.7
x 3.2 0.7
Auxiliary parameter(s):
Median MAD_SD
sigma 4.0 0.8

将估计得到的系数与预设的真实值46.3和3.0进行比较,可以看出拟合结果是合理的:虽然估计值并不完全精确,但它们落在了可接受的误差范围内。

为了更正式地进行比较,我们可以从回归对象中提取系数的估计值和标准误差。为了编程简便,这里我们仅提取斜率 b b b 的值:

b_hat <- coef(fit)["x"]
b_se <- se(fit)["x"]

接着,我们检查 b b b 的真实值是否落在通过加减一个或两个标准误差得到的68%和95%置信区间内:

cover_68 <- abs(b - b_hat) < b_se
cover_95 <- abs(b - b_hat) < 2*b_se
cat(paste("68% coverage: ", cover_68, "\n"))
cat(paste("95% coverage: ", cover_95, "\n"))

步骤4:将模拟过程嵌入循环中
我们已经确认了置信区间在单次模拟中的有效性,但它们是否具有正确的覆盖概率——也就是说,这些区间是否如预期那样按照宣称的百分比包含了真实值?为了验证这一点,我们将模拟过程、模型拟合和覆盖率检查嵌入一个循环中,并重复执行1000次。这样的循环也可以使用R语言中的 replicate 函数来隐式执行,如文档中第72页和74页所示。这里我们选择直接编写循环代码:

n_fake <- 1000
cover_68 <- rep(NA, n_fake)
cover_95 <- rep(NA, n_fake)
for (s in 1:n_fake){
y <- a + b*x + rnorm(n, 0, sigma)
fake <- data.frame(x, y)
fit <- stan_glm(y ~ x, data=fake, refresh=0) # suppress output on console
b_hat <- coef(fit)["x"]
b_se <- se(fit)["x"]
cover_68[s] <- abs(b - b_hat) < b_se
cover_95[s] <- abs(b - b_hat) < 2*b_se
}
cat(paste("68% coverage: ", mean(cover_68), "\n"))
cat(paste("95% coverage: ", mean(cover_95), "\n"))

这个过程需要几分钟来运行,完成后在控制台上将显示如下内容:

68% coverage: 0.628
95% coverage: 0.928

这表明平均而言,63%的68%置信区间和93%的95%置信区间包含了真实参数值,这与理论值0.68和0.95相差不远。覆盖率稍低,部分是因为我们使用的是正态分布的标准误差界限,而实际上,鉴于样本量只有16,我们应该使用具有14个自由度的t分布来进行更准确的推断。为了谨慎起见,我们可以重新检查适当t区间的覆盖率:

n_fake <- 1000
cover_68 <- rep(NA, n_fake)
cover_95 <- rep(NA, n_fake)
t_68 <- qt(0.84, n - 2)
t_95 <- qt(0.975, n - 2)
for (s in 1:n_fake){
y <- a + b*x + rnorm(n, 0, sigma)
fake <- data.frame(x, y)
fit <- stan_glm(y ~ x, data=fake, refresh=0)
b_hat <- coef(fit)["x"]
b_se <- se(fit)["x"]
cover_68[s] <- abs(b - b_hat) < t_68 * b_se
cover_95[s] <- abs(b - b_hat) < t_95 * b_se
}
cat(paste("68% coverage: ", mean(cover_68), "\n"))
cat(paste("95% coverage: ", mean(cover_95), "\n"))

这次模拟给出了预期的结果,即大约68%的68%置信区间和大约95%的95%置信区间包含了真实的参数值。

5. 将比较转化为回归模型

为了与基本统计方法相衔接,本文将展示如何将简单的平均值和比较操作视为线性回归的特殊情况。这种更为通用的公式化方法不仅有助于在概念上统一这些看起来不同的概念,而且在实践中,它将成为构建更复杂模型的一个关键部分,这将在后续章节中展示。

要将比较转化为回归模型,我们需要引入指标变量的概念。指标变量是一种特殊的预测变量,它可以取值为1或0,用于指示数据点是否属于某个特定类别。例如,我们可以为性别创建一个指标变量,其中男性为1,女性为0;或者为种族创建多个指标变量,如“白人”、“黑人”和“西班牙裔”,每个指标变量对于属于特定种族的个体取值为1,否则为0。

为了简化说明,我们将使用模拟数据来展示比较操作与指标回归之间的联系。

5.1.估计均值等同于对常数项进行回归

示例:假设我们从一个均值为2.0、标准差为5.0的总体中模拟20个观测值:

n_0 <- 20
y_0 <- rnorm(n_0, mean = 2.0, sd = 5.0)
fake_0 <- data.frame(y_0)
print(y_0)

在一次特定的模拟中,生成的数字可能如下:

-0.3, 4.1, -4.9, 3.3, 6.4, 7.2, 10.7, -4.6, 4.7, 6.0, 1.1, -6.7, 10.2,
9.7, 5.6, 1.7, 1.3, 6.2, -2.1, 6.5

将这些数值视为一个随机样本,我们可以通过 mean(y_0) 来估计总体均值,其标准误差为 sd(y_0)/sqrt(n_0)。例如,我们得到的估计值可能是3.3,标准误差为1.1。

使用最小二乘回归对常数项进行拟合,我们可以得到相同的结果:

fit_0 <- stan_glm(y_0 ~ 1, data = fake_0, 
                 prior_intercept = NULL, prior = NULL, prior_aux = NULL)
print(fit_0)

这将产生以下输出:

Median MAD_SD
(Intercept) 3.3 1.1
Auxiliary parameter(s):
Median MAD_SD
sigma 5.3 0.9

上述设置分配了一个平坦的先验,以便 stan_glm 能够产生传统的最小二乘回归估计。在后续的讨论中,我们将更详细地讨论先验分布;在这里,我们使用简单的最小二乘估计来证明简单平均值和只有截距的回归之间的等价性。

5.2.估计差异等同于对指标变量进行回归

接下来,我们添加一个新的组别:来自均值为8.0、标准差为5.0的总体的30个观测值:

n_1 <- 30
y_1 <- rnorm(n_1, mean = 8.0, sd = 5.0)

我们可以直接比较每组的平均值,并计算相应的标准误差:

diff <- mean(y_1) - mean(y_0)
se_0 <- sd(y_0) / sqrt(n_0)
se_1 <- sd(y_1) / sqrt(n_1)
se <- sqrt(se_0^2 + se_1^2)

在特定的模拟中,这些计算返回的差异值为4.2,其标准误差为1.3,这与模拟中构建的总体差异6.0一致。

或者,我们可以将问题构建为回归问题,通过将数据合并到一个单独的向量 y ‘ y` y中,并创建一个指标变量 x x x

x_i <- ifelse(observation_i 在组 0, 0, 1)

在R中,我们可以这样编写:

n <- n_0 + n_1
y <- c(y_0, y_1)
x <- c(rep(0, n_0), rep(1, n_1))
fake <- data.frame(x, y)
fit <- stan_glm(y ~ x, data = fake, 
                prior_intercept = NULL, prior = NULL, prior_aux = NULL)
print(fit)

这将产生:

Median MAD_SD
(Intercept) 3.3 1.1
x 4.2 1.2
Auxiliary parameter(s):
Median MAD_SD
sigma 4.7 0.5

斜率的估计值4.2与均值差异 y ˉ 1 − y ˉ 0 \bar{y}_1 - \bar{y}_0 yˉ1yˉ0 相同,这是简单模型的必然结果。我们将在第9章更全面地讨论先验。标准误差几乎相同,但略有差异,因为回归模型估计了一个单一的残差标准差参数,而差异计算使用了单独的 s e 0 se_0 se0 s e 1 se_1 se1 值。

在这里插入图片描述
图2.4 模拟数据示例,展示了对指标变量进行回归分析与计算两个组之间均值差异是相同的
图2.4直观地展示了两种估计的等价性:对指标变量的回归(由拟合线显示)和两种均值的比较(由两条虚线之间的差异显示)。在这个没有其他预测变量的简单设置中,最小二乘线将穿过点(0, y ˉ 0 \bar{y}_0 yˉ0 )和(1, y ˉ 1 \bar{y}_1 yˉ1 ),所以线的斜率就是差异 y ˉ 1 − y ˉ 0 \bar{y}_1 - \bar{y}_0 yˉ1yˉ0

在更复杂的情况下,我们可以使用指标变量来比较群体,同时调整其他预测变量。

使用模拟假数据进行所有这些操作的目的是,首先,直接验证直接比较和回归是否给出相同的答案;其次,使用一个通用工具来理解统计拟合的特性,这个工具在更复杂的情况下将继续有用。

6.参考文献说明

在本文和接下来的探讨中,我们深入探讨了线性回归的多个维度,这是一个在众多书籍中从不同专业角度广泛讨论的主题。Harrell的著作(2001年)不仅深入挖掘了回归分析的实际应用,还涉及了其背后的理论基础。对于希望在R语言环境中开始他们的回归分析之旅的读者来说,Fox的教科书(2002年)提供了一个极好的起点,尤其是关于如何有效地拟合和呈现回归模型。

当我们将视野转向政治经济学领域,特别是探究经济状况如何影响现任政党在总统选举中的得票率时,Hibbs、Rivers和Vasilatos在1982年的研究是一个重要的参考点。随后,Hibbs在2000年和2012年对这一主题进行了进一步的更新和深入研究。此外,Rosenstone(1983年)、Fair(1978年)以及Wlezien和Erikson在2004年和2005年的连续研究,为理解经济与政治投票行为之间的复杂关系提供了宝贵的视角和数据支持。

这些文献不仅为我们提供了丰富的历史数据和实证分析,而且还展示了如何将统计方法应用于解释现实世界的经济和政治现象。通过这些作品,读者可以更深入地理解线性回归模型在社会科学研究中的应用,并掌握如何通过这些技术来揭示和预测社会行为模式。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于SpringBoot的篮球竞赛预约平台

你好&#xff0c;我是计算机学姐码农小野&#xff01;如果你对篮球竞赛预约平台感兴趣或有相关需求&#xff0c;欢迎私信联系我。 开发语言&#xff1a; Java 数据库&#xff1a; MySQL 技术&#xff1a; SpringBootMySql 工具&#xff1a; MyEclipse、Tomcat 系统展示…

ros2_control diff_drive_controller

系列文章目录 前言 一、轮式移动机器人运动学 本页介绍不同轮式移动机器人的运动学。如需进一步参考&#xff0c;请参阅 Siciliano et.al - Robotics&#xff1a; 建模、规划和控制》和 Kevin M. Lynch and Frank C. Park - Modern Robotics&#xff1a; 机械、规划和控制》。 …

什么是网络抓取|常见用例和问题

你可能听说过数据被称为现代信息社会的新石油。由于线上信息量庞大&#xff0c;能够有效地收集和分析网页数据已经成为企业、研究人员和开发人员的关键技能。这就是网页抓取技术的用武之地。网页抓取&#xff0c;也称为网页数据提取&#xff0c;是一种强大的技术&#xff0c;能…

配置jupyter时出现问题?怎么办?

在自己创建的虚拟环境&#xff08;nmjpytorch&#xff09;安装完jupyter&#xff0c;没有跳转到链接&#xff0c;问题如图&#xff1a; 解决方法&#xff1a; 1、查看自己的tornado版本为5.1.1&#xff0c;坑太高了&#xff0c;降低版本为4.5.3 2、卸载tornado-5.1.1 3、安装t…

哪些场景下可以更好地使用行列视(RCV)报表工具呢?

行列视产品是我们公司自主研发的一套基于HTML5技术的Excel式web生产报表应用系统&#xff0c;这款产品定位于发电企业生产指标的收集、报表制作和指标报表可视化&#xff0c;是国内首套专业化、自助化、智能化的生产指标管理及分析应用平台。功能强大但是却简单易用。 这款产品…

正确使用Pytorch Geometric打开Cora(Planetoid)数据集

文章目录 关于报错&#xff08;"Cannot connect to host"&#xff09;解决方法 关于报错&#xff08;“Cannot connect to host”&#xff09; 我们在使用PyG调用Planetoid数据集的时候&#xff0c;常会碰到如下报错&#xff1a; 解决方法就是手动下载这个数据集。…

电商价格监测:品牌控价的基石

品牌进行控价的前提是要对电商数据进行高效且准确的监测&#xff0c;倘若数据不准确或者覆盖率欠佳&#xff0c;就会致使控价方向出现偏差。力维网络始终秉持的数据驱动服务原则&#xff0c;唯有做好电商价格监测&#xff0c;提供高准确率的低价数据&#xff0c;方能为品牌控价…

Spring解耦合分析和总结

在我们的日常开发中&#xff0c;创建对象的操作随处可见以至于对其十分熟悉的同时又感觉十分繁琐&#xff0c;每次需要对象都需要亲手将其new出来&#xff0c;甚至某些情况下由于坏编程习惯还会造成对象无法被回收&#xff0c;这是相当糟糕的。但更为严重的是&#xff0c;我们一…

【Python】九种数据类型详讲(内含常见常见的字符串函数汇总)

个人主页&#xff1a;【&#x1f60a;个人主页】 系列专栏&#xff1a;【❤️Python】 文章目录 前言Number&#xff08;数字&#xff09;整数类型int &#xff08;整型&#xff0c;长整型&#xff09;float&#xff08;浮点型&#xff09;complex&#xff08;复数&#xff09;…

基于 Transformers库的ResNet扩展

构建自定义模型&#xff1a;基于&#x1f917; Transformers库的ResNet扩展 引言 在自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;&#x1f917; Transformers库已经成为了一个不可或缺的工具&#xff0c;它提供了大量的预训练模型和灵活的API&#xff0c;极大地…

用flutter实现五种寻路算法的可视化效果,快来看看!

前言 半年前我写了一篇《十几种排序算法的可视化效果&#xff0c;快来看看&#xff01;&#x1f440;》&#xff0c;还是很有意思的。这篇文章中的内容还被张风捷特烈张老师收录进了FlutterUnit&#xff1a;《FlutterUnit 周边 | 收录排序算法可视化》。今天让我们再来做一个有…

Postman保存API返回的token以全局使用的整个流程

1、 调通获取token的接口&#xff0c;包含传递参数的类型&#xff0c;和输入密码是否需要md5加密&#xff0c;根据接口的要求&#xff0c;传入数据 2、 查看接口响应的报文&#xff0c;可以看到token的有效时间&#xff0c;token的类型&#xff0c;里面的access_token就是想要获…

【密码学】RSA公钥加密算法

文章目录 RSA定义RSA加密与解密加密解密 生成密钥对一个例子密钥对生成加密解密 对RSA的攻击通过密文来求得明文通过暴力破解来找出D通过E和N求出D对N进行质因数分解通过推测p和q进行攻击 中间人攻击 一些思考公钥密码比对称密码的机密性更高&#xff1f;对称密码会消失&#x…

【Java自动化测试框架--TestNG】

目录 一、 背景介绍 二、核心概念与联系 2.1 JUnit核心概念 2.2 TestNG核心概念 2.3 JUnit与TestNG的联系 三. 核心算法原理的详细讲解 3.1 JUnit算法原理 3.2 TestNG算法原理 四、什么是TestNG 五、 TestNG配置 2.1 Maven项目的结构: 2.2 POM文件中配置: 2.3 Tes…

【C++】相机标定源码笔记- 立体视觉相机的校准和图像矫正类

类主要用于双目相机的标定和矫正。它包含了读取和保存相机模型、计算标定参数以及矫正图像的功能。通过这些功能&#xff0c;可以实现双目相机的标定和矫正&#xff0c;从而提高双目相机的精度和稳定性。 公有函数&#xff1a; 构造函数、带参构造函数、析构函数、读取双目相机…

【C】Structure

参考摘抄学习来自&#xff1a; C 结构体C语言必学知识点 "结构体"详细解析&#xff01;C 语言之结构体最全面总结C typedef 文章目录 1 定义2 初始化3 结构体大小的计算4 访问结构成员5 结构作为函数参数6 指向结构的指针7 结构体数组8 动态申请结构体 1 定义 它允…

GPT-4o还没完全开放,Moshi就提前开源了

GPT-4o已经发布有段时间了&#xff0c;但大众迟迟没有等到成型的产品出来&#xff0c;这会的功夫&#xff0c;法国创业团队抢先OpenAI发布端到端实时音频模型——Moshi。单从响应时效上&#xff0c;体验下来应该比GPT-4o还要快&#xff0c;但是音色及语言多样性的支持上&#x…

从资金管理的角度 谈谈伦敦金投资技巧

刚进入伦敦金市场的时候&#xff0c;笔者认为技术分析是很重要的&#xff0c;所以将学习伦敦金投资技巧的精力全部投入到技术分析的学习中。经过一系列交易的亏损&#xff0c;笔者才发现&#xff0c;其实交易管理才是最重要的。如果管理得好&#xff0c;30%的胜率&#xff0c;投…

mysql修改字符集为UTF-8

启动 mysql 服务 systemctl start mysqld 登录 mysql mysql -uroot -p 查询 mysql 字符集 ## 在 mysql 命令行下查询 mysql 状态 mysql>status; 退出 mysql 并关闭 mysql ## 退出 mysql mysql>exit; ## 关闭 mysql systemctl stop mysqld 编辑 my.cnf 配置文…

数学建模----滑翔伞伞翼面积的设计及运动状态描述

摘要 滑翔伞作为一项融合了挑战、冒险和刺激于一体的运动&#xff0c;近年来在全球范围内受到了广泛的关注。滑翔伞在救援、探险、体育、娱乐、环保和交通等领域的应用展现了其重要价值。然而&#xff0c;中国在滑翔伞领域尚未取得突破&#xff0c;缺乏全球影响力和竞争力。因此…