当前位置: 首页 > news >正文

【深度学习】图形模型基础(5):线性回归模型第一部分:认识线性回归模型

1. 回归模型定义

最简单的回归模型是具有单一预测变量的线性模型,其基本形式如下:

y = a + b x + ϵ y = a + bx + \epsilon y=a+bx+ϵ

其中, a a a b b b 被称为模型的系数或更一般地,模型的参数。 ϵ \epsilon ϵ 代表误差项,即模型未能解释的变异性。

简单的线性模型可以通过多种方式进行扩展,以适应更复杂的数据结构和关系,包括但不限于以下几种:

  • 包含额外的预测变量
    当模型中包含多个预测变量时,其形式变为:

y = β 0 + β 1 x 1 + β 2 x 2 + ⋯ + β k x k + ϵ y = \beta_0 + \beta_1 x_1 + \beta_2 x_2 + \cdots + \beta_k x_k + \epsilon y=β0+β1x1+β2x2++βkxk+ϵ

这可以进一步以向量-矩阵表示法写为:

y = X β + ϵ \mathbf{y} = \mathbf{X} \mathbf{\beta} + \mathbf{\epsilon} y=Xβ+ϵ

其中, y \mathbf{y} y 是因变量向量, X \mathbf{X} X 是设计矩阵(包含所有预测变量和常数项), β \mathbf{\beta} β 是系数向量, ϵ \mathbf{\epsilon} ϵ 是误差向量。

  • 非线性模型
    当预测变量与因变量之间的关系不是线性时,可以考虑非线性模型,如对数线性模型:

log ⁡ y = α + β log ⁡ x + ϵ \log y = \alpha + \beta \log x + \epsilon logy=α+βlogx+ϵ

这种模型允许通过变换变量来探索非线性关系。

  • 非加性模型
    在某些情况下,预测变量之间可能存在交互作用,此时可以使用非加性模型,如包含交互项的模型:

y = β 0 + β 1 x 1 + β 2 x 2 + β 3 x 1 x 2 + ϵ y = \beta_0 + \beta_1 x_1 + \beta_2 x_2 + \beta_3 x_1 x_2 + \epsilon y=β0+β1x1+β2x2+β3x1x2+ϵ

这样的模型能够捕捉到变量间的复杂关系。

  • 广义线性模型(GLM)
    GLM 扩展了线性回归模型,使其能够处理因变量服从非正态分布的情况,如二项分布(用于逻辑回归)、泊松分布等。GLM 通过链接函数将线性预测值与因变量的期望值联系起来。

  • 非参数模型
    非参数模型不预设函数形式,而是通过数据本身来估计预测变量与因变量之间的关系。这类模型通常包含大量的参数,以允许预测值随预测变量的变化而灵活变化。

  • 多层次模型(Hierarchical Models 或 Mixed Effects Models)
    在这些模型中,回归系数可能因组或情境而异。例如,在预测不同大学学生的成绩时,可以允许每个大学的系数有所不同,以反映不同大学的特定效应。

  • 测量误差模型
    当预测变量和因变量都存在测量误差时,可以使用测量误差模型来估计底层真实量之间的关系。这类模型在处理带有不确定性的数据时特别有用,如部分依从性研究中的药物效果估计。

2 使用R和 r s t a n a r m rstanarm rstanarm拟合简单线性回归

在本节中,我们将通过R中的rstanarm包来演示如何拟合一个简单的线性回归模型到模拟的假数据上。rstanarm利用Stan的统计推断引擎来执行贝叶斯回归分析,这为我们提供了参数估计的不确定性度量。

2.1. 模拟数据集

首先,我们模拟一组包含20个数据点的假数据集,这些数据点遵循线性关系 ( y_i = a + bx_i + \epsilon_i ),其中 ( x_i ) 从1到20,截距 ( a = 0.2 ),斜率 ( b = 0.3 ),误差项 ( \epsilon_i ) 服从均值为0、标准差为0.5的正态分布。

# 加载rstanarm包
library(rstanarm)# 设置预测变量x
x <- 1:20
n <- length(x)# 设置模型参数
a <- 0.2
b <- 0.3
sigma <- 0.5# 生成响应变量y
y <- a + b * x + sigma * rnorm(n)# 将数据组合成数据框
fake <- data.frame(x, y)

2.2. 拟合线性回归模型

接下来,我们使用stan_glm函数来拟合线性回归模型。这个函数允许我们指定模型公式(在这里是y ~ x)和数据集(fake)。

# 拟合模型
fit_1 <- stan_glm(y ~ x, data = fake)# 显示拟合结果
print(fit_1, digits = 2)

输出将展示模型参数的估计值及其不确定性度量(中位数和MAD_SD,即中位数绝对偏差标准差)。

2.3. 绘制数据和拟合线

为了直观地展示数据和拟合的回归线,我们可以使用R的绘图功能。

# 绘制数据点
plot(fake$x, fake$y, main = "Data and fitted regression line", xlab = "x", ylab = "y")# 提取拟合的截距和斜率
a_hat <- coef(fit_1)[1]
b_hat <- coef(fit_1)[2]# 绘制拟合线
abline(a_hat, b_hat, col = "red")# 在图表上添加公式
x_bar <- mean(fake$x)
text(x_bar, a_hat + b_hat * x_bar, paste("y =", round(a_hat, 2), "+", round(b_hat, 2), "* x"), adj = 0)

