拓端tecdat|R语言贝叶斯线性回归和多元线性回归构建工资预测模型

本文主要是介绍拓端tecdat|R语言贝叶斯线性回归和多元线性回归构建工资预测模型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近我们被客户要求撰写关于贝叶斯线性回归的研究报告,包括一些图形和统计输出。

视频:线性回归中的贝叶斯推断与R语言预测工人工资数据案例

贝叶斯推断线性回归与R语言预测工人工资数据

,时长09:58

工资模型

在劳动经济学领域,收入和工资的研究为从性别歧视到高等教育等问题提供了见解。在本文中,我们将分析横断面工资数据,以期在实践中使用贝叶斯方法,如BIC和贝叶斯模型来构建工资的预测模型。

加载包

在本实验中,我们将使用dplyr包探索数据,并使用ggplot2包进行数据可视化。我们也可以在其中一个练习中使用MASS包来实现逐步线性回归。

我们将在实验室稍后使用此软件包中使用BAS.LM来实现贝叶斯模型。

数据

本实验室将使用的数据是在全国935名受访者中随机抽取的。

变量描述
wage周收入
hours每周平均工作时间
IQ智商得分
kww工作知识分数
educ受教育年限
exper工作经验
tenure在现任雇主工作多年
age年龄
married= 1,如果已婚
black= 1(如果为黑人)
south= 1,如果住在南部
urban= 1,如果居住在都市中
sibs兄弟姐妹数
brthord出生顺序
meduc母亲的教育程度
feduc父亲的学历
lwage工资的自然对数 

这是观察研究还是实验?

  1. 观察研究

探索数据

与任何新数据集一样,标准的探索性数据分析是一个好的开始。我们将从工资变量开始,因为它是我们模型中的因变量。

  1. 关于工资问题,下列哪种说法是错误的?
    1. 7名受访者每周收入低于300元
summary(wage)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   115.0   669.0   905.0   957.9  1160.0  3078.0

由于工资是我们的因变量,我们想探讨其他变量之间的关系作为预测。
练习:排除工资和工龄,选择另外两个你认为可以很好预测工资的变量。使用适当的图来形象化他们与工资的关系。
受教育程度和工作小时数似乎是工人工资的良好预测因素。


ggplot(data = wage, aes(y=wage, x=exper))+geom_point()

ggplot(data = wage, aes(y=wage, x=educ))+geom_point()

简单的线性回归

对于我们在数据中看到的工资差异,一个可能的解释是,更聪明的人赚更多的钱。下图显示了周工资和智商得分之间的散点图。

ggplot(data = wage, aes(x = iq, y = wage)) +geom_point()

这个图是相当杂乱的。虽然智商分数和工资之间可能存在轻微的正线性关系,但智商充其量只是一个粗略的工资预测指标。我们可以通过拟合一个简单的线性回归来量化这一点。

m_wage_iq$coefficients
## (Intercept)          iq 
##  116.991565    8.303064
## [1] 384.7667

回想一下,在模型下

如果使用  和参考先验    ,然后贝叶斯后验均值和标准差分别等于频数估计和标准差。

贝叶斯模型规范假设误差正态分布且方差为常数。与频率法一样,我们通过检查模型的残差分布来检验这一假设。如果残差是高度非正态或偏态的,则违反了假设,任何随后的推断都是无效的。

  1. 检验m_wage_iq的残差。正态分布误差的假设有效吗?
    1. 不,因为模型的残差分布是右偏的。
qqnorm(m_wage_iq$residuals)
qqline(m_wage_iq$residuals)

练习:重新调整模型,这次使用educ(教育)作为自变量。你对上一个练习的回答有变化吗?

## (Intercept)        educ 
##   146.95244    60.21428
summary(m_wage_educ)$sigma
## [1] 382.3203

同样的结论是,该线性模型的残差与ϵi∼N(0,σ2)近似正态分布,因此可以在该线性模型的基础上进行进一步的推断。

