sexta-feira, 15 de maio de 2015

Aumentando o poder preditivo de variáveis


 O processo de modelagem vai muito além de aplicar os algoritmos nos dados. Há transformações que podem ser importantes de serem feitas nas variáveis, que vão muito além do âmbito do ETL comum.
Estas transformações às vezes são chamadas de ETL de segundo nível.
Tais transformações são feitas baseando-se em análises estatísticas e ainda em regras de negócio.
No primeiro post, vimos que modelar pode ser comparado com o processo de aprendizado, onde é necessário abstrair características macro dos indivíduos alvo de análise. Esse processo de abstração, pode ser feito, em partes, através da transformação de variáveis antes da seleção de quais vão ou não vão para o modelo.

Quando estamos modelando, pegamos todos os dados que temos disponíveis e testamos (com testes estatísticos) se eles são significantes (discriminantes, correlacionados) para o evento que estamos medindo. Quando uma variável se mostra pouco ou nada importante, nós não mantemos ela no conjunto de dados que será avaliado pelo algoritmo.

O curioso é que: há variáveis que se mostram irrelevantes em sua forma natural, mas após determinados tratamentos (abstrações) podem passar a ser discriminantes.
Isso é importante, pois ajuda a aumentar cada vez mais o poder preditivo do modelo com os recursos (dados) que temos disponíveis (que mutias vezes não são muitos).

Vamos ver alguns exemplos de tratamento que podem aumentar o poder preditivo de uma variável:


Tratamento de missings

Este é um tratamento básico. Imaginemos uma variável que mede o peso de uma pessoa, e consideremos que há uma parte dos indivíduos da nossa amostra com essa variável sem preencher (vazio ou missing). Se essa proporção for pequena, por exemplo, 5%, podemos substituir o valor missing por um valor médio, ou até fazer um outro modelo unicamente para estimar esses valores. É importante pensar se, do ponto de vista do negócio (e quando eu digo negócio, não me refiro só a business, mas à área de conhecimento envolvida) é razoável tratar esse tipo de ocorrência de missing desta forma.
Agora, se o número de casos for muito grande, pode não valer a pena usar a variável, e já descartá-la de cara.
Quanto mais completos os dados estiverem, mais o modelo terá insumos para entender os perfis que se propõe a classificar.


Tratamento de outliers

Outliers são valores fora do comum. Exemplo:  em uma variável que mede a altura de uma pessoa, o valor (em centímetros) 400 seria um outlier.
Esses valores podem ocorrer devido a erros nos dados, ou ainda simplesmente porque realmente existem casos raros. O problema é que mesmo esses casos raros existindo, é complicado para o modelo abrir esse tipo de "exceção". Para facilitar o trabalho, e não confundir o algoritmo, é interessante tratar esses valores com algo como, por exemplo, o valor da média mais o desvio padrão para máximo ou mínimo. desta forma, aquele indivíduo ainda será tratado com a mesma magnitude em termos do valor, mas não será um "desconhecido confuso" para o modelo.


Transformações diversas

Transformações como log de diversas bases, raiz, inverso etc, muitas vezes podem deixar as variáveis "melhores" por tentarem algum tipo de suavização da série de dados (em relação a sua distribuição).


Transformações referentes ao tema

Muitas vezes uma ou até mesmo um conjunto de variáveis não tem muito significado se referente a dados brutos em certas situações inerente ao tema que está sendo tratado. Ex: uma data pode não significar nada, e duas datas tão pouco, sendo três então pior. Porém algum cálculo de distância entre duas delas, sendo maior ou menor do que o dia da terceira data, pode resultar numa variável que tem muito poder explicativo. Isso porque traduz a observação de três eventos que antes não tinham significado, em algo que uma fonte externa já sabe a priori. Ex: em negócios, uma regra de negócio; em medicina, algo sobre o funcionamento do corpo humano.

 Discretização

Alguns algoritmos dependem de que existam relações lineares entre as variáveis explicativas e a variável resposta de um modelo. Entretanto, isso muitas vezes não reflete a realidade, e somente porque uma relação não é linear, não significa que a correlaçõ não existe.
Uma forma de contornar isso é a discretização de variáveis. Neste caso, variáveis contínuas seriam quebradas em categorias. As quebras podem ser feitas usando testes estatísticos que mostram o ponto de corte ótimo, via análise visual ou até mesmo utilizando pontos clássicos como percentis. Ex.: a variável quantitativa idade poderia ser transformada em uma variável categórica com faixas de idade.


Mesclagem

Muitas vezes uma variável  categórica pode ter seu poder preditivo aumentado através da junção de categorias das variável. Isso pode ocorrer porque considerando as categorias individuais não existem padrões, mas juntando algumas, é possível encontrar tendências que antes estavam distribuídas.
Para juntar categorias podemos observar as taxas de casos positivos relativa (odds) e mesclar em uma única categoria as categorias que tiverem taxas similares.



Abraços minning noobs!



Nenhum comentário:

Postar um comentário