2.4. 比较估计值与假定参数值

拟合模型后,我们可以将估计的参数值与模拟时设定的假定值进行比较。由于贝叶斯方法提供了参数的不确定性度量,我们可以观察到估计值如何围绕真实值波动。

  • 截距 ( a ) 的假定值为0.2,估计值为0.40(带有不确定性)。
  • 斜率 ( b ) 的假定值为0.3,估计值为0.28(带有不确定性)。
  • 残差标准差 ( \sigma ) 的估计值为0.49(带有不确定性)。

这些估计值在它们各自的真实值的一个或两个标准误差范围内,这是符合预期的。重要的是要注意,任何单次模拟的估计值都可能不会精确地等于真实值,但在多次重复模拟下,我们期望看到估计值能够正确地覆盖真实值。

通过这种方式,我们可以利用rstanarm包和R的强大功能来拟合线性回归模型,并深入理解模型参数的不确定性。

3. 回归系数的解释

在回归分析中,我们常常会遇到将回归系数称为“效应”的表述,但这种表述往往容易引发误解。为了更准确地理解这些系数,我们通过一个具体的例子来探讨其含义,这个例子涉及使用身高(以英寸为单位)和性别(男性=1,女性=0)来预测1816名受访者的年收入(以千美元计)。

3.1.拟合模型与结果解读

首先,我们使用rstanarm包中的stan_glm函数来拟合模型,代码如下:

# 假设earnings数据框已包含earn(年收入)和height(身高)以及male(性别)变量
earnings$earnk <- earnings$earn / 1000  # 将年收入转换为千美元
fit_2 <- stan_glm(earnk ~ height + male, data = earnings)
print(fit_2, digits = 2)

输出结果可能如下:

Median MAD_SD
(Intercept) -26.0 11.8
height      0.6   0.2
male        10.6  1.5
Auxiliary parameter(s):
Median MAD_SD
sigma 21.4 0.3

这些输出显示了模型参数的估计值及其不确定性。特别地,height的系数表明,在保持其他因素不变的情况下,身高每增加一英寸,平均预期年收入会增加600美元(因为系数是0.6,乘以1000得到千美元单位下的值)。同样,male的系数表示,在身高相同的情况下,男性的平均预期年收入比女性高10,600美元。

3.2.理解残差标准差与 R 2 R^2 R2

残差标准差 σ σ σ估计为21.4千美元,这意味着大多数(约68%)的数据点的实际年收入将位于模型预测值的±21,400美元范围内,而95%的数据点将位于±42,800美元范围内。这是基于正态分布性质的近似估计,尽管实际误差分布可能不完全符合正态分布。

通过计算 R 2 R^2 R2值(决定系数),我们可以评估模型对总方差的解释程度。 R 2 = 0.10 R^2 = 0.10 R2=0.10表示线性模型仅解释了年收入总方差的10%,这反映了年收入变化的复杂性和多因素影响性。

3.3.回归系数的正确解释

重要的是要认识到,将回归系数直接称为“效应”可能不够准确,因为它们更多地反映了样本中的平均比较关系,而非因果效应。具体来说:

  • 身高的系数:不应简单地理解为“身高对收入的效应是600美元”。更恰当的解释是,在控制性别和其他潜在影响因素后,样本中身高相差一英寸的两个个体,其平均年收入差异约为600美元。
  • 性别的系数:同样,说“性别对收入的效应是10,600美元”也是不准确的。更准确的表述是,在控制身高和其他潜在影响因素后,样本中身高相同的男性和女性,男性的平均年收入比女性高10,600美元。

回归系数是预测工具中不可或缺的一部分,但它们应该被解释为描述性的比较关系,而非直接的因果效应。在缺乏额外因果推断证据的情况下,我们应谨慎地将回归结果用于因果解释。回归分析的真正力量在于其预测和描述能力,而非直接揭示因果关系。

4 .回归的历史起源

在字典中,"回归"一词被定义为“退回到较少完善或较少发达状态的过程或实例”。然而,在统计学中,这个术语被赋予了全新的含义,这主要归功于弗朗西斯·高尔顿(Francis Galton)的开创性工作。作为最初的定量社会科学家之一,高尔顿通过拟合线性模型来探索人类身高的遗传规律。他观察到,在预测孩子的身高时,基于父母的身高,高个子父母的孩子的身高虽然高于平均水平,但往往比他们的父母矮;相反,矮个子父母的孩子的身高则倾向于比平均水平矮,但高于他们的父母。这一现象在统计术语中被形象地称为“回归”到平均值或均值。

4.1.女儿身高“回归”到平均值

为了更具体地说明这一点,我们可以引用卡尔·皮尔逊(Karl Pearson)和爱丽丝·李(Alice Lee)在1903年发表的一项经典身高遗传研究。图6.3a展示了母亲和女儿的身高数据,以及一条最佳拟合线(回归线),用于根据母亲的身高预测女儿的身高。这条线穿过x轴和y轴的平均值(由中心的大点表示)。

图6.3b单独展示了这条回归线,其公式为:

