quinta-feira, 5 de junho de 2014

Validação de modelos


Conforme já mencionamos em outro post, uma das etapas mais importantes no processo de desenvolvimento de um modelo é sua validação.
Isso porque não adianta você criar um modelo, e partir do pressuposto de que ele funciona. É preciso verificar e provar tal pressuposto, de forma a validá-lo.

Já comentamos, também em outro post, que no processo de modelagem, provavelmente vamos extrair uma amostra de dados da população total.
Essa amostra, entretanto, não deverá ser utilizada inteiramente para fomentar o aprendizado do modelo. Isso porque uma parte desta deverá ser reservada para a etapa de validação, ou teste.

O motivo disso é simples. É fácil dizer que o modelo acerta suas previsões e classificações para os mesmos indivíduos que fizeram parte do processo de aprendizado. Afinal de contas, o modelo já conhece esses indivíduos. Entretanto, na prática da "vida real do modelo", ele será utilizado para prever e classificar indivíduos que ele desconhece. Esse é o verdadeiro desafio, e portanto, é isso que deve ser medido na validação.

Pra tal, precisamos reservar uma parcela da nossa amostra, que não tenha nenhuma participação no processo de desenvolvimento do modelo, e que, apenas no final seja utilizada para colocá-lo à prova.
O acerto nesta amostra de indivíduos (amostra de validação ou teste), poderá ser considerado o acerto previsto final esperado na prática.

O tamanho da amostra de validação pode variar dependendo do caso, mas algo em terno de 30% da amostra total é bastante razoável.

É bom ressaltar que neste caso estamos falando de aprendizado supervisionado. E é justamente neste momento de validar, que estamos supervisionando nosso aprendizado.


Por exemplo:


Imaginemos que nosso público alvo são homens acima de 50 anos em São paulo, e que conseguimos coletar uma amostra de 100.000 indivíduos.
Vamos reservar 30% destes para validação (amostra de validação), sendo 30.000 indivíduos, e os outros 70% (70.000 indivíduos) serão utilizados na aprendizagem (amostra de desenvolvimento) do modelo. É importante que essa separação de indivíduos seja aleatória.

Agora vamos imaginar que criamos um modelo de propensão para uma resposta binária (como infarto sim/não) com a amostra de desenvolvimento, e aplicamos o modelo na amostra de validação para testar seu acerto.
Nesse exemplo hipotético, digamos que nosso acerto tenha sido de 75%.
Isso significa que quando estivermos usando o modelo na sua aplicação prática, ele tenderá a acertar em  aproximadamente 75% de suas previsões. Essa é a capacidade de generalização dele.

Um ponto importante de comentar é que, um modelo não pretende acertar todos os casos, pois dificilmente isso é viável. Um modelo se propõe a acertar uma quantidade razoável, que seja melhor do que uma escolha aleatória, portanto este deve fornecer uma medida para sua expectativa de acerto. Devemos ter em mente que em meio a muitos acertos, sempre haverão erros, mas isso ainda será melhor do que tomar uma decisão de forma arbitrária.

Quando temos uma amostra pequena, ou simplesmente quando queremos apenas garantir um resultado mais estável, podemos usar técnicas de validação que repetem esse processo de separação de amostras várias vezes para garantir expectativas de acerto mais seguras, como K-Folds,  mas isso já é outro assunto.

Acertos nas categorias


Cuidado! Vamos agora imaginar que na amostra do nosso público alvo, apenas 10% dos indivíduos tiveram infarto no período do estudo, e os outros 90% não.
Se nosso modelo simplesmente atribuir uma previsão negativa para todos os indivíduos, ele acertará 90%. Esse número parece muito bom olhando o acerto total, mas na prática, sabemos que o modelo é inútil, pois não acerta nenhum caso onde o indivíduo é positivo.
Deviso a isso, não podemos olhar apenas o acerto total. Precisamos avaliar o acerto de todas as categorias, para garantir que mesmo em amostras desbalanceadas, o acerto será razoável para todas as categorias de resposta.
Dessa forma, poderemos dizer que nosso modelo é capaz de discriminar entre as estas (neste caso, infarto sim/não).


Abraços miningnoobs!





Nenhum comentário:

Postar um comentário