变量转换

适应数据右偏的一种方法是(自然)对数变换因变量。请注意,这仅在变量严格为正时才可能,因为没有定义负值的对数,并且log(0)=−∞。我们试着用对数工资作为因变量来拟合一个线性模型。问题4将基于这个对数转换模型。

m_lwage_iq = lm(lwage ~ iq, data = wage)

练习:检查该模型的残差。假设正态分布的残差合理吗?

基于上述残差图,可以假定对数工资线性模型与iq的正态分布。

回想一下,给定σ2的α和β的后验分布是正态的,但略微遵循一个具有n−p−1自由度的t分布。在这种情况下,p=1,因为智商是我们模型中唯一的对数工资预测因子。因此,α和β的后验概率都遵循933自由度的t分布,因为df非常大,这些分布实际上是近似正态的。

  1. 在参考先验p(α,β,σ2)∞1/σ2下,给出β的95%后验置信区间,即IQ系数。
    1. (0.00709, 0.01050)

# 从线性模型m_lwage_iq中提取系数值qnorm(c(0.025, 0.975), mean = iq_mean_estimate, sd=iq_sd)
## [1] 0.007103173 0.010511141

练习:智商系数很小,这是意料之中的,因为智商分数提高一分很难对工资产生很高的倍增效应。使系数更易于解释的一种方法是在将智商放入模型之前将其标准化。从这个新模型来看,智商提高1个标准差(15分)估计工资会增加多少百分比?

智商是用scale函数标准化的,智商提高15分会引起工资的提高


coef(summary(m_lwage_scaled_iq))["siq", "Estimate"]*15+coef(summary(m_lwage_scaled_iq))["(Intercept)", "Estimate"]
## [1] 8.767568

多元线性回归

很明显,工资可以用很多预测因素来解释,比如经验、教育程度和智商。我们可以在回归模型中包含所有相关的协变量,试图尽可能多地解释工资变化。

lm中的.的使用告诉R在模型中包含所有协变量,然后用-wage进一步修改,然后从模型中排除工资变量。
默认情况下,lm函数执行完整的案例分析,因此它会删除一个或多个预测变量中缺少(NA)值的观察值。

由于这些缺失的值,我们必须做一个额外的假设,以便我们的推论是有效的。换句话说,我们的数据必须是随机缺失的。例如,如果所有第一个出生的孩子没有报告他们的出生顺序,数据就不会随机丢失。在没有任何额外信息的情况下,我们将假设这是合理的,并使用663个完整的观测值(与原来的935个相反)来拟合模型。Bayesian和frequentist方法都存在于处理缺失数据的数据集上,但是它们超出了本课程的范围。

  1. 从这个模型来看,谁赚得更多:已婚的黑人还是单身的非黑人?
    1. 已婚黑人

与单一非黑人男子相比,所有其他平等的,已婚的黑人将获得以下乘数。


married_black <- married_coef*1+black_coef*1married_black
## [1] 0.09561888

从线性模型的快速总结中可以看出,自变量的许多系数在统计上并不显著。您可以根据调整后的R2选择变量。本文引入了贝叶斯信息准则(BIC),这是一种可用于模型选择的度量。BIC基于模型拟合,同时根据样本大小按比例惩罚参数个数。我们可以使用以下命令计算全线性模型的BIC:

BIC(m_lwage_full)
## [1] 586.3732

我们可以比较完整模型和简化模型的BIC。让我们试着从模型中删除出生顺序。为了确保观测值保持不变,可以将数据集指定为na.omit(wage),它只包含没有缺失值的观测值。

m_lwage_nobrthord = lm(lwage ~ . -wage -brthord, data = na.omit(wage))
## [1] 582.4815

如您所见,从回归中删除出生顺序会减少BIC,我们试图通过选择模型来最小化BIC。

  1. 从完整模型中消除哪个变量得到最低的BIC?
    1. feduc

