Eu li em algumas fontes, incluindo esta , que as florestas aleatórias não são sensíveis a outliers (da mesma forma que a regressão logística e outros métodos de ML são, por exemplo).
No entanto, duas intuições me dizem o contrário:
Sempre que uma árvore de decisão é construída, todos os pontos devem ser classificados. Isso significa que mesmo os outliers serão classificados e, portanto, afetarão as árvores de decisão onde foram selecionadas durante o reforço.
O bootstrapping é parte de como um RandomForest faz subamostragem. O bootstrapping é suscetível a outliers.
Existe alguma maneira de conciliar minha intuição sobre sua sensibilidade a valores extremos, com fontes que discordam?
random-forest
bootstrap
outliers
cart
Hunle
fonte
fonte
min_samples_leaf_node
for1
, pode ser suscetível a discrepâncias.Respostas:
Sua intuição está correta. Esta resposta apenas ilustra isso em um exemplo.
De fato, é um equívoco comum que o CART / RF seja de alguma forma robusto em relação aos valores extremos.
Para ilustrar a falta de robustez do RF à presença de um único outliers, podemos (levemente) modificar o código usado na resposta de Soren Havelund Welling acima para mostrar que um único 'y'-outliers é suficiente para influenciar completamente o modelo de RF ajustado. Por exemplo, se calcularmos o erro médio de previsão das observações não contaminadas em função da distância entre o outlier e o restante dos dados, podemos ver (imagem abaixo) que apresenta um único outlier (substituindo uma das observações originais por um valor arbitrário no espaço 'y') é suficiente para afastar arbitrariamente as previsões do modelo de RF dos valores que eles teriam se calculados com base nos dados originais (não contaminados):
Quão longe? No exemplo acima, o único outlier mudou tanto o ajuste que as observações do erro médio de previsão (nas não contaminadas) agora são 1-2 ordens de magnitude maiores do que teriam sido, se o modelo tivesse sido ajustado nos dados não contaminados.
Portanto, não é verdade que um único erro não possa afetar o ajuste de RF.
Além disso, como aponto em outros lugares , os discrepantes são muito mais difíceis de lidar quando existem potencialmente vários deles (embora não precisem ser uma grande proporção dos dados para que seus efeitos apareçam). Obviamente, os dados contaminados podem conter mais de um erro externo; para medir o impacto de vários valores discrepantes no ajuste de RF, compare o gráfico à esquerda obtido do RF nos dados não contaminados com o gráfico à direita obtido deslocando arbitrariamente 5% dos valores das respostas (o código está abaixo da resposta) .
Finalmente, no contexto da regressão, é importante ressaltar que os valores discrepantes podem se destacar da maior parte dos dados no espaço de design e resposta (1). No contexto específico da RF, os valores discrepantes do projeto afetarão a estimativa dos hiperparâmetros. No entanto, esse segundo efeito é mais manifesto quando o número de dimensões é grande.
O que observamos aqui é um caso particular de um resultado mais geral. A extrema sensibilidade aos valores extremos de métodos de ajuste de dados multivariados com base em funções de perda convexa foi redescoberta várias vezes. Veja (2) uma ilustração no contexto específico dos métodos de ML.
Editar.
Felizmente, embora o algoritmo CART / RF base não seja enfaticamente robusto para discrepantes, é possível (e silencioso e fácil) modificar o procedimento para conferir robustez aos discadores "y". Agora vou me concentrar nas RF de regressão (já que esse é mais especificamente o objeto da pergunta do OP). Mais precisamente, escrevendo o critério de divisão para um nó arbitrário como:t
onde e estão criança que emerge nodos dependente da escolha de ( e são funções implícitas de ) e denota a fração de dados que cai para o nó filho esquerdo e é a parcela de dados em . Então, pode-se conferir robustez do espaço "y" a árvores de regressão (e, portanto, RFs) substituindo a funcionalidade de variância usada na definição original por uma alternativa robusta. Essa é, essencialmente, a abordagem usada em (4), onde a variação é substituída por um estimador M robusto de escala.tL tR s∗ tL tR s pL tL pR=1−pL tR
fonte
p
es
na fórmula?outlier 1a: esse outlier possui um ou mais valores extremos de características e é colocado distante de qualquer outra amostra. O outlier influenciará as divisões iniciais das árvores como qualquer outra amostra, portanto, nenhuma influência forte. Ele terá pouca proximidade com qualquer outra amostra e definirá apenas a estrutura do modelo em uma parte remota do espaço de recurso. Durante a previsão, a maioria das amostras novas provavelmente não será semelhante a essa discrepância e raramente terminará no mesmo nó terminal. Além disso, as árvores de decisão consideram os recursos como se fossem ordinais (classificação). O valor é menor / igual ou maior que o ponto de interrupção, portanto, não importa se um valor de recurso é extremamente extremos.
outlier 1b: Para a classificação, uma única amostra pode ser considerada outlier, quando incorporada no meio de muitas amostras de uma classe diferente. Eu descrevi anteriormente como um modelo de RF padrão será influenciado por essa amostra de classe ímpar, mas apenas muito próxima da amostra.
outlier 2: esse outlier tem um valor-alvo extremo, talvez muitas vezes mais alto que quaisquer outros valores, mas os valores dos recursos são normais. Uma fração .631 das árvores terá um nó terminal com esta amostra. A estrutura do modelo será afetada localmente perto do outlier. Observe que a estrutura do modelo é afetada principalmente em paralelo ao eixo do recurso, porque os nós são divididos uni-variadamente.
Incluí uma simulação de regressão RF de outlier_2. 1999 pontos extraídos de uma estrutura arredondada suave e um valor externo com um valor-alvo muito mais alto (y = 2, = 0, = 0). O conjunto de treinamento é mostrado à esquerda. A estrutura do modelo de RF aprendida é mostrada à direita.y=(x41+x42)12 x1 x2
EDIT: comentar para o usuário603
Sim, para valores extremos extremos na escala alvo, deve-se considerar transformar a escala alvo antes de executar a RF. Eu adicionei abaixo uma função robustModel () que ajusta randomForest. Outra solução seria registrar a transformação antes do treinamento.
fonte
y[1]=200
você verá que, sozinho, faz com que o erro de previsão nas observações não contaminadas salte por um fator de 20!Não é o algoritmo Random Forest propriamente dito que é robusto para discrepantes, mas o aluno básico em que se baseia: a árvore de decisão . As árvores de decisão isolam observações atípicas em folhas pequenas (isto é, pequenos subespaços do espaço original). Além disso, as árvores de decisão são modelos locais . Diferentemente da regressão linear, onde a mesma equação se aplica a todo o espaço, um modelo muito simples é ajustado localmente em cada subespaço (isto é, em cada folha).
Portanto, para regressão, por exemplo, valores extremos não afetam o modelo inteiro porque são calculados em média localmente. Portanto, o ajuste aos outros valores não é afetado.
Na verdade, essa propriedade desejável é transferida para outras estruturas semelhantes a árvores, como dendogramas. O cluster hierárquico, por exemplo, é usado há muito tempo para a limpeza de dados, porque isola automaticamente observações aberrantes em pequenos agrupamentos. Veja, por exemplo, Loureiro et al. (2004). Detecção de outlier usando métodos de cluster: um aplicativo de limpeza de dados .
Portanto, em poucas palavras, o RF herda sua insensibilidade a outliers do particionamento recursivo e do ajuste do modelo local .
Observe que as árvores de decisão têm baixa tendência, mas são modelos de alta variação: sua estrutura está sujeita a alterações mediante uma pequena modificação no conjunto de treinamento (remoção ou adição de algumas observações). Mas isso não deve ser confundido com sensibilidade a valores extremos, isso é uma questão diferente.
fonte
labeled
ouunlabeled
dados? E como esse agrupamento seria alcançado com dados heterogêneos que contêm recursos categóricos e numéricos?