我使用插入符号来进行非二进制(三个类)决策树分类。我的数据集是倾斜的,所以我想使用F1而不是准确性来进行培训和测试。我该怎么设置这个?
对于MWE,我们可以预测钻石数据集中的切割:
library(ggplot2)
library(caret)
inTrain <- createDataPartition(diamonds$cut, p=0.75, list=FALSE)
training <- diamonds[inTrain,]
testing <- diamonds[-inTrain,]
fitModel <- train(cut ~ ., training, method = "rpart")如何在这里使用F1?
发布于 2016-01-13 17:00:34
http://topepo.github.io/caret/training.html的页面详细介绍了如何为列车功能创建一个新的度量-
你需要创建一个有三个参数的新函数-
该函数应该计算数据对象中观察到的标签和预测标签的F评分,并根据度量命名结果-
例如,函数的计算精度。
summaryStats <- function (data, lev = NULL, model = NULL) {
cor <- sum(data$pred==data$obs)
incor <- sum(data$pred!=data$obs)
out <- cor/(cor + incor)
names(out) <- c("acc")
out
} 然后创建一个新的trainControl对象并训练您的模型--
fitControl <- trainControl(summaryFunction = summaryStats)
fitModel <- train(cut ~ ., training, trControl = fitControl, metric = "acc", maximize=TRUE) https://stackoverflow.com/questions/34771852
复制相似问题