Quando não devo usar um classificador de conjunto?

17

Em geral, em um problema de classificação em que o objetivo é prever com precisão a associação de classe fora da amostra, quando não devo usar um classificador de conjunto?

Esta questão está intimamente relacionada a: Por que nem sempre usar a aprendizagem por conjuntos? . Essa pergunta pergunta por que não usamos conjuntos o tempo todo. Quero saber se há casos em que os conjuntos são piores (não apenas "não melhores e uma perda de tempo") do que um equivalente que não é um conjunto.

E, por "classificador de conjunto", refiro-me especificamente a classificadores como AdaBoost e florestas aleatórias, em oposição a, por exemplo, uma máquina de vetores de suporte aprimorada do tipo roll-your-own.

shadowtalker
fonte
2
Eu não usaria métodos de ensemble se você não tiver diversidade entre métodos individuais. Em outras palavras, o ensemble é útil quando você combina diversos conjuntos de métodos.
forecaster
2
@forecaster eu não poderia ajudar a adicionar muito bom artigo sobre o que os autores chamam de "bom" e "ruim" diversidade pages.bangor.ac.uk/~mas00a/papers/gblkMCS10.pdf no contexto de ensembles
Vladislavs Dovgalecs
bom artigo @xeon. independentemente dos métodos de aprendizado de máquina, seja floresta aleatória ou conjunto (combinando) métodos diferentes, a diversidade definitivamente ajuda. Existe uma forte teoria por detrás deste e é chamado e b i o l o g i c a l l y i n s p i r e d . numatvocêrebEuoeuogEucumaeueuy EunspEured
forecaster

Respostas:

7

O modelo mais próximo do verdadeiro processo de geração de dados sempre será o melhor e vencerá a maioria dos métodos de conjunto. Portanto, se os dados vierem de um processo linear, lm () será muito superior às florestas aleatórias, por exemplo:

    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
fonte
13

Não recomendo o uso de um classificador de ensemble quando seu modelo precisar ser interpretável e explicável. Às vezes, você precisa de previsões e explicações sobre as previsões.

Quando você precisa convencer as pessoas de que vale a pena acreditar nas previsões, um modelo altamente preciso pode ser muito persuasivo, mas lutei para convencer as pessoas a agir de acordo com as previsões quando os métodos são muito complexos para o seu nível de conforto.

Na minha experiência, a maioria das pessoas se sente à vontade com modelos aditivos lineares, modelos que eles podem pontuar à mão, e se você tentar explicar efeitos de interação adaptativos, hiperplanos e de nível 5, eles responderão como se você estivesse lançando magia negra.

Por outro lado, as pessoas podem se sentir confortáveis ​​com a complexidade do modelo, mas ainda querem internalizar algumas dicas. Os cientistas, por exemplo, podem não considerar um modelo de caixa preta como um avanço no conhecimento humano, mesmo que o modelo seja altamente preciso.

A análise de importância variável pode ajudar com insights, mas se o conjunto for mais preciso do que um modelo de aditivo linear, provavelmente ele estará explorando alguns efeitos não lineares e de interação que a análise de importância variável não pode explicar completamente.

brandco
fonte
Não é o que eu estava procurando, mas bons pontos. 1
shadowtalker
3

Eu gostaria de acrescentar à resposta do branco. Os conjuntos podem ser altamente competitivos e fornecer resultados muito bons. Nos acadêmicos, por exemplo, é isso que conta. Na indústria, os conjuntos podem ser muito difíceis de implementar / manter / modificar / portar. O trabalho de Goef Hinton sobre "Conhecimento Negro" é exatamente sobre isso: como transferir o "conhecimento" de um conjunto grande para um modelo fácil de se mover. Ele afirma que os conjuntos são ruins no momento do teste: eles são altamente redundantes e o tempo de computação pode ser motivo de preocupação.

Sua equipe obteve alguns resultados interessantes, sugiro verificar suas publicações ou pelo menos os slides. Se minha memória estiver boa, esse foi um dos tópicos mais importantes de 2013 ou 2014.

Os slides sobre o Conhecimento Negro podem ser encontrados aqui: http://www.ttic.edu/dl/dark14.pdf

Vladislavs Dovgalecs
fonte