BIC(m_lwage_sibs)
## [1] 581.4031
BIC(m_lwage_feduc)
## [1] 580.9743
BIC(m_lwage_meduc)
## [1] 582.3722

练习:R有一个函数stepAIC,它将在模型空间中向后运行,删除变量直到BIC不再降低。它以一个完整的模型和一个惩罚参数k作为输入。根据BIC(在这种情况下k=log(n)k=log(n))找到最佳模型。


#对于AIC,惩罚因子是一个接触值k。对于step BIC,我们将使用stepAIC函数并将k设置为log(n)step(m_lwage_full1, direction = "backward", k=log(n))

## Residuals:
##     Min      1Q  Median      3Q     Max 
## -172.57  -63.43  -35.43   23.39 1065.78 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -5546.2382    84.7839 -65.416  < 2e-16 ***
## hours           1.9072     0.6548   2.913   0.0037 ** 
## tenure         -4.1285     0.9372  -4.405 1.23e-05 ***
## lwage         951.0113    11.5041  82.667  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 120.1 on 659 degrees of freedom
## Multiple R-squared:  0.9131, Adjusted R-squared:  0.9127 
## F-statistic:  2307 on 3 and 659 DF,  p-value: < 2.2e-16

贝叶斯模型平均

通常,几个模型都是同样可信的,只选择一个模型忽略了选择模型中包含的变量所涉及的固有不确定性。解决这一问题的一种方法是实现贝叶斯模型平均(Bayesian model averaging,BMA),即对多个模型进行平均,从新数据中获得系数的后验值和预测值。我们可以使用它来实现BMA或选择模型。我们首先将BMA应用于工资数据。

bma(lwage ~ . -wage, data = wage_no_na,prior = "BIC", modelprior = uniform())

## 
##  Marginal Posterior Inclusion Probabilities: 
## Intercept      hours         iq        kww       educ      exper  
##   1.00000    0.85540    0.89732    0.34790    0.99887    0.70999  
##    tenure        age   married1     black1     south1     urban1  
##   0.70389    0.52468    0.99894    0.34636    0.32029    1.00000  
##      sibs    brthord      meduc      feduc  
##   0.04152    0.12241    0.57339    0.23274
summary(bma_lwage)
##           P(B != 0 | Y)    model 1       model 2       model 3
## Intercept    1.00000000     1.0000     1.0000000     1.0000000
## hours        0.85540453     1.0000     1.0000000     1.0000000
## iq           0.89732383     1.0000     1.0000000     1.0000000
## kww          0.34789688     0.0000     0.0000000     0.0000000
## educ         0.99887165     1.0000     1.0000000     1.0000000
## exper        0.70999255     0.0000     1.0000000     1.0000000
## tenure       0.70388781     1.0000     1.0000000     1.0000000
## age          0.52467710     1.0000     1.0000000     0.0000000
## married1     0.99894488     1.0000     1.0000000     1.0000000
## black1       0.34636467     0.0000     0.0000000     0.0000000
## south1       0.32028825     0.0000     0.0000000     0.0000000
## urban1       0.99999983     1.0000     1.0000000     1.0000000
## sibs         0.04152242     0.0000     0.0000000     0.0000000
## brthord      0.12241286     0.0000     0.0000000     0.0000000
## meduc        0.57339302     1.0000     1.0000000     1.0000000
## feduc        0.23274084     0.0000     0.0000000     0.0000000
## BF                   NA     1.0000     0.5219483     0.5182769
## PostProbs            NA     0.0455     0.0237000     0.0236000
## R2                   NA     0.2710     0.2767000     0.2696000
## dim                  NA     9.0000    10.0000000     9.0000000
## logmarg              NA -1490.0530 -1490.7032349 -1490.7102938
##                 model 4       model 5
## Intercept     1.0000000     1.0000000
## hours         1.0000000     1.0000000
## iq            1.0000000     1.0000000
## kww           1.0000000     0.0000000
## educ          1.0000000     1.0000000
## exper         1.0000000     0.0000000
## tenure        1.0000000     1.0000000
## age           0.0000000     1.0000000
## married1      1.0000000     1.0000000
## black1        0.0000000     1.0000000
## south1        0.0000000     0.0000000
## urban1        1.0000000     1.0000000
## sibs          0.0000000     0.0000000
## brthord       0.0000000     0.0000000
## meduc         1.0000000     1.0000000
## feduc         0.0000000     0.0000000
## BF            0.4414346     0.4126565
## PostProbs     0.0201000     0.0188000
## R2            0.2763000     0.2762000
## dim          10.0000000    10.0000000
## logmarg   -1490.8707736 -1490.9381880

