gpt4 book ai didi

R包,Caret RFE函数,如何自定义metric使用AUC?

转载 作者:行者123 更新时间:2023-12-04 11:33:51 24 4
gpt4 key购买 nike

我想使用 AUC 作为性能度量,但 RFE 仅支持 RMSE、RSquared、Accuracy、Kappa。如何使用自定义指标,例如 auc?

最佳答案

您必须指定一个自定义 summaryFunction()在您的 trainControl() 内对象,然后从 summaryFunction() 中选择适当的部分指标. Caret 还包括一个名为 twoClassSummary() 的 AUC 函数。所以你甚至没有自己写的。下面是一个例子:

> library(caret)
> iris <- iris[1:100,]
> iris$Species <- as.factor(as.character(iris$Species))
>
> tc <- trainControl(method="cv",summaryFunction=twoClassSummary,classProb=T)
> train.rf <- train(Species ~ .,data=iris, method="rf", trControl=tc, metric = "ROC")
> train.rf
100 samples
4 predictors
2 classes: 'setosa', 'versicolor'

No pre-processing
Resampling: Cross-Validation (10 fold)

Summary of sample sizes: 90, 90, 90, 90, 90, 90, ...

Resampling results across tuning parameters:

mtry ROC Sens Spec ROC SD Sens SD Spec SD
2 1 1 1 0 0 0
3 1 1 1 0 0 0
4 1 1 1 0 0 0

ROC was used to select the optimal model using the largest value.
The final value used for the model was mtry = 2.

编辑:刚刚意识到你想要它 rfe() - 同样的事情成立,但您必须以相同的方式编辑 rfeFuncs 对象的“摘要”元素。前任:
rfFuncs$summary <- twoClassSummary
rfe(iris[,-5],iris[,5],rfeControl = rfeControl(rfFuncs), s=2:3,metric="ROC")
Recursive feature selection

Outer resampling method: Bootstrap (25 reps)

Resampling performance over subset size:

Variables ROC Sens Spec ROCSD SensSD SpecSD Selected
2 1 1 1 0 0 0 *
3 1 1 1 0 0 0
4 1 1 1 0 0 0

The top 2 variables (out of 2):
Petal.Width, Petal.Lengt

关于R包,Caret RFE函数,如何自定义metric使用AUC?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18242692/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com