Para calibrar un nivel de confianza a una probabilidad en el aprendizaje supervisado (por ejemplo, para asignar la confianza de una SVM o un árbol de decisión utilizando datos sobremuestreados), un método es utilizar la Escala de Platt (por ejemplo, Obtención de probabilidades calibradas a partir de Boosting ).
Básicamente se utiliza la regresión logística para mapear $[-\infty;\infty]$ a $[0;1]$ . La variable dependiente es la etiqueta verdadera y el predictor es la confianza del modelo sin calibrar. Lo que no entiendo es el uso de una variable objetivo distinta de 1 o 0. El método pide la creación de una nueva "etiqueta":
Para evitar el sobreajuste del conjunto de entrenamiento sigmoide, se utiliza un modelo fuera de muestra. Si hay $N_+$ ejemplos positivos y $N_-$ ejemplos negativos en el conjunto de entrenamiento, para cada ejemplo de entrenamiento la calibración de Platt utiliza valores objetivo $y_+$ y $y_-$ (en lugar de 1 y 0, respectivamente), $$ y_+=\frac{N_++1}{N_++2};\quad\quad y_-=\frac{1}{N_-+2} $$
Lo que no entiendo es la utilidad de este nuevo objetivo. No es la regresión logística simplemente va a tratar la variable dependiente como una etiqueta binaria (independientemente de la etiqueta que se da)?
ACTUALIZACIÓN:
Encontré que en SAS cambiando el dependiente de $1/0$ a otra cosa volvía al mismo modelo (utilizando PROC GENMOD
). Quizás error mío o quizás falta de versatilidad de SAS. Pude cambiar el modelo en R. Como ejemplo:
data(ToothGrowth)
attach(ToothGrowth)
# 1/0 coding
dep <- ifelse(supp == "VC", 1, 0)
OneZeroModel <- glm(dep~len, family=binomial)
OneZeroModel
predict(OneZeroModel)
# Platt coding
dep2 <- ifelse(supp == "VC", 31/32, 1/32)
plattCodeModel <- glm(dep2~len, family=binomial)
plattCodeModel
predict(plattCodeModel)
compare <- cbind(predict(OneZeroModel), predict(plattCodeModel))
plot(predict(OneZeroModel), predict(plattCodeModel))