machine learning - machine - cómo usar el peso al entrenar a un alumno débil para adaboost
gradiente boosting machine (2)
El siguiente es un algoritmo adaboost:
Se menciona "usar pesos wi en los datos de entrenamiento" en la parte 3.1.
No tengo muy claro cómo usar los pesos. ¿Debo volver a muestrear los datos de entrenamiento?
Los pesos son los valores aplicados a cada ejemplo (muestra) en el paso 2. Estos pesos se actualizan en el paso 3.3 (wi).
Entonces, inicialmente todos los pesos son iguales (paso 2) y aumentan para los datos clasificados incorrectamente y disminuyen para los datos correctamente clasificados. Por lo tanto, en el paso 3.1 debe tomar este valor en cuenta para determinar un nuevo clasificador, dando más importancia a valores de peso más altos. Si no cambió el peso, produciría exactamente el mismo clasificador cada vez que ejecuta el paso 3.1.
Estos pesos solo se usan con fines de capacitación, no son parte del modelo final.
No tengo muy claro cómo usar los pesos. ¿Debo volver a muestrear los datos de entrenamiento?
Depende de qué clasificador estés usando.
Si su clasificador puede tener en cuenta el peso de la instancia (ejemplos de entrenamiento ponderado), no necesita volver a muestrear los datos. Un clasificador de ejemplo podría ser un clasificador de bayes ingenuo que acumula recuentos ponderados o un clasificador ponderado de k-vecino más cercano.
De lo contrario, desea volver a muestrear los datos utilizando el peso de la instancia, es decir, aquellas instancias con más pesos se podrían muestrear varias veces; mientras que aquellas instancias con poco peso podrían no aparecer en los datos de entrenamiento. La mayoría de los otros clasificadores entran en esta categoría.
En la práctica
De hecho, en la práctica, el aumento del rendimiento se comporta mejor si solo se basa en un grupo de clasificadores muy ingenuos, p. Ej., Tocón de decisión, discriminante lineal. En este caso, el algoritmo que enumeró tiene una forma fácil de implementar (vea aquí para más detalles): Donde alfa es elegido por (épsilon se define de manera similar a la tuya).
Un ejemplo
Defina un problema de dos clases en el plano (por ejemplo, un círculo de puntos dentro de un cuadrado) y construya un clasificador fuerte de un grupo de discriminantes lineales generados aleatoriamente del signo de tipo (ax1 + bx2 + c).
Las dos etiquetas de clase están representadas con cruces rojas y puntos azules. Aquí estamos usando un grupo de discriminantes lineales (líneas amarillas) para construir el grupo de clasificadores ingenuos / débiles. Generamos 1000 puntos de datos para cada clase en el gráfico (dentro del círculo o no) y el 20% de los datos se reserva para la prueba.
Este es el resultado de la clasificación (en el conjunto de datos de prueba) que obtuve, en el que utilicé 50 discriminantes lineales. El error de entrenamiento es 1.45% y el error de prueba es 2.3%