Vídeo da minha palestra no CONABI – 1º Congresso Nacional Online de Business Intelligence

Fala galera, no mês passado fiz uma palestra para o CONABI1º Congresso Nacional Online de Business Intelligence, com o tema “5 Passos para Você Tomar Melhores Decisões Usando as Ferramentas Corretas“. Para quem interessar, segue o PPT e o vídeo da palestra:

Bons estudos!

0  

MVP Showcast 2014 – Minhas duas sessões sobre Big Data

Fala galera, neste ano do MVP Showcast, que acontecerá entre 15/Setembro e 9/Outubro, fui convidado para apresentar duas sessões sobre BigData. Uma na trilha de Plataforma de Dados, BI & BigData e outra na de Azure & BigData. Veja abaixo a descrição de cada uma.

A primeira é dia 06/10 às 20h00 e será sobre O Dia a Dia do Cientista de Dados na trilha de Plataforma de Dados, BI & BigData.

Com o novo buzzword de tecnologia Big Data, surgiu uma nova profissão: a do Cientista de Dados. Nesta palestra, o MVP em SQL Server Diego Nogare apresenta o que o mercado (e os outros profissionais) devem esperar de um Cientista de Dados, e como esta nova profissão pode ajudar sua empresa.

A segunda será dia 09/10 às 12h e será sobre Entendendo Big Data Através da Plataforma Microsoft na trilha de Azure & BigData.

Revele novas informações e tome decisões melhores com o HDInsight do Azure, uma solução de Big Data fornecida pela Apache Hadoop. Navegue nessas informações de todos os tipos de dados para usuários empresariais por meio do Microsoft Excel.

Não deixe de aproveitar todas as 64 palestras gratuitas que serão realizadas neste período. Acesse o site e saiba os títulos, horários e palestrantes: http://mvpshowcast.azurewebsites.net/

1  

Algoritmo de Regras Associativas (Association Rules) no Data Mining do SQL Server 2014

Fala galera, como prometido neste post e iniciado pela Árvore de Decisão, hoje continuo a série de posts falando sobre os algoritmos de Data Mining existentes no SQL Server 2014.

Este segundo algoritmo que vamos falar é de Regras Associativas. Voltando ao primeiro post, as Regras Associativas apresentam uma estrutura combinatória dentro de um DataSet a partir de itens similares que estão sendo processados. A maioria dos sistemas inteligentes que utilizam este algoritmo são criados para recomendar um produto para o usuário, normalmente em e-commerce. Já reparou que quando acessa o site da Amazon e procura o livro Do Banco de Dados Relacional à Tomada de Decisão, e vários outros livros de Business Intelligence e BigData são apresentados? Então, não existe um Oompa-Loompa colocando isso aleatoriamente para você. Por trás, existe um sistema de recomendação completo, provavelmente utilizando a categoria “Computação, Informática e Mídias Digitais” como um parametro de entrada para este item. Como sempre, é importante conhecer a base e saber quais segmentações você quer aplicar para a recomendação. Neste caso, quando se coloca a categoria como um parametro de entrada, sempre serão recomendados itens similares dentro desta categoria, mas se todos os compradores do meu livro também comprassem um livro de culinária, ele não apareceria na recomendação pois está em outra categoria.


 

Bom, já entendemos a aplicabilidade e como ele funciona, agora vamos criar um exemplo para o Adventure Works?

Primeira coisa é necessário criar um novo projeto do tipo SSAS com Data Mining. Mais uma vez vou acreditar que você sabe criar um Data Source apontando para o AdventureWorksDW2012 e um Data Source View apontando para a vAssocSeqLineItems e vAssocSeqOrders. Esta estrutura basicamente é um relacionamento entre pedidos e produtos. Onde uma view tem os pedidos que foram feitos, e na outra view tem a lista de produtos que estão associadas àquele pedido. Consegue ver um relacionamento entre essas views? E a aplicabilidade desse relacionamento na nossa recomendação de conteúdo? Caso não tenha conseguido descobrir essa associação, a idéia é encontrar na lista de itens os produtos que também são comprados (com base na outra view de pedido) quando ao menos um daqueles itens é o que está no meu carrinho. Ficou mais claro? Não? Ok, vamos continuar e ver se conseguimos explicar… Voltando pra Amazon, e olhando a categoria do meu livro. Diversas pessoas olham meu livro e alguns outros livros na mesma visita à pagina, não importa a ordem, pode ser que vejam outros livros e depois o meu (a ordem de visualização vai importar quando estivermos falando de algoritmo de Sequence Cluster, mas isso é pra outro post). O importante é que existe uma ligação entre a visita e os produtos que foram vistos, no caso estes livros. Depois de algum tempo, estes livros passam a ter um relacionamento mais preciso, pois tem mais gente visualizando os livros. Não significa que em todos os acessos os visitantes visualizam todos os livros, estes que estão recomendados são os 5 livros que mais se relacionam com o meu no momento do processamento e dentro naquela categoria que está sendo processada. Pode ser que no futuro um outro livro passe a ser visualizado sempre que alguém buscar o meu livro, isso fará com que o 5º livro da ordem, que seria representado por uma ligação mais fraca, pare de aparecer na recomendação e entre esse outro livro… Tudo isso automaticamente, sem a intervenção daquele Oompa-Loompa comentado lá em cima.

