¿Cuándo no debo usar un clasificador de conjunto?

17

En general, en un problema de clasificación donde el objetivo es predecir con precisión la pertenencia a una clase fuera de la muestra, ¿cuándo no debo usar un clasificador de conjunto?

Esta pregunta está estrechamente relacionada con ¿Por qué no usar siempre el aprendizaje conjunto? . Esa pregunta pregunta por qué no usamos conjuntos todo el tiempo. Quiero saber si hay casos en los que se sabe que los conjuntos son peores (no solo "no mejores y una pérdida de tiempo") que un equivalente sin conjunto.

Y por "clasificador de conjunto" me refiero específicamente a clasificadores como AdaBoost y bosques aleatorios, en lugar de, por ejemplo, una máquina de vectores de soporte reforzada roll-your-own.

Shadowtalker
fuente
2
No usaría métodos de conjunto si no tienes diversidad entre los métodos individuales. En otras palabras, el conjunto es útil cuando combina un conjunto diverso de métodos.
pronosticador
2
@forecaster No pude evitar agregar un muy buen artículo sobre lo que los autores llaman diversidad "buena" y "mala" pages.bangor.ac.uk/~mas00a/papers/gblkMCS10.pdf en el contexto de los conjuntos
Vladislavs Dovgalecs
@xeon buen artículo. independientemente de los métodos de aprendizaje automático, ya sea bosque aleatorio o conjunto (que combina) diferentes métodos, la diversidad definitivamente ayuda. Hay una fuerte teoría detrás de esto y se llama y b i o l o g i c a l l y i n s p i r e d . norteuntturmisiyoolosolyoCunlly yonortespagyormire
pronosticador

Respuestas:

7

El modelo más cercano al verdadero proceso de generación de datos siempre será el mejor y superará a la mayoría de los métodos de conjunto. Entonces, si los datos provienen de un proceso lineal, lm () será muy superior a los bosques aleatorios, por ejemplo:

    set.seed(1234)
p=10
N=1000
#covariates
x = matrix(rnorm(N*p),ncol=p)
#coefficients:
b = round(rnorm(p),2)
y = x %*% b + rnorm(N)
train=sample(N, N/2)
data = cbind.data.frame(y,x)
colnames(data) = c("y", paste0("x",1:p))
#linear model
fit1 = lm(y ~ ., data = data[train,])
summary(fit1)
yPred1 =predict(fit1,data[-train,])
round(mean(abs(yPred1-data[-train,"y"])),2)#0.79

library(randomForest)
fit2 = randomForest(y ~ ., data = data[train,],ntree=1000)
yPred2 =predict(fit2,data[-train,])
round(mean(abs(yPred2-data[-train,"y"])),2)#1.33
Markus Loecher
fuente
13

No recomiendo usar un clasificador de conjunto cuando su modelo debe ser interpretable y explicable. A veces necesitas predicciones y explicaciones de las predicciones.

Cuando necesita convencer a la gente de que vale la pena creer en las predicciones, un modelo altamente preciso puede ser muy persuasivo, pero me ha costado convencer a las personas para que actúen según las predicciones cuando los métodos son demasiado complejos para su nivel de comodidad.

En mi experiencia, la mayoría de las personas se sienten cómodas con modelos aditivos lineales, modelos que podrían puntuar a mano, y si intentas explicar el refuerzo adaptativo, los hiperplanos y los efectos de interacción de 5º nivel, responderán como si les estuvieras lanzando magia negra.

Por otro lado, las personas pueden sentirse cómodas con la complejidad del modelo, pero aún así quieren internalizar alguna idea. Los científicos, por ejemplo, podrían no considerar un modelo de caja negra como un avance en el conocimiento humano, incluso si el modelo es altamente preciso.

El análisis de importancia variable puede ayudar con las percepciones, pero si el conjunto es más preciso que un modelo aditivo lineal, el conjunto probablemente esté explotando algunos efectos no lineales y de interacción que el análisis de importancia variable no puede explicar por completo.

Brandco
fuente
No era lo que buscaba, sino buenos puntos. +1
shadowtalker
3

Me gustaría agregar a la respuesta de branco. Los conjuntos pueden ser altamente competitivos y proporcionar muy buenos resultados. En lo académico, por ejemplo, esto es lo que cuenta. En la industria, los conjuntos pueden ser demasiado difíciles de implementar / mantener / modificar / portar. El trabajo de Goef Hinton sobre "Conocimiento oscuro" es exactamente sobre esto: cómo transferir el "conocimiento" de un conjunto grande en un modelo fácil de mover. Afirma que los conjuntos son malos en el momento de la prueba: son muy redundantes y el tiempo de cálculo puede ser preocupante.

Su equipo obtuvo algunos resultados interesantes, sugiero revisar sus publicaciones o al menos las diapositivas. Si mi memoria es buena, este fue uno de los temas candentes de 2013 o 2014.

Las diapositivas sobre Dark Knowledge se pueden encontrar aquí: http://www.ttic.edu/dl/dark14.pdf

Vladislavs Dovgalecs
fuente