y = 30 + 0.54 x y = 30 + 0.54x y=30+0.54x

或者,为了强调模型并非完美拟合每一个数据点,我们可以写成:

y = 30 + 0.54 x + error y = 30 + 0.54x + \text{error} y=30+0.54x+error

(公式4.1)

接下来,我们将通过R代码来展示数据和拟合这条线,但在此之前,我们先简要讨论这条线本身。

方程 ( y = 30 + 0.54x ) 描述了一条截距为30,斜率为0.54的直线。虽然截距-斜率公式是可视化直线的简单方法,但在实际应用中可能会遇到解释上的困难。例如,截距30在这里表示一个母亲身高为0英寸时女儿的预测身高,这在现实中显然是无意义的。因此,我们更倾向于使用以数据平均值为中心的回归线表达方式。方程 ( y = 30 + 0.54x ) 可以等价地写成:

y = 63.9 + 0.54 ( x − 62.5 ) y = 63.9 + 0.54(x - 62.5) y=63.9+0.54(x62.5)

(公式4.2)

这个公式表明,当母亲的身高 $ x = 62.5$英寸(即平均身高)时,女儿的预测身高 y y y将是63.9英寸。换句话说,如果一个母亲具有平均身高,那么她的成年女儿的身高预计也将接近平均身高。进一步地,对于母亲比平均身高每高(或矮)一英寸,她的女儿预计会比她那一代的平均身高大约高(或矮)半英寸。

4.2.在R中拟合模型

方程 y = 30 + 0.54 x y = 30 + 0.54x y=30+0.54x是近似最佳拟合线的表达式,其中“最佳拟合”定义为最小化平方误差之和。即,通过某种算法找到 a a a b b b的值,使得下式最小化:

∑ i = 1 n ( y i − ( a + b x i ) ) 2 \sum_{i=1}^{n} (y_i - (a + bx_i))^2 i=1n(yi(a+bxi))2

在这里我们主要展示如何在R中得到这个解。首先,我们需要读取数据并查看前几行以确认数据内容:

heights <- read.table("Heights.txt", header=TRUE)
print(heights[1:5,])

这段代码读取名为"Heights.txt"的数据文件,并将其存储在变量heights中,然后打印出数据的前五行以便检查。

5.平均回归的悖论

现在我们已经经历了拟合和绘制预测女儿身高的回归线的步骤,我们可以回到身高“回归到平均值”的问题上。
当以某种方式看待时,图6.3中的回归斜率为0.54——实际上,任何不等于1的斜率——似乎都是悖论。如果高个子母亲很可能有只是相对较高的女儿,而矮个子母亲很可能有相对矮的女儿,这难道不是意味着女儿会比她们的母亲更接近平均水平,如果这种情况持续下去,每一代都会比上一代更接近平均水平,直到几代之后,每个人都几乎有平均身高吗?例如,比平均水平高出8英寸的母亲预计会有一个比平均水平高出4英寸的女儿,而她的女儿预计只会比平均水平高出2英寸,以此类推。

但显然这不是正在发生的事情。我们已经在皮尔逊和李之后几代了,女性的身高仍然和以前一样多变。
解决这个表面上的悖论的方法是,是的,与母亲的身高相比,女性的预测身高更接近平均水平,但实际身高与有误差的预测不是一回事;回想一下公式(6.1)。点预测回归到平均值——这就是系数小于1——这减少了变异。同时,模型中的误差——预测的不完美——增加了变异,足以保持身高的总变异从一代到下一代大致恒定。
因此,平均回归总会以某种形式出现在一些预测不完美的稳定环境中。预测的不完美引入了变异,而点预测的回归是必要的,以保持总变异恒定。

平均回归的误区可能会混淆人们对因果推断的理解;使用假数据演示
平均回归可能会令人困惑,并且已经导致人们错误地归因于因果关系。为了看看这是如何发生的,我们从父母和孩子身高的问题转向数学上等价的情景,即参加两次考试的学生。
图6.5显示了一个假设的数据集,包含1000名学生期中考试和期末考试的分数。
我们没有使用真实数据,而是使用以下简单的过程模拟考试分数,代表信号和噪声:

  1. 假设每个学生都有一个真实的能力,来自平均值为50,标准差为10的分布。
  2. 每个学生期中考试的分数是两个组成部分的总和:学生的真实能力,以及平均值为0,标准差为10的随机组成部分,反映了任何给定测试的表现将是不可预测的:期中考试远非完美的测量工具。
  3. 同样,每个学生期末考试的分数是他或她的真实能力,加上另一个独立的随机组成部分。

以下是我们模拟假数据的代码:

n <- 1000
true_ability <- rnorm(n, 50, 10)
noise_1 <- rnorm(n, 0, 10)
noise_2 <- rnorm(n, 0, 10)
midterm <- true_ability + noise_1
final <- true_ability + noise_2
exams <- data.frame(midterm, final)

然后我们绘制数据和拟合的回归线:

fit_1 <- stan_glm(final ~ midterm, data=exams)
plot(midterm, final, xlab="Midterm exam score", ylab="Final exam score")
abline(coef(fit_1))

这是回归输出:

Median MAD_SD
(Intercept) 24.8 1.4
midterm 0.5 0.0
Auxiliary parameter(s):
Median MAD_SD
sigma 11.6 0.3

估计的斜率是0.5(也见图6.5),由于小于1,是平均回归的一个例子:期中考试得分高的学生往往在期末考试上只比平均水平高出大约一半;期中考试得分低的学生得分低,但通常不会像平均水平那样低。例如,在图6.5的最左边,有两名学生期中考试得了0分,期末考试得了33分和42分;在图表的最右边,有三名学生期中考试得了91分,期末考试在61到75之间。

人们可能会很自然地这样解释,说期中考试得分好的学生有能力,但之后他们往往会变得过于自信和松懈;因此,他们通常在期末考试上表现不佳。从另一个方向看,吸引人的因果故事是期中考试得分低的学生受到激励,更加努力,所以当期末考试来临时,他们的表现有所提高。
实际上,数据是从没有包含任何激励效应的理论模型中模拟出来的;期中考试和期末考试都是真实能力加上随机噪声的函数。我们知道这一点,因为我们创建了模拟!

平均回归的模式——即图6.5中的线斜率小于1——是第一次和第二次观察之间变化的结果:期中考试得分非常好的学生可能有一定的运气,并且有高水平的技能,所以在期末考试中,学生表现得比平均水平好但不如期中考试是有意义的。

关键是,对图6.5中数据的简单解释可能会导致你推断出一个完全虚假的效果(得分好的学生在期末考试上懒惰;得分差的学生更努力学习)。这个错误被称为“回归谬误”。

心理学家Amos Tversky和Daniel Kahneman在1973年报告了一个著名的现实世界例子:
飞行学校的教练采纳了心理学家推荐的一贯积极强化政策。他们口头强化每次成功执行飞行机动。在采用这种训练方法的一些经验之后,教练声称,与心理学教条相反,对复杂机动执行得好的高赞扬通常会导致下一次尝试时表现下降。实际上,他们解释说:
由于表现不是完全可靠的,而且连续机动之间的进步是缓慢的,因此回归在飞行机动中是不可避免的。因此,在一个试验中表现出色的飞行员很可能在下一次试验中表现下降,无论教练对最初的成功有何反应。经验丰富的飞行教练实际上发现了回归,但将其归因于积极强化的有害效果。这个真实的故事揭示了人类状况的一个令人难过的方面。我们通常在别人表现好时给予强化,而在他们表现不好时惩罚他们。因此,仅仅通过回归,他们最有可能在受到惩罚后改善,在受到奖励后恶化。因此,我们暴露在一生中的安排中,最常因为惩罚他人而受到奖励,因为奖励他人而受到惩罚。

这个故事的要点是,对预测的定量理解澄清了关于变异和因果关系的基本概念混淆。从纯粹的数学考虑来看,预期最好的飞行员将相对其他人排名下降,而最差的将提高他们的排名,就像我们期望高个子母亲的女儿平均上高,但不如她们的母亲那么高,等等。

“平均回归”与书中更大主题的关系
上述回归谬误是误解比较的一个特例。
关键思想是,对于因果推断,你应该比较类似的事物。
我们可以将这个想法应用到平均回归的例子中。在考试成绩问题中,因果主张是期中考试成绩不佳激励学生为期末考试努力学习,而期中考试成绩好的学生更有可能放松。在这个比较中,结果y是期末考试成绩,预测变量x是期中考试成绩。显著的结果是,比较x上相差1个单位的学生,他们在y上的预期差异只有1/2个单位。

这为什么引人注目?因为它与斜率为1的比较。回归表和图6.5中显示的观察模式正在与一个隐含的默认模型进行比较,即期中考试和期末考试成绩相同。但这两种模型之间的比较是不恰当的,因为默认模型是不正确的——实际上,没有任何理由怀疑在没有任何激励干预的情况下,期中考试和期末考试成绩会是相同的。

我们的观点不是有一个简单的分析可以让我们在这个设置中进行因果推断。相反,我们正在演示平均回归,与一个隐含的(但经过反思,不恰当的)模型进行比较,可能会导致错误的因果推断。

同样,在飞行学校的例子中,正在与一个隐含的模型进行比较,在该模型中,没有积极或消极的强化,个人表现将保持不变。但这样的模型在试验与试验之间真实变化的背景下是不恰当的。

6. 参考文献说明

对于身高与收入关联的案例研究,可进一步参阅Ross在1990年的著作,以及第12章所附的参考文献综述。图6.3展示的母亲与女儿身高数据最早由Pearson和Lee于1903年收集;对于此案例的深入分析,也可参见Wachsmuth、Wilkinson和Dallal在2003年的研究,以及Pagano和Anokey在2013年的贡献。将回归系数理解为一种比较手段,这与Efron在1982年提出的四大基本统计操作紧密相关。
关于平均回归的历史脉络,Stigler在1986年的作品中有所阐释,他还在1983年的论文中讨论了这一概念与其他统计学思想的联系。Lord在1967年和1969年的著作中分析了平均回归如何可能引起对因果关系的误解。而飞行学员训练的故事,最早是由Kahneman和Tversky在1973年的论文中提出。

相关文章:

【深度学习】图形模型基础(5):线性回归模型第一部分:认识线性回归模型

