Estoy usando la regresión logística para predecir la probabilidad de que ocurra un evento. En última instancia, estas probabilidades se colocan en un entorno de producción, donde nos enfocamos lo más posible en alcanzar nuestras predicciones de "Sí". Por lo tanto, es útil para nosotros tener una idea de qué "aciertos" o "no aciertos" definitivos podrían ser a priori (antes de ejecutarse en producción), además de otras medidas que utilizamos para informar esta determinación.
Mi pregunta es, ¿cuál sería la forma correcta de predecir una clase definitiva (1,0) basada en la probabilidad pronosticada? Específicamente, uso el glmnet
paquete de R para mi modelado. Este paquete elige arbitrariamente la probabilidad de .5 como umbral para un sí o un no. Creo que necesito tomar los resultados de una regla de puntuación adecuada, basada en las probabilidades predichas, para extrapolar a una clase definitiva. A continuación se muestra un ejemplo de mi proceso de modelado:
mods <- c('glmnet', 'scoring')
lapply(mods, require, character.only = T)
# run cross-validated LASSO regression
fit <- cv.glmnet(x = df1[, c(2:100)]), y = df1[, 1], family = 'binomial',
type.measure = 'auc')
# generate predicted probabilities across new data
df2$prob <- predict(fit, type="response", newx = df2[, c(2:100)], s = 'lambda.min')
# calculate Brier score for each record
df2$propscore <- brierscore(df2[,1] ~ df2$prob, data = df2)
Entonces, ahora tengo una serie de puntajes de Brier para cada predicción, pero ¿cómo puedo usar el puntaje de Brier para ponderar adecuadamente cada probabilidad de ser un sí o un no?
Entiendo que también hay otros métodos para hacer esta determinación, como Random Forest.
fuente