输出model对象和summary命令为我们提供了每个变量的后验模型包含概率和最可能的模型。例如,模型中包含小时数的后验概率为0.855。此外,后验概率为0.0455的最可能模型包括截距、工作时间、智商、教育程度、年龄、婚姻状况、城市生活状况和母亲教育程度。虽然0.0455的后验概率听起来很小,但它比分配给它的统一先验概率大得多,因为有216个可能的模型。
在模型平均法下,还可以可视化系数的后验分布。我们将智商系数的后验分布绘制如下。


plot(coef_lwage, subset = c(3,13), ask=FALSE)

我们还可以为这些系数提供95%的置信区间:

##                    2.5%        97.5%          beta
## Intercept  6.787648e+00 6.841901e+00  6.8142970694
## hours     -9.213871e-03 0.000000e+00 -0.0053079979
## iq         0.000000e+00 6.259498e-03  0.0037983313
## kww        0.000000e+00 8.290187e-03  0.0019605787
## educ       2.247901e-02 6.512858e-02  0.0440707549
## exper      0.000000e+00 2.100097e-02  0.0100264057
## tenure     0.000000e+00 1.288251e-02  0.0059357058
## age        0.000000e+00 2.541561e-02  0.0089659753
## married1   1.173088e-01 3.015797e-01  0.2092940731
## black1    -1.900452e-01 0.000000e+00 -0.0441863361
## south1    -1.021332e-01 1.296992e-05 -0.0221757978
## urban1     1.374767e-01 2.621311e-01  0.1981221313
## sibs       0.000000e+00 0.000000e+00  0.0000218455
## brthord   -2.072393e-02 0.000000e+00 -0.0019470674
## meduc      0.000000e+00 2.279918e-02  0.0086717156
## feduc     -7.996880e-06 1.558576e-02  0.0025125930
## attr(,"Probability")
## [1] 0.95
## attr(,"class")
## [1] "confint.bas"

对于问题7-8,我们将使用简化的数据集,其中不包括兄弟姐妹数量、出生顺序和父母教育。

wage_red = wage %>% dplyr::select(-sibs, -brthord, -meduc, -feduc)
  1. 基于这个简化的数据集,根据贝叶斯模型平均,下列哪一个变量的边际后验包含概率最低?
    1. 年龄