Voltando ao exemplo, depois de incluir o Data Source View, é preciso relacionar as views, arrastando o campo OrderNumber da view vAssocSeqLineItems para cima do campo vAssocSeqOrders.


Próximo passo é hora de criar o Mining Model para as regras associativas, faça isso clicando com o botão dirento em Mining Structure e criando um novo a partir do From existing relational database or data warehouse e escolhendo Microsoft Association Rules.


Ao avançar para as próximas telas, deve-se informar qual view é Case e qual é Nested. Neste caso, a estrutura de CASE é onde temos a informação principal que será usada para segmentar os dados. Fazendo uma analogia ao livro, é onde se encontra a categoria de “Computação, Informática e Mídias Digitais” e não os livros que foram visualizados juntos. Já a tabela NESTED é onde se encontram estes livros que foram visualizados juntos. Então selecione vAssocSeqOrders para Case e vAssocSeqLineItens para Nested.


Ao avançar para a tela seguinte, é solicitado para informar quais campos serão tratados como Key, Input e Predictable. A seleção destas colunas é baseada na mesma explicação que foi feita no post sobre Árvores de Decisão, então dê um pulinho lá e veja o que é. Desmarque todas as opções que vierem marcadas, e selecione as caixas de OrderNumber como chave (coluna key) e as três colunas da Model. Sua seleção ficará assim:


Quando avançar para a próxima tela, garanta que ambas colunas selecionadas estejam marcadas como Key, no Content Type.


Só pra lembrar, como neste caso é importante a acertividade na recomendação dos itens similares, altere de 30 para 0 o valor do campo “Percentage of Data for Testing“. Avance até finalizar o processo.

Se tudo ocorreu direito, seu Mining Structure ficará assim:


Antes de processar seu projeto, lembre-se de informar qual é o servidor que tem o SQL Server Analysis Services instalado e configurado. Após este pequeno detalhe, faça o processamento.

Após processar, mude a aba do seu Mining para Mining Model View, e então, dentro desta aba, vá até o item Dependency Network.


Aqui dentro é possível ver os nós de associação que foram criados.


Parece pouca associação (mas por trás não é), isso acontece pela parametrização da quantidade mínima de ocorrências similares dos objetos. Para aumentar isso, volte até a aba Mining Model, clique com o botão direito em Set Algorithm Parameters.


Altere os parametros de Minimum_Support para 0.01 e de Minimum_Probability para 0.1, ao terminar esta alteração, processe novamente seu modelo e em seguida volte a visualizar as associacões (aba Dependency Network do seu Mining Model View). Veja que agora está bem mais completo e bonito de ver.


Para consumir as associações, é possível escrever códigos DMX (Data Mining Extentions) passando como parâmetro o nome de um dos produtos, e recebendo uma lista dos outros itens que são associados à ele nas compras. Está no meu pipe pra escrever uma app em .Net que consuma esses dados via DMX, e claro, postar aqui como foi feito J

1  

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 acertivos!

0  

Data Mining do SQL Server 2014 no Excel 2013

Fala galera, uma forma simples para se começar a trabalhar com mineração de dados é utilizar o Add-In de Data Mining para Excel conectado ao SQL Server. Para isso, basta baixar o Add-In, fazer a instalação e apontar para o servidor do SQL Server Analysis Services que você tenha acesso.

Para baixar o Add-In, acesse este link e escolha a versão x86 ou x64. No meu caso foi o x64.

Depois de fazer a instalação, o Wizard pergunta se quer abrir uma planilha de exemplos. Fique a vontade para abrir e ver o que tem para “brincar” de mineração de dados.

Abrindo esta planilha de exemplo ou não, é necessário vincular o Add-In do Excel com o seu SSAS. Para isso, vá até a Ribbon DATA MINING e clique no botão << No Connection >>.

Uma tela se abre pedindo para conectar no SSAS, clique no botão New e em seguida preencha os dados de autenticação ao seu servidor. Depois de configurado, a conexão aparece na lista da esquerda.

Por fim, o botão da Ribbon que estava com << No Connection >> já está alterado e apontando para o servidor que você configurou.

A partir de agora é possível trabalhar com mineração de dados de dentro do Excel.

2