Data Mining com SQL Server 2014

Fala galera, Data Mining é uma área de pesquisa atrelada à Ciência da Computação, mais especificamente à Inteligência Artificial, com muita influência de Estatística e Matemática. No SQL Server existem alguns (9, pra ser exato) algoritmos implementados nativamente que permitem analisar e aplicar estas técnicas de Mineração de Dados.

A idéia deste post é mostrar e explicar os tipos de algoritmos existentes na nova release do SQL Server 2014, e em posts seguintes serão criados exemplos práticos com cada um destes algoritmos.

Olhando pro lado acadêmico Data Mining é estudado na matéria de Inteligência Artificial, onde é possível, através de modelos matemáticos e estatísticos, retirar informação útil da massa de dados que está sendo analisada. Este estudo puxa um gancho para os métodos de pesquisa ciêntifica, onde é necessário entender o que são variáveis dependentes e independentes; O que é uma informação preditiva; O que são métodos estocásticos… Estes termos ficam transparentes para os usuários avançados de Mineração de Dados, mas pra quem está começando a olhar pra estes termos só agora, é importante saber o que é cada um e onde serão utilizados dentro desta ciência maluca!

Pra começar, vamos entender o que cada algoritmo faz, e onde podem ser aplicados no SQL Server 2014.

image

 

Association Rules (REGRAS associativas)

Este algoritmo é usado para os “carrinhos de compras”, onde o algoritmo define um item à partir da combinação deste ítem com outros na transação. O algoritmo percorre a base de dados à procura deste item e faz uma contagem das aparições. Este algoritmo retorna itens que aparecem associados ao item que foi procurado. Você deve usar este algoritmo em oportunidade de cross-selling, para recomendação de novos produtos ao usuário. É como aqueles produtos que aparecem nos e-commerces quando você está fechando uma compra e o site diz: “Pessoas que compraram o produto ABC, também compraram XYZ”.

Clustering

Algoritmos de Clustering agrupam itens da base de dados analisada dentro de grupos que possuam caracteristicas similares. Com os clusters criados é possível explorar e entender os relacionamentos entre os dados. Este tipo de algoritmo permite analisar o universo de dados e encontrar itens que não seguem um padrão. Este item que está fora dos padrões pode conter algo especial, que merece uma atenção extra. Pode ser um comportamento que lhe dá insights para navegar em novos mares, ou então pode ser uma tentativa de fraude.

Decision Trees (árvore de decisão)

O mais comum, e também o algoritmo padrão na tela de Wizard do Data Mining no SSAS 2014. A árvore de decisão permite uma análise preditiva discreta com uma variável contínua. O resultado é fácil de entender, seguindo a expansão a partir das separações realizadas na raíz, passando às ramificações e finalmente chegando às folhas. Quando o algoritmo analisa aquele grupo (o grupo pode ser uma coluna do database) e divide em ramificações, é possível encontrar facilmente o melhor resultado.

Linear Regression (regressão linear)

A regressão linear é um algoritmo que trabalha apenas com variáveis contínuas e preditivas. É praticamente como a árvore de decisão, mas sem as separações das colunas em raiz, ramificação e folhas.

Logistic Regression (regressão logistica)

Este algoritmo também é uma simples árvore de regressão, como uma rede neural, mas sem nenhuma camada intermediária escondida.

Naïve Bayes

A partir de cada estado preditivo do parametro de entrada, a Naïve Bayes calcula as possibilidades para cada um destes inputs. Você pode utilizar estas probabilidades para definir os objetivos preditivos, com base nas entradas. Como é um algoritmo relativamente simples, a montagem do modelo é bem rápida.

Neural Network (rede neural)

Este algoritmo é o mais próximo da área de Inteligencia Artificial, simulando um cérebro humano, com seus neurônios e sinapses. A rede neural é utilizada para encontrar funções lineares dependentes, através de métodos não lineares intermediários (que podem estar escondidos). Pela complexidade de interpretar algoritmos lineares, como árvore de decisão, este algoritmo não é tão amplamente utilizado para encontrar dependencias lineares.

Sequence Clustering

É o algoritmo mais usando quando é necessário encontrar correlação baseada em similaridade. Este algoritmo cria uma matriz combinando todos os estados conhecidos e então cria as arestas (arcos) de relacionamento entre estes estados. Com isso, é possível calcular probabilidades de ocorrências baseada em sequências, elos, transições, etc. Cada nó do cluster representa um item significativo desta matriz, e seus relacionamentos com outros itens significativos. É uma “extensão” ao algoritmo de clustering.

Time Series (séries temporais)

Algoritmo de séries temporais são usados, em sua maioria, para criação de forecast. Internamente são usados 2 algoritmos: ART – Auto-Regression Trees, e ARIMA – Auto-Regressive Integrated Moving Average. A utilização de um algoritmo interno ou outro é baseado na necessidade, seja para um termo curto ou longo de forecast, respectivamente.

 

Bom, agora que já se sabe, por cima, o que cada algoritmo faz, vou aplicar estas técnicas de Mineração de Dados com exemplos práticos e possíveis resultados em cada um deles.

Sobre Diego Nogare 350 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.