小编Nal*_*cal的帖子

通过 caret 包在 KNN 中使用 F1 分数度量

我尝试使用 F1 分数来确定哪个 k 值可以最大化模型以达到其给定的目的。模型是通过包train中的函数制作的caret

示例数据集: https: //www.kaggle.com/lachster/churndata

我当前的代码包括以下内容(作为 f1 分数的函数):

f1 <- function(data, lev = NULL, model = NULL) {
    precision <- posPredValue(data$pred, data$obs, positive = "pass")
    recall <- sensitivity(data$pred, data$obs, positive = "pass")
    f1_val <- (2*precision*recall) / (precision + recall)
    names(f1_val) <- c("F1")
    f1_val
}
Run Code Online (Sandbox Code Playgroud)

以下为列车控制:

train.control <- trainControl(method = "repeatedcv", number = 10, repeats = 3, 
summaryFunction = f1, search = "grid")
Run Code Online (Sandbox Code Playgroud)

以下是我最终执行的命令train

x <- train(CHURN ~. , 
  data = experiment, …
Run Code Online (Sandbox Code Playgroud)

r machine-learning r-caret

4
推荐指数
1
解决办法
2428
查看次数

标签 统计

machine-learning ×1

r ×1

r-caret ×1