17 votos

¿Por qué utilizar la escala de Platt?

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))

13voto

Xenph Yan Puntos 20883

Le sugiero que consulte la página wikipedia de regresión logística . Establece que, en el caso de una variable dependiente binaria, la regresión logística asigna los predictores a la probabilidad de aparición de la variable dependiente. Sin ninguna transformación, la probabilidad utilizada para entrenar el modelo es 1 (si y es positiva en el conjunto de entrenamiento) o 0 (si y es negativa).

Así que..: En lugar de utilizar los valores absolutos 1 para la clase positiva y 0 para la clase negativa al ajustar $p_i=\frac{1}{(1+exp(A*f_i+B))}$ (donde $f_i$ es la salida no calibrada de la SVM), Platt sugiere utilizar la transformación mencionada para permitir que la etiqueta opuesta aparezca con cierta probabilidad. De este modo se introduce cierta regularización. Cuando el tamaño del conjunto de datos llega a infinito, $y_+$ se convertirá en 1 y $y_{-}$ será cero. Para más detalles, consulte el documento original de Platt .

5voto

John Richardson Puntos 1197

Otro método para evitar el sobreajuste que me ha resultado útil es ajustar el modelo de regresión logística univariante a la salida de validación cruzada de exclusión de la SVM, que puede aproximarse eficientemente utilizando la función Límite de extensión .

Sin embargo, si se desea un clasificador que produzca estimaciones de la probabilidad de pertenencia a una clase, sería mejor utilizar la regresión logística kernel, cuyo objetivo es hacerlo directamente. La salida de la SVM está diseñada para la clasificación discreta y no contiene necesariamente la información necesaria para la estimación precisa de las probabilidades de distancia del contorno p = 0,5.

Clasificadores de procesos gaussianos son otra buena opción si desea un clasificador probabilístico basado en kernel.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X