临床预测模型概述6-统计模型实操-单/多因素Cox回归

news2024/9/29 9:29:23

基础知识回顾:

https://mp.weixin.qq.com/s/pXRZ1rYUr3lwH5OlDeB0_Q

https://mp.weixin.qq.com/s/UVR6ZHCwhWqTfFBmPYPV9Q

接下来我们进行cox回归模型的实际操练。

简单回顾一下cox回归,在各种临床/基础数据分析中,经常需要分析各种影响/危险因素对疾病/状态随着时间变化而产生的影响作用,如研究肝癌患者的生存或死亡风险如何受到不同治疗方式、年龄、饮食习惯、饮酒和抽烟等因素的影响,并探索这些因素随时间变化的作用机制。再简单的说就是,不同影响因素,对肝癌患者发生死亡事件在一段时间上发生的概率的影响作用。

Cox回归
1、首先输入数据,数据内容形式可见logistic回归推文
rm(list = ls())
load("TCGA-LIHC_sur_model.Rdata")
head(exprSet)[1:4,1:4]
head(meta)
2、check数据
meta$OS <- factor(meta$OS,levels = c("0","1"))
meta$race <- factor(meta$race,levels = c("ASIAN","AMERICAN INDIAN OR ALASKA NATIVE","BLACK OR AFRICAN AMERICAN","WHITE"))
meta$stage <- factor(meta$stage,levels = c("I","II","III","IV"))
meta$T <- factor(meta$T,levels = c("1","2","3","4"))
meta$age <- ifelse(meta$age > 60,">60","<=60")
meta$age <- factor(meta$age,levels = c("<=60",">60"))
str(meta)

同样的这里对于有一些参数并没有进行因子化,以及存在NA值,这些情况会在下边的探索中解释。

3、构建模型
# 使用survival包中的coxph函数,这是cox回归中最常用的函数之一
library(survival)                 
formula <- as.formula(Surv(OS.time,OS==1)~race+age+gender+stage+T+N+M)
# Warning message:
# In coxph.fit(X, Y, istrat, offset, init, control, weights = weights,  :
#   Loglik converged before variable  1,6,8,9,13 ; coefficient may be infinite. 
fit <- coxph(formula,data = meta) 
# Warning message:
# In coxph.fit(X, Y, istrat, offset, init, control, weights = weights,  :
#   Loglik converged before variable  1,6,8,9,13 ; coefficient may be infinite. 

这个警告 "Loglik converged before variable 1,6,8,9,13; coefficient may be infinite." 在 Cox 比例风险模型的拟合过程中出现,它表明在模型收敛之前,某些变量(编号为 1, 6, 8, 9, 13,可以对照summary结果看一下)的系数估计可能趋于无穷大。这通常是由于以下几种原因引起的:

  1. 完全分离(Complete Separation) 如果数据集中某些变量可以完美预测事件的发生(这种情况当然是不可能的啦),例如某个预测变量在所有事件发生的情况下都是一个值,在没有事件发生的情况下都是另一个值,这将导致该变量的系数估计趋向无穷大。这种情况在生存分析中尤为常见,尤其是在处理较小的数据集或有强烈预测因子的情况下。

  2. 多重共线性(Multicollinearity) 如果模型中包括的变量间存在高度共线性,即一些变量彼此非常相关,这也可能导致某些变量的系数估计非常不稳定,甚至趋向无限大。共线性问题会使得模型参数的估计变得困难,因为模型难以区分这些相关变量的独立效应。

  3. 数据稀疏(Sparse Data Issue) 在某些分类变量中,如果某些类别的观测非常少,也可能导致系数估计的不稳定性。当包含的分类变量的某些水平在数据中几乎或完全没有观测时,这种情况可能会发生。

解决这些问题的策略包括:

数据检查和预处理:检查数据中是否存在数据分离现象,确认各变量之间的关系,可能需要重新编码或合并一些变量的类别。

模型简化:尝试减少模型中的变量,特别是那些引起警告的变量。检查这些变量的必要性和影响,考虑从模型中移除或替换它们。

使用正则化技术:考虑使用像 Lasso 或 Ridge 这样的正则化方法,这些方法通过在估计过程中添加惩罚项,可以帮助缓解共线性问题并提高模型的稳定性。

