首页 > 解决方案 > 如何从此代码中获得准确性和灵敏度?

问题描述

我正在学习 EdX(这里)的机器学习课程。在其中一项练习中,他们要求运行代码以获得最大灵敏度的截止。现在的问题是,我已经尝试运行该代码超过 5 个小时,试图弄错。但无论我做什么,y_hat 的值都变成了 NA。有人可以帮忙吗!

这是我所做的:

library(dslabs)
library(dplyr)
library(lubridate)
library(purrr)
library(caret)

data(iris)
iris <- iris[-which(iris$Species=='setosa'),]
y <- iris$Species

set.seed(2)
test_index <- createDataPartition(y,times=1,p=0.5,list=FALSE)
test <- iris[test_index,]
train <- iris[-test_index,]
train_species<- train$Species %>% factor(levels=c("versicolor", "virginica")) 
test_species<- test$Species %>% factor(levels=c("versicolor", "virginica")) 

cutoff <- seq(5, 7.9, by=0.1)
accuracy <- map_dbl(cutoff, function(x){
  y_hat <- ifelse(train$Sepal.Length > x, "Virginica", "Versicolor") 
  mean(y_hat == train_species)
})
mean(y_hat == train_species)
y_hat <- ifelse(train$Sepal.Length > 6, "Virginica", "Versicolor")
train_species
y_hat

我正在尝试获取不同截止水平的准确度图表

标签: rmachine-learningr-caret

解决方案


推荐阅读