1. 回归模型定义 最简单的回归模型是具有单一预测变量的线性模型&#xff0c;其基本形式如下&#xff1a; y a b x ϵ y a bx \epsilon yabxϵ 其中&#xff0c; a a a 和 b b b 被称为模型的系数或更一般地&#xff0c;模型的参数。 ϵ \epsilon ϵ 代表误差项&#…...

2024 年第十四届 APMCM 亚太地区大学生数学建模竞赛B题超详细解题思路+数据预处理问题一代码分享

B题 洪水灾害的数据分析与预测 亚太中文赛事本次报名队伍约3000队&#xff0c;竞赛规模体量大致相当于2024年认证杯&#xff0c;1/3个妈杯&#xff0c;1/10个国赛。赛题难度大致相当于0.6个国赛&#xff0c;0.8个妈杯。该比例仅供大家参考。 本次竞赛赛题难度A:B:C3:1:4&…...

Yarn有哪些功能特点

Yarn是一个由Facebook团队开发&#xff0c;并联合Google、Exponent和Tilde等公司推出的JavaScript包管理工具&#xff0c;旨在提供更优的包管理体验&#xff0c;解决npm&#xff08;Node Package Manager&#xff09;的一些痛点。Yarn的功能特点主要包括以下几个方面&#xff1…...

深度学习算法bert

bert 属于自监督学习的一种&#xff08;输入x的部分作为label&#xff09; 1. bert是 transformer 中的 encoder &#xff0c;不同的bert在encoder层数、注意力头数、隐藏单元数不同 2. 假设我们有一个模型 m &#xff0c;首先我们为某种任务使用大规模的语料库预训练模型 m …...

PyTorch - 神经网络基础

神经网络的主要原理包括一组基本元素&#xff0c;即人工神经元或感知器。它包括几个基本输入&#xff0c;例如 x1、x2… xn &#xff0c;如果总和大于激活电位&#xff0c;则会产生二进制输出。 样本神经元的示意图如下所述。 产生的输出可以被认为是具有激活电位或偏差的加权…...

docker-compose搭建minio对象存储服务器

docker-compose搭建minio对象存储服务器 最近想使用oss对象存储进行用户图片上传的管理&#xff0c;了解了一下例如aliyun或者腾讯云的oss对象存储服务&#xff0c;但是呢涉及到对象存储以及经费有限的缘故&#xff0c;决定自己手动搭建一个oss对象存储服务器&#xff1b; 首先…...

vue3使用pinia中的actions,需要调用接口的话

actions&#xff0c;需要调用接口的话&#xff0c;假如页面想要调用actions中的方法获取数据&#xff0c; 必须使用try catch async await 进行包裹&#xff0c;详情看下面代码 import {defineStore} from pinia import {reqCode,reqUserLogin} from ../../api/hospital/i…...

Python酷库之旅-第三方库Pandas(003)

目录 一、用法精讲 4、pandas.read_csv函数 4-1、语法 4-2、参数 4-3、功能 4-4、返回值 4-5、说明 4-6、用法 4-6-1、创建csv文件 4-6-2、代码示例 4-6-3、结果输出 二、推荐阅读 1、Python筑基之旅 2、Python函数之旅 3、Python算法之旅 4、Python魔法之旅 …...

社交电商中的裂变营销利器,二级分销模式,美妆家具成功案例分享

二级分销返佣模式是一种帮助商家迅速扩大市场覆盖的有效营销策略&#xff0c;不仅能降低营销成本&#xff0c;还能提升品牌知名度。下面通过两个具体的案例来说明这种模式的好处和优势。 某知名美妆品牌在市场竞争日益激烈的情况下&#xff0c;决定采用二级分销返佣模式进行市场…...

【国产开源可视化引擎Meta2d.js】图层

独立图层 每个图元都有先后绘画顺序&#xff0c;即每个图元拥有一个独立图层&#xff0c;即meta2d.data().pens的数组索引。 可以通过meta2d.top/bottom/up/down等函数改变独立图层顺序。 分组图层 通过标签可以标识一个分组图层&#xff0c;通过meta2d.find(图层标签)获取…...

基于Redisson实现分布式锁

基于redisson实现分布式锁 之前背过分布式锁几种实现方案的八股文&#xff0c;但是并没有真正自己实操过。现在对AOP有了更深一点的理解&#xff0c;就自己来实现一遍。 1、分布式锁的基础知识 分布式锁是相对于普通的锁的。普通的锁在具体的方法层面去锁&#xff0c;单体应…...

Android Studio下载Gradle特别慢,甚至超时,失败。。。解决方法

使用Android studio下载或更新gradle时超级慢怎么办&#xff1f; 切换服务器&#xff0c;立马解决。打开gradle配置文件 修改服务器路径 distributionUrlhttps\://mirrors.cloud.tencent.com/gradle/gradle-7.3.3-bin.zip 最后&#xff0c;同步&#xff0c;下载&#xff0c;速…...

leetcode--二叉树中的最长交错路径

leetcode地址&#xff1a;二叉树中的最长交错路径 给你一棵以 root 为根的二叉树&#xff0c;二叉树中的交错路径定义如下&#xff1a; 选择二叉树中 任意 节点和一个方向&#xff08;左或者右&#xff09;。 如果前进方向为右&#xff0c;那么移动到当前节点的的右子节点&…...

