使用R语言对影像组学数据进行处理
library(caret);library(glmnet);library(pROC)
set.seed(123456)
data <- read.csv("data.csv", header = T)
p.data <- preProcess(data[,-1],method = c("center","scale","corr"))
P.data <- predict(p.data,newdata = data[,-1])
lasso.x <- as.matrix(P.data);lasso.y <- as.matrix(data[,1])
lasso.cv <- cv.glmnet(x = lasso.x,y = lasso.y,family = "binomial",type.measure = "auc")
lasso <- glmnet(x = lasso.x,y = lasso.y,family = "binomial")
number <- which(coef(lasso,s = lasso.cv$lambda.min) != 0)
signature <- colnames(P.data[number - 1])
print(signature)
rad.model <- glm(y~.,data = data.frame(y = data[,1], data[signature]))
radscore <- predict(rad.model)
roc(data[,1],radscore)
运行结果:筛选出27个特征,总体诊断性能0.9974
[1] "T2_original_glcm_Id"

该博客展示了如何利用R语言的caret, glmnet和pROC库对影像组学数据进行预处理、特征选择和模型构建。通过glmnet包进行Lasso回归,筛选出27个关键特征,包括T2和DWI原始图像的纹理和第一阶统计特征,以及ADC图像的相关指标。最终模型的AUC达到0.9974,显示出优秀的诊断性能。
764

被折叠的 条评论
为什么被折叠?



