Viés, Variância e Florestas Aleatórias

Variância e viés

Um dos desafios na hora de criar um modelo é tentar encontrar um equilíbrio entre o quão bom nosso modelo é para explicar o passado e o quão bom ele é para explicar o futuro. No limite queremos criar um modelo que capture toda informação relevante do passado para criar uma boa generalização para o futuro.

Uma coisa é o viés que é a tendência que o modelo tem de aprender errado por não levar em consideração toda informação necessária, então um modelo com viés alto é um modelo que pode não se ajustar bem aos dados.

Outra coisa é a variância, que é o que acontece com o modelo para cada novo ponto de dados. Ou seja, tem a ver com a sua estabilidade em resposta a novos exemplos.

Uma boa forma de tentar explicar isso é com a figura abaixo, que encontrei nesse link

Var_Bias

Bagging

Bagging é uma técnica utilizada onde pegamos amostras da série, recalculamos as previsões e tiramos uma média para regressões ou votamos no caso de classificações, essa técnica é capaz de gerar um viés semelhante ao modelo original, mas reduz a variância, principalmente em funções não lineares.

O exemplo mais manjado (que está na wikipedia) é o da relação entre temperatura e ozônio, onde ao invés de criar uma linha única para tentar ‘suavizar’ a relação pegamos 10 amostras diferentes dos dados originais (que teoricamente tem distribuição e variabilidades semelhantes), criamos uma regressão ‘loess’ para essa amostra e depois uma previsão para todos os dados. Por fim tiramos uma média desses previsores, o que parece bem mais comportado do que cada previsor original.

plot of chunk unnamed-chunk-2

Florestas Aleatórias?

Random Forests se utilizam praticamente das mesmas ideias de bagging, já que as árvores de decisão são boas candidatas, pois elas capturam iterações complexas nos dados. Esse tipo de modelo geralmente se coloca nas primeiras posições nas competições de previsões como a do Kaggle.

Sua vantagem é ser muito preciso na hora de fazer previsões, porém é bem complicado interpretar uma random forest. Nada como um bom black box!!!

Algumas Características:

  1. Precisão, geralmente fica entre os primeiros nas competições de previsão (Kaggle)
  2. Funciona bem em grandes grupos de dados e principalmente com muitas variáveis explicativas
  3. Nos dá a importância das variáveis, isso é legal para mostrar para seu chefe/cliente, mas não tem muito valor prático. A variável X é importante…e?
  4. Random Forests são difíceis de serem interpretadas
  5. Dependendo do método, pode trabalhar bem com dados que estejam faltando na base
  6. Funciona bem sem ter que escalar ou transformar variáveis

Na prática

Cada árvore de decisão tem problemas de variância muito alta. Uma maneira de reduzir isso é simplesmente tirar uma média de várias árvores.

O que difere uma random forest de um procedimento de bagging é que ao invés de simplesmente tirar uma média das árvores, o processo de construção de uma floresta faz um ‘bagging’ de variáveis do modelo (‘feature bagging’), o que ajuda a diminuir a correlação entre as árvores.

Voltando ao Titanic – Importância das variáveis

Continuando o post:

https://dadosdadosdados.wordpress.com/2015/07/22/competicao-do-kaggle-decision-trees/

O modelo benchmark pode ser encontrado no link

Abaixo reproduzo o gráfico de importância das variáveis, esse modelo deve ser capaz de acertar boa parte dos resultados, algo perto de 78%.

plot of chunk unnamed-chunk-3

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s