c++ primer plus 第15章友,异常和其他:15.1.3 其他友元关系

c primer plus 第15章友&#xff0c;异常和其他&#xff1a;15.1.3 其他友元关系 提示&#xff1a;这里可以添加系列文章的所有文章的目录&#xff0c;目录需要自己手动添加 15.1.3 其他友元关系 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可…...

uniapp+vue3页面跳转和传参

页面跳转&#xff1a; uni.navigateTo({url: /pages/index}) 返回上一层&#xff1a; uni.navigateBack ({delta: 1 }) 页面跳转时传参&#xff1a; 跳转前的页面&#xff1a; uni.navigateTo({url: "/pages/index?id123"}) 跳转后的页面&#xff1a; onLoa…...

硬链接和软链接

在Linux系统中&#xff0c;链接&#xff08;Link&#xff09;是一种特殊的文件&#xff0c;它指向另一个文件或目录。链接分为两种类型&#xff1a;硬链接&#xff08;Hard Link&#xff09;和软链接&#xff08;也称为符号链接&#xff0c;Symbolic Link&#xff09;。 1. 硬…...

属性描述符初探——Vue实现数据劫持的基础

目录 属性描述符——Vue实现数据劫持的基础 一、属性描述符是什么&#xff1f; ​编辑 1.1、属性描述符示例 1.2、用属性描述符定义属性及获取对象的属性描述符 1.3、带有读取器和设置器的属性描述符 二、使用属性描述符的情景 2.1、封装和数据隐藏 使用getter和setter…...

字节也没余粮了?天底下没有永远免费的GPT-4;AI产品用订阅制就不合理!让用户掏钱的N种定价技巧嘿嘿 | ShowMeAI日报

&#x1f440;日报&周刊合集 | &#x1f3a1;ShowMeAI官网 | &#x1f9e1; 点赞关注评论拜托啦&#xff01; 1. 当 Coze 也开始收费&#xff1a;天底下没有「永远」免费的 GPT-4 注&#xff1a;这里 Coze 指海外版。国内版 扣子 还是免费。 Coze (海外版) 官网链接 → htt…...

【Matlab 路径优化】基于蚁群算法的XX市旅游景点线路优化系统

基于蚁群算法的XX市旅游景点线路优化系统 &#xff08;一&#xff09;客户需求&#xff1a; ①考虑旅游景点的空间分布、游客偏好等因素&#xff0c;实现了旅游线路的智能规划 ②游客选择一景点出发经过所要游览的所有景点只一次&#xff0c;最后回到出发点的前提下&#xf…...

我关于Excel使用点滴的笔记

本篇笔记是我关于Excel使用点滴的学习笔记&#xff0c;摘要和地址链接列表。临时暂挂&#xff0c;后面可能在不需要时删除。 (笔记模板由python脚本于2024年06月28日 12:23:32创建&#xff0c;本篇笔记适合初通Python&#xff0c;熟悉六大基本数据(str字符串、int整型、float浮…...

【Java安装】windows10+JDK21+IDEA

文章目录 一、JDK安装1. 下载完成后按照自己需要的位置安装2. 配置环境变量2.1 JAVA_HOME变量2.2 PATH配置 3. 验证4. helloworld 二、IDEA安装三、IDEA-HelloWorld 一、JDK安装 JDK安装链接 1. 下载完成后按照自己需要的位置安装 2. 配置环境变量 2.1 JAVA_HOME变量 安装…...

《简历宝典》01 - 一文带你学会如何写一份糟糕透顶的简历

我们每个人几乎都会面对找工作这件事&#xff0c;而找工作或者说求职首先就是要写一份简历。今天狗哥将以一个不同的视角带你写一份无与伦比&#xff0c;糟糕透顶的求职简历&#xff0c;说实话&#xff0c;其实几年前&#xff0c;我就是这么写的。 目录 1. 文件名 2. 基本信…...

多链路聚合通信路由在应急救援活动中的重要性及解决方案

在应急救援指挥活动中&#xff0c;多链路聚合通信设备如同一座坚固的桥梁&#xff0c;将信息快速、准确地传递至每一个角落。面对复杂多变的救援现场&#xff0c;这类设备展现了其卓越的适应性和稳定性。 想象一下&#xff0c;当灾害突然降临&#xff0c;信息的传递变得至关重…...

PyCharm中如何将某个文件设置为默认运行文件

之前在使用JetBrain公司的另一款软件IDEA的时候&#xff0c;如果在选中static main函数后按键altenter可以默认以后运行Main类的main函数。最近在使用PyCharm学习Python&#xff0c;既然同为一家公司的产品而且二者的风格如此之像&#xff0c;所以我怀疑PyCharm中肯定也有类似的…...

【杂交版】植物大战僵尸杂交版v2.1最新版本下载链接

B站游戏作者潜艇伟伟迷于6月13日中午更新了植物大战僵尸杂交版2.1版本&#xff0c;有老版本的也可以完美继承存档数据。 不多废话下载链接放上&#xff1a; 夸克网盘链接&#xff1a;https://pan.quark.cn/s/095de551d1d1 UC网盘链接&#xff1a;https://drive.uc.cn/s/86debb3…...