## 
## Call:
## 
## 
##  Marginal Posterior Inclusion Probabilities: 
## Intercept      hours         iq        kww       educ      exper  
##    1.0000     0.8692     0.9172     0.3217     1.0000     0.9335  
##    tenure        age   married1     black1     south1     urban1  
##    0.9980     0.1786     0.9999     0.9761     0.8149     1.0000
##           P(B != 0 | Y)    model 1       model 2       model 3
## Intercept     1.0000000     1.0000     1.0000000     1.0000000
## hours         0.8691891     1.0000     1.0000000     1.0000000
## iq            0.9171607     1.0000     1.0000000     1.0000000
## kww           0.3216992     0.0000     1.0000000     0.0000000
## educ          1.0000000     1.0000     1.0000000     1.0000000
## exper         0.9334844     1.0000     1.0000000     1.0000000
## tenure        0.9980015     1.0000     1.0000000     1.0000000
## age           0.1786252     0.0000     0.0000000     0.0000000
## married1      0.9999368     1.0000     1.0000000     1.0000000
## black1        0.9761347     1.0000     1.0000000     1.0000000
## south1        0.8148861     1.0000     1.0000000     0.0000000
## urban1        1.0000000     1.0000     1.0000000     1.0000000
## BF                   NA     1.0000     0.5089209     0.2629789
## PostProbs            NA     0.3311     0.1685000     0.0871000
## R2                   NA     0.2708     0.2751000     0.2634000
## dim                  NA    10.0000    11.0000000     9.0000000
## logmarg              NA -2275.4209 -2276.0963811 -2276.7565998
##                 model 4       model 5
## Intercept     1.0000000     1.0000000
## hours         1.0000000     0.0000000
## iq            1.0000000     1.0000000
## kww           0.0000000     0.0000000
## educ          1.0000000     1.0000000
## exper         1.0000000     1.0000000
## tenure        1.0000000     1.0000000
## age           1.0000000     0.0000000
## married1      1.0000000     1.0000000
## black1        1.0000000     1.0000000
## south1        1.0000000     1.0000000
## urban1        1.0000000     1.0000000
## BF            0.2032217     0.1823138
## PostProbs     0.0673000     0.0604000
## R2            0.2737000     0.2628000
## dim          11.0000000     9.0000000
## logmarg   -2277.0143763 -2277.1229445
  1. 判断:包含所有变量的朴素模型的后验概率大于0.5。(系数使用Zellner-Siow零先验,模型使用β二项(1,1)先验)
    1. 真的
bma_lwage_full
## 
## Call:
## 
## 
##  Marginal Posterior Inclusion Probabilities: 
## Intercept      hours         iq        kww       educ      exper  
##    1.0000     0.9792     0.9505     0.6671     0.9998     0.8951  
##    tenure        age   married1     black1     south1     urban1  
##    0.9040     0.7093     0.9998     0.7160     0.6904     1.0000  
##      sibs    brthord      meduc      feduc  
##    0.3939     0.5329     0.7575     0.5360
##           P(B != 0 | Y)     model 1     model 2     model 3 model 4
## Intercept     1.0000000  1.00000000  1.00000000  1.00000000  1.0000
## hours         0.9791805  1.00000000  1.00000000  1.00000000  1.0000
## iq            0.9504649  1.00000000  1.00000000  1.00000000  1.0000
## kww           0.6670580  1.00000000  1.00000000  1.00000000  1.0000
## educ          0.9998424  1.00000000  1.00000000  1.00000000  1.0000
## exper         0.8950911  1.00000000  1.00000000  1.00000000  1.0000
## tenure        0.9040156  1.00000000  1.00000000  1.00000000  1.0000
## age           0.7092839  1.00000000  1.00000000  1.00000000  1.0000
## married1      0.9997881  1.00000000  1.00000000  1.00000000  1.0000
## black1        0.7160065  1.00000000  1.00000000  1.00000000  1.0000
## south1        0.6903763  1.00000000  1.00000000  1.00000000  1.0000
## urban1        1.0000000  1.00000000  1.00000000  1.00000000  1.0000
## sibs          0.3938833  1.00000000  1.00000000  0.00000000  0.0000
## brthord       0.5329258  1.00000000  1.00000000  1.00000000  0.0000
## meduc         0.7575462  1.00000000  1.00000000  1.00000000  1.0000
## feduc         0.5359832  1.00000000  0.00000000  1.00000000  0.0000
## BF                   NA  0.01282537  0.06040366  0.04899546  1.0000
## PostProbs            NA  0.07380000  0.02320000  0.01880000  0.0126
## R2                   NA  0.29250000  0.29140000  0.29090000  0.2882
## dim                  NA 16.00000000 15.00000000 15.00000000 13.0000
## logmarg              NA 76.00726935 77.55689364 77.34757164 80.3636
##             model 5
## Intercept  1.000000
## hours      1.000000
## iq         1.000000
## kww        1.000000
## educ       1.000000
## exper      1.000000
## tenure     1.000000
## age        1.000000
## married1   1.000000
## black1     1.000000
## south1     1.000000
## urban1     1.000000
## sibs       0.000000
## brthord    1.000000
## meduc      1.000000
## feduc      0.000000
## BF         0.227823
## PostProbs  0.012500
## R2         0.289600
## dim       14.000000
## logmarg   78.884413

