El rendimiento de un modelo de aprendizaje por máquina puede caracterizarse en términos de sesgo y el variación de la modelo.
Un modelo con un alto sesgo hace fuertes suposiciones sobre la forma de la función subyacente desconocida que mapea las entradas a las salidas en el conjunto de datos, como la regresión lineal. Un modelo con alta varianza depende en gran medida de las características específicas del conjunto de datos de formación, como los árboles de decisión no podados. Deseamos modelos con bajo sesgo y baja varianza, aunque a menudo existe un equilibrio entre estas dos preocupaciones.
La compensación entre sesgo y variación es una conceptualización útil para seleccionar y configurar los modelos, aunque en general no se puede computar directamente ya que requiere un conocimiento completo del dominio del problema, que no tenemos. No obstante, en algunos casos, podemos estimar el error de un modelo y dividirlo en componentes de sesgo y varianza, lo que puede proporcionar una visión del comportamiento de un modelo determinado.
En este tutorial, descubrirá cómo calcular el sesgo y la varianza para un modelo de aprendizaje de una máquina.
Después de completar este tutorial, lo sabrás:
- El error del modelo consiste en la variación del modelo, el sesgo del modelo y el error irreducible.
- Buscamos modelos con bajo sesgo y varianza, aunque normalmente la reducción de uno resulta en un aumento del otro.
- Cómo descomponer el error cuadrático medio en términos de sesgo y varianza del modelo.
Ponga en marcha su proyecto con mi nuevo libro Maestría en el aprendizaje de la máquina con Python, incluyendo tutoriales paso a paso y el El código fuente de Python archivos para todos los ejemplos.
Empecemos.
Resumen del Tutorial
Este tutorial está dividido en tres partes; son:
- Sesgo, variación y error irreducible
- Intercambio de sesgo y variación
- Calcular el sesgo y la varianza
Sesgo, variación y error irreducible
Considere un modelo de aprendizaje de máquinas que hace predicciones para una tarea de modelado predictivo, como la regresión o la clasificación.
El rendimiento del modelo en la tarea puede describirse en términos de error de predicción en todos los ejemplos no utilizados para entrenar el modelo. Nos referiremos a esto como el error del modelo.
El error del modelo puede descomponerse en tres fuentes de error: el variación del modelo, el sesgo del modelo, y la variación de la error irreducible en los datos.
- Error(Modelo) = Varianza(Modelo) + Sesgo(Modelo) + Varianza(Error Irreducible)
Veamos más de cerca cada uno de estos tres términos.
Modelo de sesgo
El sesgo es una medida de lo cerca que el modelo puede capturar la función de mapeo entre las entradas y las salidas.
Capta la rigidez del modelo: la fuerza de la suposición que tiene el modelo sobre la forma funcional del mapeo entre entradas y salidas.
Esto refleja lo cerca que la forma funcional del modelo puede llegar a la verdadera relación entre los predictores y el resultado.
– Página 97, Applied Predictive Modeling, 2013.
Un modelo con un alto sesgo es útil cuando el sesgo coincide con la verdadera pero desconocida función cartográfica subyacente para el problema de modelación predictiva. Sin embargo, un modelo con un gran sesgo será completamente inútil cuando la forma funcional para el problema no coincida con los supuestos del modelo, por ejemplo, suponiendo una relación lineal para los datos con una alta relación no lineal.
- Bajo sesgo…: Débiles supuestos sobre la forma funcional del mapeo de entradas a salidas.
- Alto Sesgo: Fuertes supuestos sobre la forma funcional de la cartografía de los insumos a los productos.
El sesgo es siempre positivo.
Variación del modelo
La variación del modelo es la cantidad que cambia el rendimiento del modelo cuando se ajusta a diferentes datos de entrenamiento.
Capta el impacto de los detalles que los datos tienen en el modelo.
La variación se refiere a la cantidad en que [the model] cambiaría si lo estimamos usando un conjunto de datos de entrenamiento diferente.
– Página 34, una introducción al aprendizaje estadístico con aplicaciones en R, 2014.
Un modelo con alta varianza cambiará mucho con pequeños cambios en el conjunto de datos de entrenamiento. Por el contrario, un modelo con baja varianza cambiará poco con pequeños o incluso grandes cambios en el conjunto de datos de entrenamiento.
- Variación baja: Pequeños cambios en el modelo con cambios en el conjunto de datos de entrenamiento.
- Alta Variación: Grandes cambios en el modelo con cambios en el conjunto de datos de entrenamiento.
La variación es siempre positiva.
Error Irreducible
En general, el error de un modelo consiste en un error reducible y un error irreducible.
- Error del modelo = Error Reducible + Error Irreducible
El error reducible es el elemento que podemos mejorar. Es la cantidad que reducimos cuando el modelo está aprendiendo en un conjunto de datos de entrenamiento e intentamos que este número se acerque lo más posible a cero.
El error irreducible es el error que no podemos eliminar con nuestro modelo, o con cualquier modelo.
El error es causado por elementos fuera de nuestro control, como el ruido estadístico en las observaciones.
…usualmente llamado «ruido irreducible» y no puede ser eliminado por el modelado.
– Página 97, Applied Predictive Modeling, 2013.
Por lo tanto, aunque podamos aplastar el error reducible a un valor muy pequeño cercano a cero, o incluso cero en algunos casos, también tendremos algún error irreducible. Define un límite inferior en el rendimiento de un problema.
Es importante tener en cuenta que el error irreducible siempre proporcionará un límite superior en la exactitud de nuestra predicción para Y. Este límite es casi siempre desconocido en la práctica.
– Página 19, una introducción al aprendizaje estadístico con aplicaciones en R, 2014.
Es un recordatorio de que ningún modelo es perfecto.
Intercambio de sesgo y variación
El sesgo y la variación del rendimiento de un modelo están conectados.
Idealmente, preferiríamos un modelo con bajo sesgo y baja varianza, aunque en la práctica, esto es muy difícil. De hecho, esto podría describirse como el objetivo del aprendizaje aplicado de la máquina para un determinado problema de modelado predictivo,
La reducción del sesgo no puede lograrse fácilmente aumentando la varianza. Por el contrario, la reducción de la varianza puede lograrse fácilmente aumentando el sesgo.
Esto se denomina una compensación porque es fácil obtener un método con un sesgo extremadamente bajo pero con una alta varianza […] o un método con muy baja varianza pero con alto sesgo…
– Página 36, una introducción al aprendizaje estadístico con aplicaciones en R, 2014.
Esta relación se conoce generalmente como la compensación entre sesgo y variación. Es un marco conceptual para pensar en cómo elegir los modelos y la configuración de los mismos.
Podemos elegir un modelo basado en su sesgo o variación. Los modelos simples, como la regresión lineal y la regresión logística, generalmente tienen un alto sesgo y una baja varianza. Los modelos complejos, como el de bosque aleatorio, generalmente tienen un sesgo bajo pero una alta varianza.
También podemos elegir las configuraciones del modelo en función de su efecto sobre el sesgo y la varianza del modelo. El hiperparámetro k en los vecinos más cercanos controla el equilibrio entre el sesgo y la varianza. Los valores pequeños, como k=1, dan como resultado un bajo sesgo y una alta varianza, mientras que los valores grandes de k, como k=21, dan como resultado un alto sesgo y una baja varianza.
Un alto sesgo no siempre es malo, ni tampoco una alta varianza, pero pueden llevar a resultados pobres.
A menudo debemos probar un conjunto de diferentes modelos y configuraciones de modelos para descubrir qué es lo que mejor funciona para un conjunto de datos determinado. Un modelo con un gran sesgo puede ser demasiado rígido y no encajar en el problema. Por el contrario, una gran variación puede encajar en el problema.
Podemos decidir aumentar el sesgo o la varianza siempre y cuando disminuya la estimación global del error del modelo.
Calcular el sesgo y la varianza
Me hacen esta pregunta todo el tiempo:
¿Cómo puedo calcular la compensación de sesgo-varianza de mi algoritmo en mi conjunto de datos?
Técnicamente, no podemos realizar este cálculo.
No podemos calcular el sesgo y la varianza reales para un problema de modelación predictiva.
Esto se debe a que no conocemos la verdadera función de mapeo para un problema de modelado predictivo.
En su lugar, utilizamos el sesgo, la varianza, el error irreducible y la compensación entre sesgo y varianza como herramientas para ayudar a seleccionar los modelos, configurar los modelos e interpretar los resultados.
En una situación de la vida real en la que f no se observa, por lo general no es posible calcular explícitamente la prueba MSE, el sesgo o la varianza para un método de aprendizaje estadístico. Sin embargo, uno siempre debe tener en cuenta la compensación entre sesgo y varianza.
– Página 36, una introducción al aprendizaje estadístico con aplicaciones en R, 2014.
Aunque la compensación entre sesgo y variación es una herramienta conceptual, podemos estimarla en algunos casos.
La librería mlxtend de Sebastian Raschka proporciona la función bias_variance_decomp() que puede estimar el sesgo y la varianza de un modelo sobre múltiples muestras bootstrap.
Primero, debe instalar la biblioteca mlxtend; por ejemplo:
El siguiente ejemplo carga el conjunto de datos de viviendas de Boston directamente a través de la URL, lo divide en trenes y conjuntos de pruebas, y luego estima el error cuadrado medio (MSE) para una regresión lineal, así como el sesgo y la varianza para el error del modelo sobre 200 muestras de bootstrap.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# Estimar el sesgo y la varianza para un modelo de regresión de pandas importación read_csv de sklearn.model_selection importación prueba_de_trenes_split de sklearn.modelo_lineal importación LinearRegression de mlxtend.evalúa importación bias_varianza_descomposición # Cargar conjunto de datos url = ‘https://raw.githubusercontent.com/jbrownlee/Datasets/master/housing.csv’ dataframe = read_csv(url, encabezado=Ninguno) # Separados en entradas y salidas datos = dataframe.valores X, y = datos[[:, :–1], datos[[:, –1] # Dividir los datos X_tren, X_test, y_tren, y_test = prueba_de_trenes_split(X, y, tamaño_de_prueba=0.33, estado_aleatorio=1) # Definir el modelo modelo = LinearRegression() # Estimar el sesgo y la varianza mse, sesgo, var = bias_variance_decomp(modelo, X_tren, y_tren, X_test, y_test, pérdida=«mse, num_rounds=200, random_seed=1) # Resumir los resultados imprimir(«MSE: %.3f % mse) imprimir(‘Sesgo: %.3f’ % sesgo) imprimir(‘Variación: %.3f’ % var) |
La ejecución del ejemplo informa del error estimado, así como del sesgo y la varianza estimados para el error del modelo.
Sus resultados específicos pueden variar dada la naturaleza estocástica de la rutina de evaluación. Intente ejecutar el ejemplo unas cuantas veces.
En este caso, podemos ver que el modelo tiene un alto sesgo y una baja varianza. Esto es de esperar dado que estamos usando un modelo de regresión lineal. También podemos ver que la suma de la media y la varianza estimadas es igual al error estimado del modelo, por ejemplo, 20,726 + 1,761 = 22,487.
MSE: 22.487 Sesgo: 20.726 Variación: 1.761 |