我有200名患者被分配到训练和验证组,比例为2:1。我使用GLMNET的插入符来训练一个允许预测二元表型的分类器:
splitSample <- createDataPartition(phenotype, p = 0.66, list = FALSE)
training_expression <- expression[splitSample,]
training_phenotype <- phenotype[splitSample]
validation_expression <- expression[-splitSample,]
validation_phenotype <- phenotype[-splitSample]
eGrid <- expand.grid(.alpha=seq(0,1,by=0.1),.lambda=seq(0,1,by=0.01))
Control <- trainControl(number=10, repeats=1, verboseIter=FALSE, classProbs=TRUE, summaryFunction=twoClassSummary, method="cv")
netFit <- train(x =training_expression, y = training_phenotype,method = "glmnet", metric = "ROC", tuneGrid=eGrid,trControl = Control)
netFitPerf <- getTrainPerf(netFit)
predict_validation <- predict(netFit, newdata = validation_expression)
confusionMatrix(predict_validation,validation_phenotype)
“predict_validation”包含验证集中每位患者的预测表型标签 - 是否有任何有效方法可以为训练集中的每位患者获得“预测”表型标签,即最终预测所有患者的表型标签(这对于进一步进行统计分析很重要,例如将所有患者的预测表型标签与其他参数(例如其与年龄或存活率等的相关性)进行比较?任何想法?
感谢您的帮助!
答案 0 :(得分:1)
使用训练集中的保持预测非常重要;只是重新预测它们会导致过度拟合价值。
如果您使用选项trainControl(savePredictions = "final")
,train
对象将有一个名为pred
的元素,其中包含保留预测。
最大