图像增强及运算篇之图像掩膜直方图和HS直方图

一.图像掩膜直方图 如果要统计图像的某一部分直方图&#xff0c;就需要使用掩码&#xff08;蒙板&#xff09;来进行计算。假设将要统计的部分设置为白色&#xff0c;其余部分设置为黑色&#xff0c;然后使用该掩膜进行直方图绘制&#xff0c;其完整代码如下所示。 # -*- codi…...

Python商务数据分析知识专栏(六)——Python数据分析的应用④Python数据分析实训

Python商务数据分析知识专栏&#xff08;六&#xff09;——Python数据分析的应用④Python数据分析实训 Python数据分析实训一.iris数据处理实训1.1 拓展学习资料&Python环境介绍1.2 读取数据&修改列名称1.3 以PythonConsole方式执行代码1.4 缺失值处理1.5 重置索引 二…...

【Python机器学习】处理文本数据——将文本数据表示为词袋

用于机器学习的文本有一种最简单的方法&#xff0c;也是最有效且最常用的方法&#xff0c;就是使用词袋表示。使用这种表示方法时&#xff0c;我们舍弃了输入文本中的大部分结构&#xff0c;比如章节、段落、句子和格式&#xff0c;只计算语料库中&#xff0c;只计算语料库中每…...

论文写作全攻略:Kimi辅助下的高效学术写作技巧

学境思源&#xff0c;一键生成论文初稿&#xff1a; AcademicIdeas - 学境思源AI论文写作 完成论文写作是一个多阶段的过程&#xff0c;涉及到不同的任务和技能。以下是按不同分类总结的向Kimi提问的prompt&#xff0c;以帮助你在论文写作过程中取得成功&#xff1a; 1. 选题与…...

通证经济重塑经济格局

在数字化转型的全球浪潮中&#xff0c;通证经济模式犹如一股新兴力量&#xff0c;以其独特的价值传递与共享机制&#xff0c;重塑着经济格局&#xff0c;引领我们步入数字经济的新纪元。 通证&#xff0c;作为这一模式的核心&#xff0c;不仅是权利与权益的数字化凭证&#xf…...

linux - cp 命令

问&#xff1a;cp -r ./src/. ./dst 与 cp -r ./src/* ./dst 有什么区别? 1.隐藏文件和目录&#xff1a;cp -r ./src/* ./dst 不会复制隐藏文件和目录。cp -r ./src/. ./dst 会复制所有文件和目录&#xff0c;包括隐藏文件和目录。 2.通配符和当前目录&#xff1a;* 是一个通…...

基于Qt实现的PDF阅读、编辑工具

记录一下实现pdf工具功能 语言&#xff1a;c、qt IDE&#xff1a;vs2017 环境&#xff1a;win10 一、功能演示&#xff1a; 二、功能介绍&#xff1a; 1.基于saribbon主体界面框架&#xff0c;该框架主要是为了实现类似word导航项 2.加载PDF放大缩小以及预览功能 3.pdf页面跳转…...

Linux 内核 GPIO 用户空间接口

文章目录 Linux 内核 GPIO 接口旧版本方式&#xff1a;sysfs 接口新版本方式&#xff1a;chardev 接口 gpiod 库及其命令行gpiod 库的命令行gpiod 库函数的应用 GPIO&#xff08;General Purpose Input/Output&#xff0c;通用输入/输出接口&#xff09;&#xff0c;是微控制器…...

Hive数据倾斜--处理方法

1. 什么是数据倾斜&#xff1f; 在分布式计算场景下&#xff0c;大量的数据集中在某一个节点而导致一个任务的执行时间变长。而大量的节点只处理了小部分的数据&#xff0c;大数据组件处理海量数据的特点就是不患多&#xff0c;而患不均。 2. 怎么发现任务出现了数据倾斜现象 …...

k8s流控平台apiserver详解

一、简单理解认识apiserver 1.主要功能 认证 鉴权 准入 mutating validating admission 限流 2.概念 apiserver保护etcd&#xff0c;缓存机制&#xff0c;有缓存直接返回&#xff0c;没缓存再去查看etcd,apiserver是担任和其他平台同信并认证 3.访问控制概览…...

unity对于文件夹的操作

