Algoritmo de Árvore de Decisão (Decision Tree) no Data Mining do SQL Server 2014

Fala galera, como prometido algumas semanas atrás vou escrever uma série de posts falando sobre os algoritmos de Data Mining existentes no SQL Server 2014. Hoje vamos cobrir o uso do algoritmo de Árvore de Decisão, que implementa o algoritmo Microsft Decision Tree.

Como já foi falado no primeiro post, este algoritmo de classificação é responsável por criar uma representação visual que chamamos de árvore por contem um nó raíz, nós intermediários que são as ramificações e os últimos nós representados que são as folhas.

É importante conhecer os dados que serão trabalhados para poder definir o que são atributos de entrada e o que são atributos preditivos. Basicamente, os atributos de entradas são colunas do banco de dados que podem influenciar o resultado final, e o resultado final é a coluna preditiva. Imagine um cenário onde o objetivo é classificar pessoas que são possíveis compradores do livro Do Banco de Dados Relacional à Tomada de Decisão. Então neste caso a coluna preditiva do banco é se o cara comprou ou não o livro. As colunas de input são as colunas que tem alguma influência sobre a compra do livro, por exemplo, o idioma, a área de atuação, interesse técnico, etc. O algoritmo, com base nestas informações de input e predição, estrutura os nós da árvore classificando o que é relevante nas ramificações e entregando um (ou mais) caminhos ideais para chegar até as folhas. Pensando por esse lado, foi constatado que das 10 vendas que o livro teve, 8 falam idioma Português, 7 trabalham na área de Banco de Dados e somente 3 tem interesse técnico. Quando estes dados são processados pelo algoritmo e apresentado através da Árvore de Decisão, é possível ver claramente qual é o melhor caminho para segmentar o público que compraria o livro. São profissionais que falam Português e que trabalham na área de Banco de Dados, mas o interesse técnico não importa. Se fizer uma campanha de marketing direcionada para este público, a chance de vender o livro é muito maior do que enviar para um grupo de pessoas que falam Inglês e trabalham na área de Nutrição.

Bom, depois desse exemplo para entender o funcionamento do algoritmo, vamos começar um exemplo utilizando o Adventure Works.

Primeira coisa é necessário criar um novo projeto do tipo SSAS com Data Mining. Vou levar em conta que você sabe criar um Data Source apontando para o AdventureWorksDW2012 e um Data Source View apontando para a vTargetMail.

O próximo passo é onde começa a mineração de dados, procure na Solution Explorer o item de Mining Structure e clique com o botão direito do mouse, em seguida, aponte para New Mining Structure.

Neste momento uma tela de abre e permite que você informe onde estão os dados de origem. Como utilizaremos o Data Warehouse para consumir os dados, deixe marcada a opção que é apresentada.

Ao avançar para a próxima tela, você deve escolher qual algoritmo vai utilizar para sua mineração. No caso deste exemplo, mantenha escolhido o default, que é Decision Tree.

Na tela seguinte, você informa qual é o Data Source View que possui a conexão com sua base de dados de origem. Como foi criado somente um Data Source View, somente ele é apresentado.

Ao avançar, o wizard pergunta quais tabelas são Case e quais são Nested. Mantenha a tabela (eu sei que é uma view!!!!) vTargetMail marcada como Case e avance.

Neste momento é hora de selecionar quais colunas são de entrada e quais são preditivas. Ao bater o olho na tela, é intuitivo marcar as linhas definidas para cada coluna. Garanta que seu ambiente está marcado com:

Key à CustomerKey

Input à Age e CommuteDistance

Predictable à BikeBuyer

Como apresentado a seguir

Avance para a próxima tela, e informe quais são valores Continuous ou então Discrete. Lembrando que valores contínuos apresentam uma grande variação de ocorrencias dentro da coluna e os discretos variam pouco. Por exemplo um campo do tipo CPF é um valor contínuo (varia muito de individuo para individuo) e uma coluna do tipo sexo é discreto (varia só um pouco). Caso não esteja a vontade, ou não conhece a base, pode clicar em Detect e o SQL Server analisa e lhe dá o resultado.

O próximo passo é finalizar e informar o nome. Como não estou com criatividade hoje, vou deixar o nome sugerido pelo SQL Server e vou manter v Target Mail.

Um novo item é criado dentro da Solution Explorer, e é neste objeto que a Mineração de Dados ocorre. Para encontrar a Árvore de Decisão, é preciso processar os dados. É possível processar somente o modelo ou então o projeto como um todo. No caso, vamos processar todo o projeto. Para isso, vá na Solution Explorer, clique com o botão direito no projeto e aponte para Process. Lembrando de apontar para o deploy para o servidor correto.

Se tudo ocorrer bem ao processamento, será apresenta o status Process Succeeded.

Para encontrar a Árvore de Decisão, vá até a área central do SQL Server Data Tools no objeto v Target Mail, e abra a aba Mining Model Viewer.

Reparem que os nós Raiz [1], Ramificações [2] e Folha [3] são apresentados, e pode-se seguir o caminho da predição com base nas variáveis de entrada. Um ponto importante para seguir com a análise, é entender essa graduação de cores, na qual o item mais escuro representa o resultado mais impactante com base na predição esperada. A base do AdventureWorks é de uma empresa fictícia de venda de acessórios para bicicletas, então, olhando esta árvore, é possível predizer que os melhores clientes para realizar possíveis compras futuras seguindo o fluxo com as cores mais escuras.

Agora é com vocês, apliquem estas técnicas de mineração de dados em seu ambiente e façam com que seus resultados sejam mais assertivos!

Sobre Diego Nogare 346 Artigos
Diego Nogare é Gerente Técnico de Engenharia de Machine Learning no Itaú-Unibanco. Também é professor em programas de pós graduação no Mackenzie e na FIAP, em São Paulo. Foi nomeado como Microsoft MVP por 11 anos seguidos, e hoje faz parte do programa Microsoft Regional Director.