练习:用数据集绘制年龄系数的后验分布图。


plot(coef_bma_wage_red, ask = FALSE)

预测

贝叶斯统计的一个主要优点是预测和预测的概率解释。大部分贝叶斯预测都是使用模拟技术来完成的。这通常应用于回归建模中,尽管我们将通过一个仅包含截距项的示例来进行分析。

假设你观察到y的四个数值观测值,分别为2、2、0和0,样本均值y′=1,样本方差s2=4/3。假设y∼N(μ,σ2),在参考先验p(μ,σ2)∼1/σ2下,我们的后验概率变为

以样本均值为中心

其中a=(n-1)/2和b=s2(n-1)/2=2。

为了得到y5的预测分布,我们可以先从σ2的后验点模拟,然后再从μ模拟y5。我们对y5年的预测结果将来自一项新的观测结果的后验预测分布。下面的示例从y5的后验预测分布中提取100,000次。

set.seed(314)
N = 100000y_5 = rnorm(N, mu, sqrt(sigma2))

我们可以通过观察模拟数据直方图的平滑版本,查看预测分布的估计值。

新观测的95%中心置信区间为在这种情况下,L是0.025分位数,U是0.975分位数。我们可以使用分位数函数来获得这些值,从而找到tracy5的0.025和0.975的样本分位数。

  1. 估计一个新的观测y595%置信区间
    1. (-3.11, 5.13)
quantile(y_5, probs = c(0.025, 0.975))
##      2.5%     97.5% 
## -3.109585  5.132511

练习:在上面的简单例子中,可以使用积分来分析计算后验预测值。在这种情况下,它是一个具有3个自由度(n−1)的t分布。绘制y的经验密度和t分布的实际密度。它们之间有什么比较?

 
plot(den_of_y)

BAS预测

在BAS中,用贝叶斯模型平均法构造预测区间是通过仿真实现的,而在模型选择的情况下,用预测区间进行精确推理往往是可行的。

回到工资数据集,让我们找到最佳预测模型下的预测值,即预测值最接近BMA和相应的后验标准差的模型。

predict(bma_lwage, estimator="BPM")
##  [1] "Intercept" "hours"     "iq"        "kww"       "educ"     
##  [6] "exper"     "tenure"    "age"       "married1"  "urban1"   
## [11] "meduc"

我们可以将其与我们之前发现的最高概率模型和中位概率模型(MPM)进行比较

predict(bma_lwage, estimator="MPM")
##  [1] "Intercept" "hours"     "iq"        "educ"      "exper"    
##  [6] "tenure"    "age"       "married1"  "urban1"    "meduc"

MPM除了包含HPM的所有变量外,还包含exper,而BPM除了MPM中的所有变量外,还包含kwh。
练习:使用简化数据,最佳预测模型、中位概率模型和最高后验概率模型中包含哪些协变量?
让我们来看看BPM模型中哪些特征会影响最高工资。

##         [,1]     
## wage    "1586"   
## hours   "40"     
## iq      "127"    
## kww     "48"     
## educ    "16"     
## exper   "16"     
## tenure  "12"     
## age     "37"     
## married "1"      
## black   "0"      
## south   "0"      
## urban   "1"      
## sibs    "4"      
## brthord "4"      
## meduc   "16"     
## feduc   "16"     
## lwage   "7.36897"

可以得到预测对数工资的95%可信区间

##     2.5%    97.5%     pred 
## 6.661869 8.056452 7.359160

