Azure Machine Learning – Introdução – Parte 1

Fala galera, uma nova feature, lançada a poucos meses em preview e que já está disponível publicamente na plataforma Azure é o Microsoft
Azure Machine Learning. Uma funcionalidade para nós trabalharmos com Inteligência Artificial através de Mineração de Dados e que permite entender melhor os nossos dados e ambientes, e tomar melhores decisões pro futuro.

Neste momento, 25/Nov/2014, ainda é em uma versão de testes com algumas coisas faltando. Uma coisa boa desta plataforma é e que possui um roadmap de lançamento de novas funcionalidades que acompanha todos os outros produtos da plataforma Azure, isso significa que temos atualizações de recursos a cada 3 ou 6 meses.

Hoje a plataforma trabalha com 3 categorias de algoritmos nativos:

Classification: Algoritmos de Classificação permitem que análises sejam feitas na base de treino e teste e seu valor preditivo (aquele que estamos buscando) possa ser encontrado de forma discreta. Um resultado discreto significa apresentar um item baseado em um sub-conjunto conhecido de valores possíveis. Normalmente são poucos valores. Os mais comuns de se encontrar no mercado são classificadores binários, que “predizem” se a resposta é SIM ou NÃO, e apresenta o grau do índice de acuracidade (confiança) para aquela resposta que foi apresentada.

Clustering: Algoritmos de Clustering (ou Segmentação) fazem o processo de particionar os dados da amostra de uma população em vários sub-conjuntos, deixando as ocorrências mais parecidas umas perto das outras. Diferente dos algoritmos de classificação na qual as classes são conhecidas, em algoritmos de Segmentação as ocorrências (ou linhas, ou registros [chame como achar melhor]) são agrupados pelas suas semelhanças. Imaginando a aplicação deste algoritmo em um universo de pessoas, é possível segmentar estes indivíduos por Região que moram, Região que trabalham, Sexo, Faixa de Idade, Faixa de Renda, etc. Qualquer dado discreto conhecido pode ser usado para fazer a segmentação da população e a partir desta segmentação é possível criar várias outras análises. Inclusive mudando de algoritmo para se adequar melhor à sua necessidade. Outra aplicação pra algoritmos de Clustering é entender o comportamento sequencial dos indivíduos, analisando os passos que foram feitos para realizar uma ação em algum lugar. Com estes passos é possível agrupar os indivíduos em sub-grupos, ficando em cada segmentação os indivíduos que percorreram os mesmos passos para realizar aquela determinada ação.

Regression: Algoritmos de Regressões permitem que as análises na base de treino e testes retornem valores contínuos para aquele resultado preditivo. Por valores contínuos entendemos que são valores “infinitos”, podendo ser qualquer valor possível. Uma aplicação deste algoritmo pode ser uma análise pra saber quanto custa uma casa baseada na metragem e região. Uma análise desta pode dar valores entre 1 Dolar (como as casas em Detroit depois do problema da bolha imobiliária [veja aqui: http://www.nydailynews.com/life-style/real-estate/1-buy-house-detroit-article-1.1415014 ]) e 380.000.000 Dolares como esta cobertura em Mônaco (http://gallivantguide.com/monaco-penthouse-387m-worlds-most-expensive/2098/). Este intervalo de possibilidades é bem grande, e uma aplicação que faça este tipo de análise pode ter uma carga de processamento e consumo de memória bem grande. O uso de algoritmos para estas aplicações, facilitam muito o nosso trabalho!

Eu particularmente senti bastante falta de algoritmos da categoria Association, geralmente utilizados para Basket Market Analysis e que permitem encontrar correlação entre itens ou produtos que estão recebendo alguma interação e podem ser associados uns aos outros. Interação esta que pode ser simplesmente verificar os detalhes do produto, podendo ser até a ação de adicionar o produto no carrinho de compras. Cada interação desta apresenta um, ou mais, produtos associados à aquele que esta recebendo esta interação. Esta associação é baseada em fatos do passado, onde um produto foi consumido com o outro. Isso significa que a predição pode mudar com o decorrer do tempo, quando o comportamento e a correlação entre estes produtos passam a mudar por qualquer motivo que seja.

Em contra partida pode-se executar scripts em R dentro do Microsoft Azure Machine Learning. Só pra contextualizar, R é uma linguagem de programação focada em análise de dados e estatística que foi criada na década de 70. Esta linguagem é amplamente utilizada por estatísticos e matemáticos ao redor do mundo, e agora, com a nova profissão de Cientista de Dados, existe muito mais gente estudando e aprendendo R. Nós podemos criar scripts em R e consumir mais de 340 pacotes de funcionalidades existentes no CRAN (Comprehensive R Archive Networkhttp://cran.r-project.org/) diretamente no Microsoft Azure Machine Learning. Isso ampliou bastante a quantidade de tarefas que é possível fazer com o Machine Learning.

Está no meu pipeline escrever mais alguns posts sobre o Microsoft Azure Machine Learning, criando alguns exemplos e trabalhando com alguns algoritmos. Fiquem ligados!

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