Hoy nuestro profesor dijo en clase que "sobreajuste con clasificadores lineales no es posible". Tengo que ser malo, ya que incluso lineal de los clasificadores pueden ser sensibles a los valores extremos en el conjunto de entrenamiento - tomar por ejemplo un duro margen de la Máquina de Soporte Vectorial: Una sola ruidoso datapoint puede alterar el cual hyperplane será utilizado para separar los conjuntos de datos. O estoy equivocado? Obviamente, la linealidad probablemente prevenir en lugar de sobreajuste debido a la disminución de la complejidad del modelo, todavía no veo por qué el sobreajuste debería ser imposible. Un punto adicional es que cuando traté de pensar acerca de este problema me di cuenta de que "sobreajuste" no parece estar formalmente definidos. ¿Por qué es eso? No alguna medida de distancia entre la formación y el conjunto de pruebas de rendimiento permite ese tipo de formalización? Gracias
Respuesta
¿Demasiados anuncios?Una regresión lineal / clasificador puede absolutamente ser overfit si se utiliza sin el cuidado adecuado.
He aquí un pequeño ejemplo. Vamos a crear dos vectores, el primero es simplemente $5000$ random coin flips:
set.seed(154)
N <- 5000
y <- rbinom(N, 1, .5)
El segundo vector es $5000$ observaciones, cada asignados aleatoriamente a uno de $500$ random clases:
N.classes <- 500
rand.class <- factor(sample(1:N.classes, N, replace=TRUE))
No debe haber ninguna relación entre nuestros lanzamientos y
y aleatorios, clases rand.class
, estaban decididos de forma totalmente independiente.
Sin embargo, si intentamos predecir el azar flip con la clase al azar mediante regresión logística (un clasificador lineal), seguro que piensa que no hay una relación
M <- glm(y ~ rand.class, family="binomial")
hist(coef(M), breaks=50)
El verdadero valor de cada uno de estos coeficientes es cero. Pero como usted puede ver, tenemos una gran difusión. Este clasificador lineal es seguro overfit.
Nota: Los extremos en este histograma, donde los coeficientes se han desviado a $-15$$15$, son los casos donde una clase tenido ninguna observaciones con y == 1
o no los valores de con y == 0
. El real estimado de los valores de estos coeficientes son más y menos infinito, pero el algoritmo de regresión logística está codificado con un límite de $15$.
"sobreajuste" no parece estar formalmente definidos. ¿Por qué es eso?
El sobreajuste puede ser mejor entendido en el contexto de una clase de modelos que tiene cierta complejidad parámetro. En este caso, un modelo podría decirse que es overfit cuando la disminución de la complejidad ligeramente mejores resultados esperados de rendimiento de ejemplo.
Sería muy difícil de definir con precisión el concepto en un modelo de manera independiente. Un modelo único, se acaba de encajar, usted necesita algo para comparar para estar por encima o por debajo de ajuste. En mi ejemplo anterior esta comparación fue con la verdad, pero por lo general no saben la verdad, por lo tanto el modelo!
No alguna medida de distancia entre la formación y el conjunto de pruebas de rendimiento permite ese tipo de formalización?
Hay un concepto, que se llama el optimismo. Se define por:
$$ \omega = E_{\text{test}} - E_{\text{train}} $$
where $E$ gradas para el error, y cada término es promediado sobre todos los posibles conjuntos de pruebas y entrenamiento para su algoritmo de aprendizaje.
No acaba de llegar a la esencia de sobreajuste, aunque, debido a que el rendimiento en una prueba de conjunto puede ser un poco peor que el tren, aunque un modelo de mayor complejidad disminuye tanto.