调教漫画
无极色 你的位置:调教漫画 > 无极色 > 高中 自拍偷拍 机器学习模子SHAP诠释注解——R说话

高中 自拍偷拍 机器学习模子SHAP诠释注解——R说话

发布日期:2024-09-08 17:06    点击次数:89

高中 自拍偷拍 机器学习模子SHAP诠释注解——R说话

SHAP(SHapley Additive exPlanations)看成一种诠释注解机器学习模子输出的才能,基于Shapley值表面,通过将模子臆测成果领悟为每个特征的孝顺高中 自拍偷拍,为模子提供全局和局部的可诠释注解性。

图片

SHAP看成机器学习模子的诠释注解用具,依然是一项要害冲破。

在处罚医知识题时,咱们时时通过构建模子,来寻找病因。此处,会有歧义,谈谈个东谈见地解,此种诠释注解并非因果联系,与Logistic转头的OR值有区别,此种诠释注解不是因果诠释注解,咱们不可因为臆测变量shap值孝顺大,而以为这个变量是结局变量的危急成分。这种联系,只可诠释由于变量的孝顺,能在多猛进度上加多臆测模子的准确率。

现时阶段,SHAP收尾才能,大大宗是基于Python,跟着算法的流行,R说话也有了有关的SHAP诠释注解。然而R的SHAP诠释注解,现在专揽的包是shapviz,这个包仅能对Xgboost、LightGBM以及H2O模子进行诠释注解,其余的机器学习模子并不适用。

图片

这里通过例如,来展示shap模子的R收尾:

动漫av

通过Xgboost模子来臆测结直肠癌肝滚动。临了一列是Liver,0代表未滚动,1代表肝滚动

图片

加载有关的包高中 自拍偷拍,读入数据

#install.packages('shapviz')library(shapviz)#install.packages('xgboost')library(xgboost)library(caret)library(pROC)library(tibble)library(ROCit)data =read.csv('data.csv',header = T,check.names = F)

2.通过caret包辞别进修集和测试集数据

# 辞别进修集和测试集set.seed(123)#树立随即数inTrain<-createDataPartition(y=data[,'Liver'], p=0.7, list=F)#辞别进修集,树立进修集的比例为0.7traindata<-data[inTrain,]#索求进修集数据testdata<-data[-inTrain,]#索求考据集数据

3.构建Xgboost模子

model_xgboost = xgboost( data = as.matrix(traindata[,c(1:(ncol(traindata)-1))]),#进修集的自变量矩阵 label = traindata$Liver, max_depth = 3, eta = 1, nthread = 2, nrounds = 10, objective = 'binary:logistic')

4.模子的臆测成果

#生成臆测值traindata$pred <- predict(model_xgboost, as.matrix(traindata[,c(1:(ncol(traindata)-1))]))#计较AUCROC_train <- round(auc(response=traindata$Liver,predictor=traindata$pred),4)ROC_train#计较置信区间CI_train=ci(response=traindata$Liver,predictor=traindata$pred)CI_train#通过阿谁paste0贯穿AUC_CI_train=paste0('AUC=',round(CI_train[2],3),',95%CI (',round(CI_train[1],3),' - ',round(CI_train[3],3),')')AUC_CI_train

5.绘制ROC弧线

这里好意思化图片的原因是,中华系列杂志需要这么去画图。

#整理数据,好意思化图片ROC_data <- rocit(score=traindata$pred,class=traindata$Liver)m1=tibble( name='Model', TPR=ROC_data$TPR, FPR=ROC_data$FPR, AUC=AUC_CI_test)pdf('ROC_train.pdf',5,5,family = 'serif')ggplot(m1,aes(x = FPR, y = TPR)) geom_path() labs(title= ' ', x = 'False Positive Rate (1-Specificity)', y = 'True Positive Rate (Sensitivity)') geom_abline(lty = 3) theme_classic() annotate('text', x = 0.6 , y = 0.2,label = AUC_CI_test,colour='black') scale_y_continuous(expand=c(0,0)) scale_x_continuous(expand=c(0,0)) theme( axis.ticks.length=unit(-0.1, 'cm'), legend.position = c(0.7, 0.2), legend.title = element_blank(), strip.background = element_blank(), text = element_text(size = 15,color='black')#face='bold'  )

图片

6.计较shap值并画图

#计较shap值shap_xgboost = shapviz(model_xgboost, X_pred = as.matrix(traindata[,c(1:(ncol(traindata)-2))]))#绘制单个样本瀑布图sv_waterfall(shap_xgboost,row_id = 10)#row_id指定样本

图片

#单个样本力争sv_force(shap_xgboost,row_id = 2)

图片

#绘制变量热切性蜂群图sv_importance(shap_xgboost,kind = 'beeswarm')

图片

这里图片的配景是灰色的,这里的函数均是基于ggplot2绘制的,因此咱们不错通过添加theme主题函数,来修改图片的配景

#去掉图片灰色配景sv_importance(shap_xgboost,kind = 'beeswarm') theme_bw()

图片

#变量热切性柱状图sv_importance(shap_xgboost) theme_bw()

图片

#单个变量依赖图sv_dependence(shap_xgboost, 'T', alpha = 0.5, size = 1.5, color_var = NULL) theme_bw()

图片

#多个变量偏有关依赖图sv_dependence(shap_xgboost,               v = c('Sex',                    'Grade',                    'Histologic',                    'Surg')) theme_bw()

图片

以上即是基于R说话收尾了Xgboost模子的诠释注解。

有需要R说话陶冶高中 自拍偷拍,机器学习模子构建,生物信息学分析的伙伴,不错后台私信!

本站仅提供存储做事,总共执行均由用户发布,如发现存害或侵权执行,请点击举报。

Powered by 调教漫画 @2013-2022 RSS地图 HTML地图

Copyright Powered by站群系统 © 2013-2024