换算成工资,我们可以将区间指数化。

##      2.5%     97.5%      pred 
##  782.0108 3154.0780 1570.5169

获得一个95%的预测区间的工资。
如果使用BMA,区间是

##      2.5%     97.5%      pred 
##  733.3446 2989.2076 1494.9899

练习:使用简化后的数据,为BPM下预测工资最高的个人构建95%的预测区间。

参考文献

Wooldridge, Jeffrey. 2000. Introductory Econometrics- A Modern Approach. South-Western College Publishing. 


这篇关于拓端tecdat|R语言贝叶斯线性回归和多元线性回归构建工资预测模型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

python使用fastapi实现多语言国际化的操作指南

《python使用fastapi实现多语言国际化的操作指南》本文介绍了使用Python和FastAPI实现多语言国际化的操作指南,包括多语言架构技术栈、翻译管理、前端本地化、语言切换机制以及常见陷阱和... 目录多语言国际化实现指南项目多语言架构技术栈目录结构翻译工作流1. 翻译数据存储2. 翻译生成脚本

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

Spring AI Alibaba接入大模型时的依赖问题小结

《SpringAIAlibaba接入大模型时的依赖问题小结》文章介绍了如何在pom.xml文件中配置SpringAIAlibaba依赖,并提供了一个示例pom.xml文件,同时,建议将Maven仓... 目录(一)pom.XML文件:(二)application.yml配置文件(一)pom.xml文件:首

Go语言中三种容器类型的数据结构详解

《Go语言中三种容器类型的数据结构详解》在Go语言中,有三种主要的容器类型用于存储和操作集合数据:本文主要介绍三者的使用与区别,感兴趣的小伙伴可以跟随小编一起学习一下... 目录基本概念1. 数组(Array)2. 切片(Slice)3. 映射(Map)对比总结注意事项基本概念在 Go 语言中,有三种主要

C语言中自动与强制转换全解析

《C语言中自动与强制转换全解析》在编写C程序时,类型转换是确保数据正确性和一致性的关键环节,无论是隐式转换还是显式转换,都各有特点和应用场景,本文将详细探讨C语言中的类型转换机制,帮助您更好地理解并在... 目录类型转换的重要性自动类型转换(隐式转换)强制类型转换(显式转换)常见错误与注意事项总结与建议类型

如何在本地部署 DeepSeek Janus Pro 文生图大模型

《如何在本地部署DeepSeekJanusPro文生图大模型》DeepSeekJanusPro模型在本地成功部署,支持图片理解和文生图功能,通过Gradio界面进行交互,展示了其强大的多模态处... 目录什么是 Janus Pro1. 安装 conda2. 创建 python 虚拟环境3. 克隆 janus

本地私有化部署DeepSeek模型的详细教程

《本地私有化部署DeepSeek模型的详细教程》DeepSeek模型是一种强大的语言模型,本地私有化部署可以让用户在自己的环境中安全、高效地使用该模型,避免数据传输到外部带来的安全风险,同时也能根据自... 目录一、引言二、环境准备(一)硬件要求(二)软件要求(三)创建虚拟环境三、安装依赖库四、获取 Dee

Go语言利用泛型封装常见的Map操作

《Go语言利用泛型封装常见的Map操作》Go语言在1.18版本中引入了泛型,这是Go语言发展的一个重要里程碑,它极大地增强了语言的表达能力和灵活性,本文将通过泛型实现封装常见的Map操作,感... 目录什么是泛型泛型解决了什么问题Go泛型基于泛型的常见Map操作代码合集总结什么是泛型泛型是一种编程范式,允

nginx-rtmp-module构建流媒体直播服务器实战指南

《nginx-rtmp-module构建流媒体直播服务器实战指南》本文主要介绍了nginx-rtmp-module构建流媒体直播服务器实战指南,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录1. RTMP协议介绍与应用RTMP协议的原理RTMP协议的应用RTMP与现代流媒体技术的关系2