Estoy usando glmnet
donde mi variable dependiente es binaria (clase 0, clase 1). Quiero informar porcentaje de exactitud del modelo. Así que el uso de la predict
función para mi conjunto de datos de prueba. Sin embargo, los valores obtenidos son en decimales en lugar de ser 0 y 1. Así que me puse un umbral de 0.5
, es decir, si el valor de la predicción > 0.5, lo considero como 1 y si el valor predicho <= 0.5, considero que es 0. A continuación, he creado una matriz de confusión mediante la comparación de la predicción de valores reales y de mis datos de prueba. A partir de este encuentro la exactitud. He pegado mi código de ejemplo siguiente. No estoy seguro de si este es el enfoque correcto para informar de la exactitud de porcentaje para un glmnet
modelo de predicción de un binario de la variable dependiente.
data <- read.csv('datafile', header=T)
mat <- as.matrix(data)
X <- mat[, c(1:ncol(mat)-1)]
y <- mat[, ncol(mat)]
fit <- cv.glmnet(X, y, family="binomial", type.measure="class", alpha=0.1)
t <- 0.2*nrow(mat) #20% of data
t <- as.integer(t)
testX <- mat[1:t, 1:ncol(mat)-1]
predicted_y <- predict(fit, s=0.01, testX, type='response')
predicted_y[predicted_y>0.5] <- 1
predicted_y[predicted_y<=0.5] <- 0
Yactual <- mat[1:t, ncol(mat)]
confusion_matrix <- ftable(Yactual, predicted_y)
accuracy <- 100* (sum(diag(confusion_matrix)) / length(predicted_y))