1、获取目标文件夹内所有文件夹 string[] directories Directory.GetDirectories(Path);for (int i 0; i < directories.Length; i){print(directories[i]);}2、获取目标文件夹内指定文件 public List<string> GetAllTxt(string path){//只获取文件名string[] files…...

[Redis]哨兵机制

哨兵机制概念 在传统主从复制机制中&#xff0c;会存在一些问题&#xff1a; 1. 主节点发生故障时&#xff0c;进行主备切换的过程是复杂的&#xff0c;需要人工参与&#xff0c;导致故障恢复时间无法保障。 2. 主节点可以将读压力分散出去&#xff0c;但写压力/存储压力是无法…...

Vue3--Watch、Watcheffect、Computed的使用和区别

Vue3–Watch、Watcheffect、Computed的使用和区别 一、watch 1.功能 watch 用于监听响应式数据的变化&#xff0c;并在数据变化时执行特定的回调函数。适合在响应式数据变化时执行异步操作或复杂逻辑。 2.主要特点 指定数据监听&#xff1a;可以精确地监听一个或多个响应式…...

hive调优原理详解:案例解析参数配置(第17天)

系列文章目录 一、Hive常问面试函数&#xff08;掌握&#xff09; 二、Hive调优如何配置&#xff08;重点&#xff09; 文章目录 系列文章目录前言一、Hive函数&#xff08;掌握&#xff09;11、JSON数据处理12、炸裂函数13、高频面试题13.1 行转列13.2 列转行 14、开窗函数&a…...

华为机试HJ15求int型正整数在内存中存储时1的个数

华为机试HJ15求int型正整数在内存中存储时1的个数 题目&#xff1a; 输入一个 int 型的正整数&#xff0c;计算出该 int 型数据在内存中存储时 1 的个数。 数据范围&#xff1a;保证在 32 位整型数字范围内 想法&#xff1a; 将输入的十进制数转为二进制&#xff0c;遍历记…...

NLP - Softmax与层次Softmax对比

Softmax Softmax是神经网络中常用的一种激活函数&#xff0c;用于多分类任务。Softmax函数将未归一化的logits转换为概率分布。公式如下&#xff1a; P ( y i ) e z i ∑ j 1 N e z j P(y_i) \frac{e^{z_i}}{\sum_{j1}^{N} e^{z_j}} P(yi​)∑j1N​ezj​ezi​​ 其中&#…...

HttpServer内存马

HttpServer内存马 基础知识 一些基础的方法和类 HttpServer&#xff1a;HttpServer主要是通过带参的create方法来创建&#xff0c;第一个参数InetSocketAddress表示绑定的ip地址和端口号。第二个参数为int类型&#xff0c;表示允许排队的最大TCP连接数&#xff0c;如果该值小…...

51单片机-让一个LED灯闪烁、流水灯(涉及:自定义单片机的延迟时间)

目录 设置单片机的延迟&#xff08;睡眠&#xff09;函数查看单片机的时钟频率设置系统频率、定时长度、指令集 完整代码生成HEX文件下载HEX文件到单片机流水灯代码 (自定义延迟时间) 设置单片机的延迟&#xff08;睡眠&#xff09;函数 查看单片机的时钟频率 检测前单片机必…...

MYSQL原理、设计与应用

概述 数据库(Database&#xff0c;DB)是按照数据结构来组织、存储和管理数据的仓库&#xff0c;其本身可被看作电子化的文件柜&#xff0c;用户可以对文件中的数据进行增删改查等操作。 数据库系统是指在计算机系统中引入数据库后的系统&#xff0c;除了数据库&#xff0c;还…...

flask项目部署总结

这个部署的时候要用虚拟环境&#xff0c;cd进项目文件夹 python3 -m venv myenv source myenv/bin/activate激活 之后就安装一些库包之类的&#xff0c;&#xff08;flask&#xff0c;requests,bs4,等等&#xff09; 最重要的是要写.flaskenv文件并且pip install 一个能运行…...

【总线】AXI4第八课时:介绍AXI的 “原子访问“ :独占访问(Exclusive Access)和锁定访问(Locked Access)

大家好,欢迎来到今天的总线学习时间!如果你对电子设计、特别是FPGA和SoC设计感兴趣&#xff0c;那你绝对不能错过我们今天的主角——AXI4总线。作为ARM公司AMBA总线家族中的佼佼者&#xff0c;AXI4以其高性能和高度可扩展性&#xff0c;成为了现代电子系统中不可或缺的通信桥梁…...

Java面试八股之MYISAM和INNODB有哪些不同

MYISAM和INNODB有哪些不同 MyISAM和InnoDB是MySQL数据库中两种不同的存储引擎&#xff0c;它们在设计哲学、功能特性和性能表现上存在显著差异。以下是一些关键的不同点&#xff1a; 事务支持&#xff1a; MyISAM 不支持事务&#xff0c;没有回滚或崩溃恢复的能力。 InnoDB…...

大数据面试题之数据库(2)

数据库中存储引擎MvlSAM与InnoDB的区别 Mylsam适用于什么场景? InnoDB和Mvlsam针对读写场景? MySQL Innodb实现了哪个隔离级别? InnoDB数据引擎的特点 InnoDB用什么索引 Hash索引缺点 数据库索引的类型&#xff0c;各有什么优缺点? MySQL的索引有哪些?索引…...

1421-04SF 同轴连接器

型号简介 1421-04SF是Southwest Microwave的2.4 mm 同轴连接器。这款连接器外壳和耦合螺母: 不锈钢 CRES 合金 UNS-S30300, 按照 ASTM A582 标准制造&#xff0c;并按照 ASTM A967-99 标准进行钝化处理。金镀层可以提供更低的接触电阻和更好的耐腐蚀性。 型号特点 50 欧姆密封…...

第一节-k8s架构图

一个Deployment&#xff0c;可以由多个不同Node下的Pod组成&#xff0c;每个Pod又由多个Container组成。 区分Deployment是用Labels(key:value)&#xff0c;区分Pod是用PodName&#xff0c;区分Container是用ContainerName。 一个Node可以包含多个不同Deployment中的pod&…...