个人经验,一般出现这种情况最主要是数据的问题,需要进行数据检查和更好的预处理

summary(fit)
# Call:
# coxph(formula = formula, data = meta)
# 
#   n= 227, number of events= 75 
#    (138 observations deleted due to missingness)
# 
#                                            coef  exp(coef)   se(coef)      z Pr(>|z|)
# raceAMERICAN INDIAN OR ALASKA NATIVE -1.538e+01  2.084e-07  4.528e+03 -0.003    0.997
# raceBLACK OR AFRICAN AMERICAN         9.079e-01  2.479e+00  7.497e-01  1.211    0.226
# raceWHITE                            -3.791e-01  6.845e-01  2.972e-01 -1.276    0.202
# age>60                                2.243e-01  1.251e+00  2.523e-01  0.889    0.374
# genderMALE                           -2.288e-01  7.955e-01  2.739e-01 -0.835    0.404
# stageII                               1.692e+01  2.228e+07  3.898e+03  0.004    0.997
# stageIII                              1.176e-01  1.125e+00  1.493e+00  0.079    0.937
# stageIV                              -1.613e+01  9.929e-08  1.876e+04 -0.001    0.999
# T2                                   -1.654e+01  6.580e-08  3.898e+03 -0.004    0.997
# T3                                    1.039e+00  2.827e+00  1.461e+00  0.711    0.477
# T4                                    1.586e+00  4.885e+00  1.540e+00  1.030    0.303
# N                                     1.327e+00  3.772e+00  1.035e+00  1.283    0.199
# M                                     1.649e+01  1.448e+07  1.876e+04  0.001    0.999
# 
#                                      exp(coef) exp(-coef) lower .95 upper .95
# raceAMERICAN INDIAN OR ALASKA NATIVE 2.084e-07  4.800e+06   0.00000       Inf
# raceBLACK OR AFRICAN AMERICAN        2.479e+00  4.034e-01   0.57032    10.777
# raceWHITE                            6.845e-01  1.461e+00   0.38230     1.226
# age>60                               1.251e+00  7.991e-01   0.76326     2.052
# genderMALE                           7.955e-01  1.257e+00   0.46509     1.361
# stageII                              2.228e+07  4.488e-08   0.00000       Inf
# stageIII                             1.125e+00  8.890e-01   0.06026    20.996
# stageIV                              9.929e-08  1.007e+07   0.00000       Inf
# T2                                   6.580e-08  1.520e+07   0.00000       Inf
# T3                                   2.827e+00  3.538e-01   0.16122    49.561
# T4                                   4.885e+00  2.047e-01   0.23889    99.912
# N                                    3.772e+00  2.651e-01   0.49652    28.649
# M                                    1.448e+07  6.907e-08   0.00000       Inf
# 
# Concordance= 0.655  (se = 0.033 )
# Likelihood ratio test= 29.29  on 13 df,   p=0.006
# Wald test            = 29.84  on 13 df,   p=0.005
# Score (logrank) test = 36.03  on 13 df,   p=6e-04

接下来详细解析一下summary(fit)得到的结果

1)常规参数

系数(coef): 回归系数反映了每个协变量对生存时间风险比的影响。负系数表明该变量与生存时间正相关(降低风险),正系数表明与生存时间负相关(增加风险)。

指数形式的系数(exp(coef): 这就是风险比(hazard ratio),表明了相应变量对生存风险的倍数影响。例如,raceBLACK OR AFRICAN AMERICAN 的风险比为2.479,意味着与参考类别相比,该族群的死亡风险高2.479倍。

标准误差(se(coef): 系数的标准误差,衡量估计的精确度。

z 值和 p 值: 用于测试每个系数的统计显著性。Z 值是通过将系数估计值(β)除以其标准误差(SE)来计算的。一旦计算出 Z 值,接下来就可以计算 P 值。P 值是通过查找标准正态分布表或使用统计软件中的相关函数来得出的。

lower .95 upper .95:exp(coef)的95%置信区间,可信区间越窄,可信度越高。

2)重点关注

极大的系数和标准误差: 有些变量如 raceAMERICAN INDIAN OR ALASKA NATIVE, stageII, stageIV, T2, 和 M 显示出极大的系数和/或标准误差,这通常是模型不稳定的迹象,可能是因为样本中这些类别的数据非常稀少或者完全分离的情况。这种情况下是必须要重新检查数据的。

风险比的极端值: 如 stageII 的风险比达到了约2200万,这样的极端值通常不是实际情况,反映了数据问题或模型拟合问题。这种情况下是必须要重新检查数据的。

模型评估指标: Concordance = 0.655这个就是C-index值: 表示模型对生存数据排序的能力为65.5%,高于随机模型(50%)。似然比检验、Wald检验和Score(log rank)检验: 提供了模型整体拟合优度的统计显著性检验,p 值都显示模型是统计显著的。

4、提取模型的关键信息
# β/Estimate值
coef(fit) #或者 coefficients(fit)
# β值的95%可信区间
confint(fit)
# HR值
exp(coef(fit))
# OR值的95%可信区间
exp(confint(fit))[1:4,1:2]
# P值
summary(fit)$coefficients[,5]

具体不展示了

5、模型数据提取
# 单因素cox数据手动提取
# 构建自定义函数
uni_cox<-function(x){
  fml<-as.formula(paste0("Surv(OS.time,OS==1)~",x))  
  fit1<-coxph(fml,data = meta)
  fit2<-summary(fit1)

   #计算我们所要的指标
  HR<-round(fit2$conf.int[,1],2)
  CI<-paste0(round(fit2$conf.int[,3:4],2),collapse = '-')
  P<-round(fit2$coefficients[,5],3)

  #将计算出来的指标制作为数据框
  uni_cox<-data.frame('characteristics'=x,'HR'=HR,'CI'=CI,'P'=P)

  return(uni_cox)
}

#指定参与分析的自变量
variable<-colnames(meta)[c(4:10)]  
variable

#运行上面自定义批量执行函数
uni_cox_res<-lapply(variable,uni_cox)
uni_cox_res

library(plyr)
#生成单变量分析的结果
uni_cox_res<-ldply(uni_cox_res,data.frame)
uni_cox_res
#    characteristics   HR                             CI     P
# 1             race 0.00          0-0.81-0.89-Inf-4-1.9 0.995
# 2             race 1.80          0-0.81-0.89-Inf-4-1.9 0.150
# 3             race 1.30          0-0.81-0.89-Inf-4-1.9 0.170
# 4              age 1.27                      0.89-1.79 0.183
# 5           gender 0.82                      0.58-1.17 0.284
# 6            stage 1.39 0.85-1.71-1.65-2.26-3.97-17.32 0.187
# 7            stage 2.61 0.85-1.71-1.65-2.26-3.97-17.32 0.000
# 8            stage 5.35 0.85-1.71-1.65-2.26-3.97-17.32 0.005
# 9                T 1.40 0.89-1.69-2.57-2.22-3.87-10.29 0.147
# 10               T 2.56 0.89-1.69-2.57-2.22-3.87-10.29 0.000
# 11               T 5.15 0.89-1.69-2.57-2.22-3.87-10.29 0.000
# 12               N 1.98                      0.48-8.07 0.342
# 13               M 3.91                     1.23-12.44 0.021


# broom方式
library(broom)
formula <- as.formula(Surv(OS.time,OS==1)~race+age+gender+stage+T+N+M)
fit <- coxph(formula,data=meta)
tidy(fit,exponentiate = T, conf.int = T)  # 将模型结果转化为整洁的数据框
# # A tibble: 13 × 7
#    term                                 estimate std.error statistic p.value conf.low conf.high
#    <chr>                                   <dbl>     <dbl>     <dbl>   <dbl>    <dbl>     <dbl>
#  1 raceAMERICAN INDIAN OR ALASKA NATIVE  2.08e-7  4528.    -0.00340    0.997   0         Inf   
#  2 raceBLACK OR AFRICAN AMERICAN         2.48e+0     0.750  1.21       0.226   0.570      10.8 
#  3 raceWHITE                             6.84e-1     0.297 -1.28       0.202   0.382       1.23
#  4 age>60                                1.25e+0     0.252  0.889      0.374   0.763       2.05
#  5 genderMALE                            7.96e-1     0.274 -0.835      0.404   0.465       1.36
#  6 stageII                               2.23e+7  3898.     0.00434    0.997   0         Inf   
#  7 stageIII                              1.12e+0     1.49   0.0788     0.937   0.0603     21.0 
#  8 stageIV                               9.93e-8 18761.    -0.000860   0.999   0         Inf   
#  9 T2                                    6.58e-8  3898.    -0.00424    0.997   0         Inf   
# 10 T3                                    2.83e+0     1.46   0.711      0.477   0.161      49.6 
# 11 T4                                    4.89e+0     1.54   1.03       0.303   0.239      99.9 
# 12 N                                     3.77e+0     1.03   1.28       0.199   0.497      28.6 
# 13 M                                     1.45e+7 18761.     0.000879   0.999   0         Inf 

手动提取和broom函数两种方法

6、多因素cox回归筛选自变量
# 在用forward/backward/both方法的时候需要去除NA值!
meta <- na.omit(meta)
dim(meta) #去除了蛮多数据的
# [1] 227  10 

#1.多因素enter回归
formula <- as.formula(Surv(OS.time,OS==1)~race+age+gender+stage+T+N+M)
model_enter <- coxph(formula,data = meta)
model_enter             
summary(model_enter)   

# 构建最小模型
start_model <- coxph(Surv(OS.time,OS==1) ~ 1, data = meta)  # 仅包含截距  

library(MASS)
# 多因素-backward
model_backward <- stepAIC(model_enter, direction = "backward")
summary(model_backward)
# Call:
# coxph(formula = Surv(OS.time, OS == 1) ~ T, data = meta)
# 
#   n= 227, number of events= 75 
# 
#      coef exp(coef) se(coef)     z Pr(>|z|)    
# T2 0.3538    1.4245   0.3273 1.081 0.279714    
# T3 1.0555    2.8734   0.2766 3.815 0.000136 ***
# T4 1.6914    5.4270   0.4344 3.894 9.87e-05 ***
# ---
# Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
# 
#    exp(coef) exp(-coef) lower .95 upper .95
# T2     1.424     0.7020     0.750     2.706
# T3     2.873     0.3480     1.671     4.942
# T4     5.427     0.1843     2.316    12.715
# 
# Concordance= 0.632  (se = 0.033 )
# Likelihood ratio test= 21.53  on 3 df,   p=8e-05
# Wald test            = 23.42  on 3 df,   p=3e-05
# Score (logrank) test = 26.5  on 3 df,   p=7e-06


# 多因素-forward
model_foward <- stepAIC(start_model, scope = list(lower = start_model, upper = model_enter), direction = "forward")
summary(model_forward)
# Call:
# coxph(formula = Surv(OS.time, OS == 1) ~ race + age + gender + 
#     stage + T + N + M, data = meta)
# 
#   n= 227, number of events= 75 
# 
#                                            coef  exp(coef)   se(coef)      z Pr(>|z|)
# raceAMERICAN INDIAN OR ALASKA NATIVE -1.538e+01  2.084e-07  4.528e+03 -0.003    0.997
# raceBLACK OR AFRICAN AMERICAN         9.079e-01  2.479e+00  7.497e-01  1.211    0.226
# raceWHITE                            -3.791e-01  6.845e-01  2.972e-01 -1.276    0.202
# age>60                                2.243e-01  1.251e+00  2.523e-01  0.889    0.374
# genderMALE                           -2.288e-01  7.955e-01  2.739e-01 -0.835    0.404
# stageII                               1.692e+01  2.228e+07  3.898e+03  0.004    0.997
# stageIII                              1.176e-01  1.125e+00  1.493e+00  0.079    0.937
# stageIV                              -1.613e+01  9.929e-08  1.876e+04 -0.001    0.999
# T2                                   -1.654e+01  6.580e-08  3.898e+03 -0.004    0.997
# T3                                    1.039e+00  2.827e+00  1.461e+00  0.711    0.477
# T4                                    1.586e+00  4.885e+00  1.540e+00  1.030    0.303
# N                                     1.327e+00  3.772e+00  1.035e+00  1.283    0.199
# M                                     1.649e+01  1.448e+07  1.876e+04  0.001    0.999
# 
#                                      exp(coef) exp(-coef) lower .95 upper .95
# raceAMERICAN INDIAN OR ALASKA NATIVE 2.084e-07  4.800e+06   0.00000       Inf
# raceBLACK OR AFRICAN AMERICAN        2.479e+00  4.034e-01   0.57032    10.777
# raceWHITE                            6.845e-01  1.461e+00   0.38230     1.226
# age>60                               1.251e+00  7.991e-01   0.76326     2.052
# genderMALE                           7.955e-01  1.257e+00   0.46509     1.361
# stageII                              2.228e+07  4.488e-08   0.00000       Inf
# stageIII                             1.125e+00  8.890e-01   0.06026    20.996
# stageIV                              9.929e-08  1.007e+07   0.00000       Inf
# T2                                   6.580e-08  1.520e+07   0.00000       Inf
# T3                                   2.827e+00  3.538e-01   0.16122    49.561
# T4                                   4.885e+00  2.047e-01   0.23889    99.912
# N                                    3.772e+00  2.651e-01   0.49652    28.649
# M                                    1.448e+07  6.907e-08   0.00000       Inf
# 
# Concordance= 0.655  (se = 0.033 )
# Likelihood ratio test= 29.29  on 13 df,   p=0.006
# Wald test            = 29.84  on 13 df,   p=0.005
# Score (logrank) test = 36.03  on 13 df,   p=6e-04

# 多因素-both
model_both <- stepAIC(start_model, scope = list(lower = start_model, upper = model_enter), direction = "both")
summary(model_both)
# Start:  AIC=719.94
# Surv(OS.time, OS == 1) ~ 1
# 
#          Df    AIC
# + T       3 704.40
# + stage   3 704.87
# + M       1 718.31
# <none>      719.94
# + gender  1 720.49
# + N       1 721.11
# + age     1 721.18
# + race    3 724.24
# 
# Step:  AIC=704.4
# Surv(OS.time, OS == 1) ~ T
# 
#          Df    AIC
# <none>      704.40
# + N       1 705.36
# + age     1 705.69
# + gender  1 706.09
# + M       1 706.23
# + race    3 707.74
# + stage   3 708.30
# - T       3 719.94


# 计算多个模型的 AIC 值
aic_values <- AIC(model_enter, model_forward, model_backward, model_both)
# 打印 AIC 值
print(aic_values)
# 找到 AIC 值最小的模型
best_model <- aic_values[which.min(aic_values$AIC), ]
print(best_model)

# 模型AIC比较
# 选择AIC值最小的模型
anova(model_enter,model_forward,test = "Chisq")
anova(model_enter,model_backward,test = "Chisq")
anova(model_enter,model_both,test = "Chisq")
anova(model_forward,model_backward,test = "Chisq")
anova(model_forward,model_both,test = "Chisq")
anova(model_backward,model_both,test = "Chisq")

# 使用MuMIn包
library(MuMIn)
# 将所有模型放入一个列表
model_list <- list(Enter = model_enter, Forward = model_forward, Backward = model_backward, Both = model_both)
# 使用 MuMIn 包的 model.sel() 函数进行比较
model_comparison <- model.sel(model_list)
# 打印模型比较结果
print(model_comparison)
# 选择 AICc 值最小的模型
best_model <- get.models(model_comparison, 1)[[1]]
summary(best_model)
参考资料:

1、coxph:https://rdrr.io/cran/survival/man/coxph.html

2、MASS: https://cran.r-project.org/web/packages/MASS/MASS.pdf

3、broom:https://github.com/tidymodels/broom

4、MuMIn:https://mumin-dataset.github.io/

:若对内容有疑惑或者有发现明确错误的朋友,请联系后台(欢迎交流)。更多内容可关注公众号:生信方舟

- END -

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

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

相关文章

学校考场电子钟设置自动开关机,节能环保

在标准化考试中&#xff0c;准确的时间显示对于确保考试的公正性和秩序至关重要。然而&#xff0c;传统的电子钟系统往往存在一些问题&#xff0c;影响了考试管理的效率。 一、学校普通电子钟使用问题 二、学校考场电子钟优点 学校同步时钟系统通过自动同步网络或卫星时间的方式…

排序算法3:归并排序与计数排序

前言 Hello&#xff0c;小伙伴们&#xff0c;今天我们继续排序算法的学习&#xff0c;大家三连上车不迷路&#xff0c;我们现在开始今天的学习&#xff01;&#xff01;&#xff01; 1.归并排序 1.1归并排序的算法思想 归并排序&#xff08;MERGE_SORT&#xff09;是建立在归…

洗地机什么牌子最好?洗地机排行榜前十名大总结

在追寻现代家庭清洁新境界的旅程中&#xff0c;洗地机凭借其卓越的清洁效率成为了焦点。以下是我基于深入的市场调研、个人亲身体验以及广泛收集的用户反馈&#xff0c;精心整理出的一份洗地机品牌排行榜及特色亮点解析。请注意&#xff0c;以下排名并不代表绝对的优劣顺序&…

会展中心定位导航:一站式展会解决方案,招商管理系统与展位精准指引的数字化

在当今数字化浪潮下&#xff0c;会展中心作为连接全球商贸与文化的桥梁&#xff0c;其运营效率与参展体验成为衡量成功与否的关键指标。随着物联网、大数据及AI技术的飞速发展&#xff0c;智能定位导航系统应运而生&#xff0c;为会展中心带来了前所未有的变革。会展中心定位导…

线下支付场景之反扫支付

很多老板都在后台私信小编&#xff0c;你们牛卡派这些支付功能确实不错&#xff0c;但只局限于线上网站的场景&#xff0c;可我们没有技术&#xff0c;只是线下来收收款&#xff0c;有没有这方面的产品&#xff1f; 当然有&#xff01;&#xff01;我们牛卡派不仅专注于线上的支…

取消Edge浏览器自带的JSON格式化插件

取消Edge浏览器自带的JSON格式化插件 Edge 浏览器自带了 JSON 转换功能&#xff0c;即某个请求响应的是 JSON格式的数据的话 Edge浏览器则会完成自动转换。如图所示&#xff1a; 这样一来如果自己想要安装其他美观的 JSON 格式化工具则会发现不生效。如JSON Formatter 工具。 …

【YashanDB数据库】由于网络带宽不足导致的jdbc向yashandb插入数据慢

问题现象 某客户环境&#xff0c;客户的业务使用jdbc驱动向其他操作系统上的yashandb插入90万条数据&#xff0c;耗时大约30分钟。 问题的风险及影响 影响客户的业务处理效率 问题影响的版本 所有的yashandb版本 问题发生原因 jdbc执行batch insert时&#xff0c;是有绑…

基于Springboot + Vue的宿舍管理系统

前言 文末获取源码数据库 感兴趣的可以先收藏起来&#xff0c;需要学编程的可以给我留言咨询&#xff0c;希望帮助更多的人 精彩专栏推荐订阅 不然下次找不到哟 Java精品毕设原创实战项目 作者的B站地址&#xff1a;程序员云翼的个人空间-程序员云翼个人主页-哔哩哔哩视频 csd…

idm下载速度只有1m IDM下载速度不稳定什么原因 idm下载速度慢解决办法

IDM能够集成到大多数流行的浏览器中&#xff0c;并提供一键下载功能&#xff0c;方便用户快速下载网页中的文件。今天&#xff0c;我们学习IDM下载速度只有1M&#xff0c; IDM下载速度不稳定什么原因的内容。 一、 IDM下载速度只有1M的原因 IDM&#xff08;Internet Download…

红酒与书籍:品味文字与酒香的双重享受

在静谧的夜晚&#xff0c;当一杯洒派红酒&#xff08;Bold & Generous&#xff09;与一本好书相遇&#xff0c;便是一场品味文字与酒香的双重享受。红酒的醇厚与书籍的深邃相互交织&#xff0c;带来的是一场心灵的盛宴&#xff0c;让人沉醉其中&#xff0c;忘却尘世的喧嚣。…

87. UE5 RPG 实现技能面板技能的升级降级功能

在上一篇文章里&#xff0c;我们实现技能面板里的技能按钮配置数据&#xff0c;在角色对应的等级后&#xff0c;会解锁对应的技能&#xff0c;并实现了监听玩家角色所拥有的技能点数。 在这一篇里&#xff0c;我们将实现&#xff0c;通过玩家所拥有的技能点数&#xff0c;对技能…

AI入门指南(二):算法、训练、模型、大模型是什么?

文章目录 一、前言二、算法是什么&#xff1f;概念实际应用 三、训练是什么&#xff1f;概念实际应用 四、模型是什么&#xff1f;概念实际应用小结 五、大模型是什么&#xff1f;概念模型和小模型有什么区别&#xff1f;大模型分类实际应用 六、总结七、参考资料 一、前言 人…

宠物空气净化器对浮毛有效果吗?宠物空气净化器十大排名使用体验

宠物空气净化器对浮毛有效果吗&#xff1f;宠物空气净化器能够通过过滤和吸附作用&#xff0c;减少室内空气中的浮毛。不过&#xff0c;随着宠物空气净化器市场的火爆&#xff0c;许多商家企图从中分一杯羹&#xff0c;为了快速的进入市场缺少产品的研发&#xff0c;导致市面上…

海南云亿商务咨询有限公司怎么样正规吗?

在这个日新月异的数字时代&#xff0c;电商行业正以前所未有的速度蓬勃发展&#xff0c;而抖音作为短视频与社交电商的完美融合体&#xff0c;更是开辟了一片充满无限可能的电商新蓝海。在这片浪潮中&#xff0c;海南云亿商务咨询有限公司凭借敏锐的市场洞察力和专业的服务能力…

docker部署datahub

快速安装&#xff0c;有网环境用&#xff0c;但是我没有用 pip3 install datahub datahub docker quickstart一、安装并启动datahub #python安装客户端 pip3 install datahub #导入镜像 (base) [rootb28-16p4p170-lijia lijia]# ls *.tar cp-kafka.tar datahub-ac…

【ARM】ARM Cortex 处理器详细讲解

目录 ARM Cortex处理器详细讲解1. Cortex-A系列1.1 概述1.2 架构和版本**ARMv7-A****ARMv8-A****ARMv9-A** 1.3 关键特性1.4 应用场景 2. Cortex-M系列2.1 概述2.2 架构和版本**ARMv6-M****ARMv7-M****ARMv8-M** 2.3 关键特性2.4 应用场景 3. Cortex-R系列3.1 概述3.2 架构和版…

SVM支持向量机(Support Vectors Mechine)

SVM支持向量机&#xff08;Support Vector Mechine&#xff09; SVM是一种监督学习算法&#xff0c;常用于解决二分类问题&#xff08;也可以解决多分类问题&#xff09;&#xff0c;它可以处理线性可分的数据&#xff0c;同时也可以处理线性不可分的数据&#xff0c;广泛应用…

力扣Hot100-230二叉搜索树中第K小的元素

&#xff08;一&#xff09;题目 给定一个二叉搜索树的根节点 root &#xff0c;和一个整数 k &#xff0c;请你设计一个算法查找其中第 k 小的元素&#xff08;从 1 开始计数&#xff09;。 示例 1&#xff1a; 输入&#xff1a;root [3,1,4,null,2], k 1 输出&#xff1a;…

人工智能系统测试的流程与生命周期

今天我们一起来看一下&#xff0c;人工智能系统究竟应该用什么样的流程和方法去进行测试呢&#xff1f; 首先我们一起来看一下&#xff0c;一个企业的人工智能产品部署和发布的一个流程&#xff0c;首先企业会从历史数据库中&#xff0c;利用数据去训练出一个初始的模型&#x…

【C++深度探索】红黑树实现Set与Map的封装

&#x1f525; 个人主页&#xff1a;大耳朵土土垚 &#x1f525; 所属专栏&#xff1a;C从入门至进阶 这里将会不定期更新有关C/C的内容&#xff0c;欢迎大家点赞&#xff0c;收藏&#xff0c;评论&#x1f973;&#x1f973;&#x1f389;&#x1f389;&#x1f389; 文章目录…