Baixe o app para aproveitar ainda mais
Prévia do material em texto
Análise preditiva com Azure Machine Learning e R MVTech · 2 Análise preditiva com Azure Machine Learning e R MVTech · 3 ANÁLISE PREDITIVA COM AZURE MACHINE LEARNING E R Fazer uma análise preditiva é permitir que suas análises dêem um passo à frente no uso de Business Intelligence convencional. Diego Nogare Thiago Zavaschi Análise preditiva com Azure Machine Learning e R MVTech · 4 Análise preditiva com Azure Machine Learning e R MVTech · 5 Análise preditiva com Azure Machine Learning e R MVTech · 6 Análise preditiva com Azure Machine Learning e R MVTech · 7 Às nossas famílias. Análise preditiva com Azure Machine Learning e R MVTech · 8 Análise preditiva com Azure Machine Learning e R MVTech · 9 Apresentação Seja bem vindo! Esta produção tem o objetivo de abrir sua mente para cenários e aplicações que possam resultar em resultados fantásticos quando aplicados de forma correta. Os autores, Diego Nogare e Thiago Zavaschi, possuem experiência acadêmica e profissional nestas áreas e compartilharão contigo nos 10 capítulos desta obra, os caminhos das pedras para começar e terminar seus projetos utilizando a plataforma Azure Machine Learning. Este livro possui uma mistura de teoria e prática, permitindo uma leitura agradável do início ao fim. Ao ler a produção e realizar os exercícios práticos, você terá a chance de fixar o conteúdo e aprender na prática o que um cientista de dados faz. Independentemente de você ser um profissional que desenvolve software ou que mantém e sustentação um ambiente de infraestrutura, ou um gestor de pessoas e até mesmo um médico, você poderá ter resultados favoráveis para suas atividades se entender os processos e aplicar o aprendizado de máquinas a uma necessidade que enfrenta. Relaxe, abra seus horizontes e divirta-se nestas próximas quase 350 páginas que foram escritas com muita dedicação e carinho. Análise preditiva com Azure Machine Learning e R MVTech · 10 Prefácio A quantidade de dados gerados hoje pela grande variedade de sistemas e dispositivos é assustadora… Empresas, pessoas, indústria, trânsito, medicina, bancos, etc. etc. etc… Todos os segmentos hoje possuem uma capacidade de informações que claramente no passado não se imaginaria. E o mais incrível é que estamos ainda engatinhando, ou seja, em poucos anos isso crescerá exponencialmente. Onde está o desafio? As oportunidades? O dado está ai! Dificilmente você não tem o dado que você precisa. E se você não tem, provavelmente consegue capturar e em algum tempo já ter uma amostra significativa, e aí vem a oportunidade: e agora, o que faço com isso? Essa é A pergunta! Hoje conseguir essa resposta, tirar alguma informação que vale ouro, pode ser sim um grande diferencial competitivo. Falando um pouco da vida real, sou responsável pelo time de Tecnologia do Grupo Minha Vida, onde atingimos todos os meses mais de 20 milhões de pessoas com diversas plataformas digitais, onde uma delas é o Dieta e Saúde. Um app onde os usuários adicionam todas as suas refeições, com mais de 300 milhões de refeições inseridas por ano. Esse dado nos ajuda a entender melhor o comportamento da dieta das pessoas, oferecer sugestões de cardápios muito mais personalizados, escalar uma metodologia a partir do conhecimento real do consumo das pessoas. É um cruzamento de dados insano que nenhum profissional conseguiria manualmente capturar e muito menos analisar. Isso é só um exemplo de muitos que já praticamos hoje e de verdade mudamos de ponta cabeça nossos produtos e negócios… O fato curioso é que essa visão é nova e me lembro de anos atrás cogitamos “expurgar” dados do passado: “esse dado não serve para nada mesmo”. Ainda bem que não fizemos isso :). Análise preditiva com Azure Machine Learning e R MVTech · 11 As tecnologias estão ai! Os dados também! Agora é a sua vez. Neste livro você terá a oportunidade de aprender as principais tecnologias do mercado para dar os primeiros passos nessa exploração! Você aprenderá através de um conteúdo de simples leitura e com exemplos práticos um conteúdo ainda raro. Sem dúvida alguma você terá um diferencial no mercado enorme, uma vez que ainda é um mercado com poucos profissionais e com uma demanda do mercado gigantesca. Recomendo a leitura deste livro para todo profissional de tecnologia, mesmo os que não vão de fato trabalhar no dia-a-dia como um cientista de dados, analista de BI ou algo do gênero, pois é um conhecimento que sem dúvida alguma será útil para todas as áreas. Alexandre Tarifa – Diretor de TI do Grupo Minha Vida Análise preditiva com Azure Machine Learning e R MVTech · 12 Sumário 1 – O DIA-A-DIA DO CIENTISTA DE DADOS .......................................... 17 Por onde começar? .............................................................................................. 18 Evolução contínua para solidificar o conhecimento ............................................. 23 Mas, afinal, o que é um Cientista de Dados? ....................................................... 37 2 – INTRODUÇÃO À APRENDIZAGEM DE MÁQUINA E AO AZURE MACHINE LEARNING ......................................................................... 44 O que é Aprendizagem de Máquina? ................................................................... 44 As Motivações para Aprender ............................................................................. 45 Conceitos Fundamentais...................................................................................... 46 Características ................................................................................................. 46 Classes............................................................................................................. 47 Aprendizagem Supervisionada e Não-Supervisionada ......................................... 48 Azure Machine Learning – AzureML..................................................................... 50 Conhecendo o AzureML Studio ............................................................................ 52 Aba Projects .................................................................................................... 53 Aba Experiments ............................................................................................. 54 Aba Web Services ............................................................................................ 54 Aba Notebooks ................................................................................................ 54 Aba Datasets ................................................................................................... 56 Aba Trained Models ......................................................................................... 58 Aba Settings .................................................................................................... 58 Botão + NEW ................................................................................................... 59 Análise preditiva com Azure Machine Learning e R MVTech · 13 Módulos do Azure Machine Learning .................................................................. 60 3 – TRABALHANDO COM DADOS EXTERNOS ...................................... 63 A importância dos dados .....................................................................................63 Obtenção de dados .............................................................................................. 73 Lendo dados externos ao Azure Machine Learning .............................................. 75 Escrevendo dados a partir do Azure Machine Learning........................................ 82 4 – CRIANDO O PRIMEIRO MODELO .................................................. 90 Identificando o problema .................................................................................... 90 Componentes necessários ................................................................................... 91 Criando o primeiro modelo .................................................................................. 93 Organizando os Experimentos em Projetos ....................................................... 119 5 – VALIDANDO UM MODELO NO AZUREML .................................... 123 Evaluate Model ................................................................................................. 123 Validando Modelos............................................................................................ 125 Matriz de Confusão........................................................................................ 125 Acurácia ........................................................................................................ 128 Precisão ......................................................................................................... 129 Recall ............................................................................................................ 129 F1-Score ........................................................................................................ 130 Curva ROC e AUC ........................................................................................... 130 Precision/Recall e Lift..................................................................................... 132 Modelos de Regressão ....................................................................................... 133 Análise preditiva com Azure Machine Learning e R MVTech · 14 Cross Validate Model ......................................................................................... 134 Módulo Partition and Sample ............................................................................ 138 Sampling ....................................................................................................... 139 Assign to Folds ............................................................................................... 140 Pick Fold ........................................................................................................ 140 Head ............................................................................................................. 141 6 – EXPONDO MODELOS ATRAVÉS DE WEB SERVICES ....................... 143 Introdução e publicação dos web services do Azure Machine Learning ............. 143 Configuração dos web services publicados ........................................................ 147 Aba Dashboard .............................................................................................. 147 Aba Configuration .......................................................................................... 150 Alterando os Parâmetros do Web Service.......................................................... 152 APIs de Retreino – Retraining APIs .................................................................... 156 7 – INTRODUÇÃO À ALGORITMOS DE MACHINE LEARNING .............. 160 Introdução aos grupos de algoritmos ................................................................ 160 Modelos de Regressão ....................................................................................... 163 Regressão linear ............................................................................................ 163 Regressão Logística ........................................................................................ 169 Classificação ...................................................................................................... 172 SVM - Support Vector Machines ........................................................................ 173 Support Vector Machines para problemas não binários.................................. 178 Árvores de Decisão, Decision Trees, e Árvores de Decisão Otimizadas, Boosted Decision Trees ............................................................................................... 180 Redes Neurais................................................................................................ 189 Cluster K-Means ................................................................................................ 199 Agrupamento dos Dados ............................................................................... 199 Análise preditiva com Azure Machine Learning e R MVTech · 15 Entendendo Como Funciona o Algoritmo ....................................................... 204 Escolhendo a Quantidade de K (Clusters) no Algoritmo ..................................... 209 Detecção de Anomalias ..................................................................................... 215 Support Vector Machine de Uma Classe ......................................................... 216 Detecção de anomalia baseado em Principal Component Analysis ................. 220 Caminho das pedras na escolha do algoritmo .................................................... 224 8 – INTERAGINDO COM MODELOS ATRAVÉS DE NOTEBOOKS ........... 226 Criando um notebook no AzureML .................................................................... 226 Integração dos Notebooks ao AzureML ............................................................. 235 Interagindo com um dataset do AzureML .......................................................... 238 Publicando Web Services ................................................................................... 241 Consumindo um Web Service ........................................................................ 244 9 – AUMENTANDO AS POSSIBILIDADES COM R ................................ 247 IDE para desenvolvimento ................................................................................. 247 Utilizando a Linguagem R – Conceitos e Estruturas ............................................ 248 Expressões Aritméticas e Strings .................................................................... 249 Variáveis ........................................................................................................ 250 Funções ......................................................................................................... 251 Executando Arquivos ..................................................................................... 254 Vetores.......................................................................................................... 255 Matrizes ........................................................................................................ 259 Plotando Vetores e Matrizes .......................................................................... 261 Data Frames .................................................................................................. 268 Instalando Novos Pacotes .................................................................................. 276 Instalando e Usando um Pacote do CRAN ...................................................... 277 Análise preditiva com Azure Machine Learning e R MVTech · 16 Exemplos utilizados no Capítulo 1 – Dia-a-Dia do Cientista de Dados ................ 280 Regressão Linear............................................................................................281 Histograma e Diagrama de Caixa .................................................................... 285 Clusterização ................................................................................................. 290 Azure Machine Learning com R.......................................................................... 300 O Módulo “Execute R Script” ......................................................................... 300 Utilizar um script R codificado diretamente no componente .......................... 301 Utilização de um script codificado fora da plataforma .................................... 302 Utilizando uma biblioteca externa .................................................................. 306 Interagindo com datasets externos ................................................................ 307 Criando um modelo de aprendizagem de máquina dentro do módulo Execute R Script. ............................................................................................................ 309 Visualizando todas as bibliotecas do R instaladas no AzureML ........................ 310 O módulo Create R Model.............................................................................. 310 Configurando o módulo Create R Model para criar um modelo de Naïve Bayes ...................................................................................................................... 312 10 – VISUALIZAÇÃO DE DADOS ........................................................ 315 CONCLUSÃO ................................................................................... 345 Análise preditiva com Azure Machine Learning e R MVTech · 17 1 – O dia-a-dia do cientista de dados O papel do cientista de dados na sociedade, nos dias em que esta publicação foi escrita, ainda recebe uma aura endeusada por ser algo considerado novo e complexo. Porém, essa roupagem de utilizar o termo “cientista” com toda sua pompa e glamour só fez com que aumentasse esse misticismo ao redor da profissão. Imagine o cenário de uma análise de genes do DNA humano utilizando redes neurais com alguns bilhões de observações (conhecidos como linhas [ou registros] dentro da área de banco de dados) contendo algumas centenas de variáveis (conhecidas como colunas no banco de dados); isso parece ser enorme e deve dar um trabalho hercúleo para resolver. Alguém para trabalhar com esse cenário precisa ser um CIENTISTA. Ledo engano! Estatísticos enfrentam cenários similares em diversas ocasiões durante suas carreiras e isso não os torna semideuses com toda essa aura envolvida por não terem o título de cientista em sua carteira de trabalho. O papel do cientista de dados é, sim, analisar, destrinchar, esmiuçar, cruzar e porque não também caçar respostas nessa massa de dados. Estatísticos e matemáticos já fazem isso há anos, e por uma atuação pesada das áreas de marketing no mercado, hoje existem vários cientistas de dados de profissão que não são estatísticos ou matemáticos por formação, mas que exercem muito bem este papel no seu dia-a-dia. O objetivo deste capítulo é apresentar diversas técnicas que serão detalhadas em capítulos futuros, processos e ações que devem ser trabalhados pelo profissional que está usando modelos preditivos estatísticos para exercer sua função dentro da necessidade do seu negócio. Não desista porque você não é formado em física, por não ter um entendimento grande da matemática ou em estatísticas para saber a diferença entre média e mediana. Todos nós começamos nossos estudos em algum momento da vida e, neste momento, estamos todos praticamente no mesmo nível. No final deste livro espero que tenha aprendido todas as técnicas apresentada e, então, terá insumos para exercer melhor suas atividades diárias. Análise preditiva com Azure Machine Learning e R MVTech · 18 Por onde começar? Considero um bom ponto de partida sempre olhar os dados. Não é necessário olhar todo o universo de dados a ser analisado, mas apenas uma parte dele para que você tenha uma ideia de como estão estes dados e de como pode dar o próximo passo. Com essa visão inicial para conhecer a amostra dos dados seu papel será definir quais caminhos serão seguidos para poder responder as perguntas que lhe fizeram. Muitas vezes, as perguntas parecem vagas e superficiais, mas isso não tira sua seriedade. Seus clientes, internos ou externos pedirão respostas para perguntas do tipo “Como faço para vender mais?” Ou “Qual o melhor produto para mim?” Ou então “Quais são os perfis que mais utilizam este serviço?”. Todas estas respostas podem ser dadas através da análise de dados, e isso é uma das suas atribuições. Para responder à pergunta “Como posso vender mais?”, devem ser analisados dados de vendas do passado para encontrar o padrão de comportamento que fez as vendas aumentarem. Este padrão pode representar que o aumento em campanhas de marketing no fator de 5% ao mês nos últimos 18 meses fez as pessoas comprarem mais produtos. Ou então o padrão encontrado pode apresentar que as vendas aumentaram por causa de novos clientes que começaram a frequentar a loja e consumiram mais. A resposta encontrada para uma massa de dados A não é, necessariamente, a mesma resposta se analisada a massa de dados B, por mais que sejam da mesma rede de lojas e estejam situadas na mesma cidade. Depois de descobrir o motivo do aumento de vendas do passado, estima-se que continuar realizando as mesmas ações de sucesso faz com que o crescimento continue seguindo a mesma ordem de grandeza, correto? Não necessariamente! Existem fatores externos a essas análises iniciais que os dados apresentaram. Quais fatores externos podem impactar os números que vinham crescendo linearmente nos últimos meses e os fizeram desacelerar mesmo seguindo os mesmos investimentos em marketing? Será que o preço do barril de petróleo impacta minhas vendas, ou então será as chuvas que alagaram os campos de produção de feijão fizeram o preço do meu produto disparar e isso diminuiu as vendas? Análise preditiva com Azure Machine Learning e R MVTech · 19 Descobrir estes agentes também é o seu papel. Pensar, pensar e pensar. Quais ações ou produtos estão impactando o crescimento fará o CEO, que quer saber como vender mais, confiar ou não nas suas análises futuras. Até este momento, no cenário de aumento de vendas, o que foi feito foi um forecast padrão, pois segue somente os dados do passado para avançar a projeção do futuro com o mesmo fator de crescimento. Depois de definir as variáveis que fizeram parte desta descoberta de dados, e qual técnica pode ser aplicada neste modelo, será possível responder uma pergunta que avança a partir da anterior. Imagine a cena da apresentação do resultado para seu CEO, e então ele te fala: “Parabéns! Obrigado por mostrar qual é o fator que nos faz aumentar a venda. Agora que sabemos que o valor de investimento em marketing faz nosso faturamento aumentar. Quero saber: Qual será o faturamento se eu investir R$80 em marketing?”. Como um cientista de dados pode responder a esta pergunta? Uma das técnicas que pode ser aplicada para responder a essa pergunta é o uso de regressão linear, na qual um gráfico de dispersão é criado com dados existentes apresentando todas as relações de investimento e faturamento. Neste caso, em que se é preciso responder qual será a venda quando há aumento no investimento em marketing, pode-se dizer que o FATURAMENTO depende do INVESTIMENTO. Colocando estes termos em sintonia com os termos usados em pesquisa é correto dizer que o faturamento será a variável dependente e o investimento será a variável independenteporque o faturamento depende do investimento. Quando aplicamos esse modelo em uma regressão linear o eixo X é sempre representado pela variável independente, no caso do exemplo o INVESTIMENTO; e o eixo Y representa a variável dependente, o FATURAMENTO. Um gráfico de dispersão desta correlação entre investimento e faturamento pode ser observado na Figura 1. Análise preditiva com Azure Machine Learning e R MVTech · 20 Figura 1 - Amostragem de Investimento X Faturamento Para criar a regressão linear, o exemplo coletou todas as amostras de Investimentos Vs. Faturamento do passado e criou a linha que melhor representa a média de pontos entre os valores. Veja na Figura 2 esta linha de regressão. Análise preditiva com Azure Machine Learning e R MVTech · 21 Figura 2 - Linha de regressão do Investimento X Faturamento Após criar a linha da regressão, agora é possível predizer qual será o valor de faturamento baseado no investimento. Para isso, trace uma linha vertical a partir do eixo X até a linha de regressão e em seguida encontre o valor no eixo Y. Para calcular esta correlação é necessário utilizar o que é chamado de Coeficiente de Correlação, no qual uma das possibilidades de cálculo é dada pela multiplicação dos pares, e em seguida é calculada a média dos resultados. Essa multiplicação dos pares é feita com a multiplicação da variável X pela Y da primeira observação, em seguida multiplica-se a variável X pela Y da segunda observação, e assim sucessivamente até terminar toda a amostra. Por fim, é calculada a média destes resultados e com isso obtém o Coeficiente de Correlação. Quando este coeficiente está mais próximo de -1 ou 1 ele tende a ser melhor, quando está mais próximo de 0 ele tende a ser pior. A partir disso é necessário encontrar outras duas variáveis que são importantes para a regressão, a interceptação e a inclinação. Para finalizar esta estimativa de valores preditivos, é necessário utilizar uma equação linear para a regressão que foi proposta. Uma das equações amplamente utilizadas é: Análise preditiva com Azure Machine Learning e R MVTech · 22 𝑦 = 𝑎 + 𝑏𝑥 Onde y é a variável dependente; a é a interceptação da regressão logística; b é a inclinação da reta, e x é a variável independente. Ao aplicar os valores calculados e estimados na equação linear, será possível responder ao seu CEO qual será o faturamento esperado com o investimento planejado. A Figura 3 mostra o ponto de cruzamento do valor 8 do eixo X com a reta da regressão e uma reta do eixo Y até este mesmo ponto na reta de regressão. O valor do eixo Y apresentado é de 7,09. Lendo os títulos dos eixos, o eixo X possui os investimentos em marketing dividido por um fator de 10 e o Y o faturamento dividido por um fator de 100. Ao recalcular estes valores pelos fatores de divisão, será possível dizer ao certo os valores reais, sendo o investimento R$ 80,00 e o faturamento de aproximadamente R$ 709,00. Figura 3 - Valor de Faturamento com base no Investimento Não se preocupe em tentar entender a fundo a regressão logística neste momento, este processo será explicado com muitos detalhes nos Análise preditiva com Azure Machine Learning e R MVTech · 23 próximos capítulos, onde serão abordados os principais algoritmos e modelos preditivos para se trabalhar como cientista de dados. Este é só um exemplo da possibilidade de se responder uma pergunta que parece simples, mas que é bastante relevante. Evolução contínua para solidificar o conhecimento É importante e recomendado que os métodos estatísticos estejam claros para um cientista de dados, pois estes métodos são utilizados com muita frequência nas resoluções de problemas do cotidiano. Um exemplo disso é usar histogramas para representar visualmente uma amostragem de dados. Antes de criar o histograma, deve-se entender quais dados serão plotados no gráfico. Existem dois tipos de dados que podem ser usados, dados categóricos e dados numéricos. Dados categóricos são dados que não podem ser medidos, enquanto dados numéricos podem ser medidos. Para facilitar, mentalize um formulário de avaliação qualquer onde existem apenas duas perguntas. Uma que você deverá colocar a pontuação de 1 a 5 escolhendo a quantidade de estrelas que aquele serviço prestado merece, e o segundo campo é aberto onde você informa sua idade. As estrelas são consideradas dados categóricos e o campo idade é considerado dado numérico. Não é possível medir as respostas da pontuação das estrelas, mas a idade é possível. Para esclarecer essa diferença, dados numéricos (os que podem ser medidos) possuem métricas conhecidas, como idade, peso, altura, etc. Os intervalos daquela medida são conhecidos e inalterados. A idade é medida em anos, e sempre um ano é um ano. Isso será igual independente de quem esteja medindo. Sempre depois de 18 anos de idade, vem a idade de 19 anos. Seja no Brasil ou no Japão. Já os dados categóricos, que não podem ser medidos, dependem da experiência e conhecimento vivido de cada um que responde àquele questionário. Sua avaliação será diferente da minha, por mais que tenhamos o mesmo serviço prestado pelo mesmo fornecedor no mesmo momento. Pense neste formulário de resposta sendo a classificação que você daria para um filme clássico como “E o vento levou” e como um cinéfilo de 65 anos o faria. Agora Análise preditiva com Azure Machine Learning e R MVTech · 24 avalie um filme como “Star Wars Episódio VII” e convide este mesmo cinéfilo para o avaliar. Repare que a experiência e a vivência de cada um interferem diretamente no resultado. Voltando ao histograma, ele pode ser criado a partir de dados numéricos sendo uma representação gráfica que permite que dados sejam analisados baseados na média de ocorrências definidos por um intervalo. Imagine que você foi contratado para uma loja virtual que comercializa produtos que variam de R$1,00 a R$500,00 reais. É possível separar os produtos em categorias de faixas de preço, sendo a categoria 1 os produtos de R$1,00 a R$100,00 reais, a categoria 2 os produtos de R$101,00 a R$200,00 reais, e assim até a categoria 5 que varia de R$401,00 a R$500,00. Visualizando estes grupos com suas respectivas médias de preço, é possível encontrar uma representação visual como apresentado na Figura 4, onde o eixo X do gráfico representa o crescimento de valores e o eixo Y a frequência de aparições de produtos daquela faixa de preço na amostragem. Figura 4 - Histograma de frequência por preços Análise preditiva com Azure Machine Learning e R MVTech · 25 Com essa visualização, é possível observar que a maioria dos produtos está na faixa de preços entre R$201,00 e R$300,00 reais. Certo, mas então qual é a média de valor dos produtos em cada faixa de preço, ou então qual é a mediana, ou o valor mínimo e valor máximo? Todas estas respostas fazem parte de uma área da estatística chamada Médias de Posição, que retornam valores calculados da amostragem que são sempre utilizados por analistas por serem respostas básicas e muito úteis. Cálculos como Média Aritmética, Mediana, Moda, Quartis, Percentis, e alguns outros. Estes cálculos podem ser feitos manualmente entendendo como cada um dele é feito, ou então, utiliza- se algoritmos computacionais já escritos por outros profissionais que cedem seus códigos. Independente da forma que foi usada para calcular estes métodos, existe uma outra representação gráfica que possibilita uma análise mais assertiva e direta do que somente olhar a massa de dados. Esta representação é conhecidacomo Diagrama de Caixas, que apresentam os dados de Menor Valor, Primeiro Quartil, Mediana, Terceiro Quartil e Maior Valor. Entenda onde estes valores são impressos no Diagrama de Caixa observando a Figura 5. Figura 5 - Valores apresentados por um diagrama de caixa Maior Valor Terceiro Quartil Mediana Primeiro Quartil Menor Valor Análise preditiva com Azure Machine Learning e R MVTech · 26 Depois de entender os dados que são impressos em um diagrama de caixa, vale estender e realizar a análise para toda a amostragem. Isso ajudará a fazer descobertas nos dados de forma a melhorar a tomada de decisão. Acompanhe a Figura 6 como são apresentados os dados de cada faixa de preço no exemplo da loja virtual que foi usada para geração do histograma. Figura 6 - Diagrama de caixa por faixa de preço Observando os dados de um gráfico como esse e sabendo como é o cálculo de cada um dos valores estatísticos apresentados, é possível entender que a mediana dos preços da categoria 1 e 4 são muito próximas do terceiro quartil de valores. As categorias 3 e 5 possuem a mediana praticamente no centro entre os primeiro e terceiro quartis e a categoria 4 sendo uma categoria que possui valores relativamente próximos entre si. Repare que na categoria 4 existe um ponto muito abaixo da caixa, praticamente na direção da posição 300 no eixo Y. Este ponto no gráfico é conhecido como outlier, que é um dado que diverge do conjunto analisado e, geralmente, direciona o analista a removê-lo da análise para não impactar como um ruído no resultado esperado. Análise preditiva com Azure Machine Learning e R MVTech · 27 Outros processos amplamente estudados e conhecidos por cientistas de dados são técnicas de aprendizado de máquinas nos três níveis, a saber: Supervisionados, Não Supervisionados e Semi-supervisionados. O aprendizado supervisionado é informado ao algoritmo que fará a busca de padrões o que deve ser encontrado, que então passa a procurar por padrões semelhantes àquele informado e encontra os elementos que se assemelham ao que foi solicitado. O aprendizado semi-supervisionado trabalha com reforços positivos e negativos de acordo com o desempenho do algoritmo. Podendo melhorar a busca pelo padrão quando encontra o resultado positivo recebendo um reforço bom, e quando encontra algo que diz pertencer ao padrão e na verdade não é, ele recebe uma penalidade para aprender que aquele valor não faz parte daquele grupo. Já o aprendizado não supervisionado o cientista de dados não diz explicitamente o que o algoritmo deve procurar, este por sua vez aplica algumas técnicas de agrupamentos para encontrar padrões de semelhança entre os dados e separa na quantidade de grupos definidas. A partir deste momento, qualquer outro elemento que entrar na massa de dados que estão sendo analisadas passa a fazer parte de um dos grupos já existentes. Acompanhe uma técnica de aprendizado de máquina não supervisionada através do método K-Means (ou K-Média, em português), onde o K representa a quantidade de clusters (conglomerados) que o algoritmo irá receber e agrupar com base nos dados. Para entender este funcionamento continue a imaginar o cenário apresentado no exemplo do histograma da loja virtual. Porém, nesta técnica você não foi apresentado para nenhuma categoria, você só sabe que existem produtos com seus valores e também um índice de vendas, que não será utilizado para nada. Como você pode agrupar estes produtos dentro de 5 categorias? Ao gerar o gráfico desta amostra é possível ver os elementos conforme a Figura 7 Análise preditiva com Azure Machine Learning e R MVTech · 28 Figura 7 - Preço dos produtos sem categorias Sabemos que 5 categorias devem agrupar os valores, logo, o valor para K utilizado no algoritmo será de 5. Conhecendo isso, o algoritmo irá colocar aleatoriamente 5 pontos em posições distintas no gráfico. Ao colocar estes pontos aleatórios, o algoritmo calcula a distância média dos pontos existentes para estes 5 centroides que irão representar os grupos. Após este cálculo das médias, os pontos do centroide se movem para a posição que representa a média dos valores dos pontos que estavam mais próximos a ele. Novamente o cálculo das distâncias é feito e é verificado se algum ponto dos dados trocou de centroide por algum que está mais próximo a ele depois da movimentação. Isso fica em um loop até nenhum ponto trocar de grupo depois da movimentação do centroide. Neste momento o algoritmo considera que encontrou o ponto central de cada grupo. Com estes grupos definidos, é possível imprimir novamente o gráfico e ver como ficaram as separações dos dados, em cada um dos 5 grupos definidos inicialmente. Veja como ficou isso na Figura 8 abaixo. Análise preditiva com Azure Machine Learning e R MVTech · 29 Figura 8 - Dados separados em cinco grupos Também é possível apresentar ao gráfico as posições de cada centroide após o término do cálculo do algoritmo, isso define o porquê dos grupos terem sido segmentados da forma que estão plotados no gráfico. Acompanhe a Figura 9 onde estão cada um deste pontos. Análise preditiva com Azure Machine Learning e R MVTech · 30 Figura 9 - Posição de cada centroide nos grupos Com isso foi possível identificar facilmente as 5 categorias de preços que o algoritmo agrupou e, então, você poderá responder ao seu superior quais são as categorias que ele havia lhe pedido informando os elementos que estão em cada grupo. Também é possível replicar esta técnica de aprendizado não supervisionado para o primeiro exemplo que explicamos neste capítulo, que fala sobre o Investimento X Faturamento utilizando regressão linear. Voltando àquela massa de dados sem separação de segmentos encontra-se algo como apresentado na Figura 10. Análise preditiva com Azure Machine Learning e R MVTech · 31 Figura 10 - Dados sem separação de Investimento X Faturamento Agora, ao invés de usar apenas 5 grupos, como no exemplo da loja virtual, sua necessidade é trabalhar com 10 segmentos diferentes para poder responder ao CEO qual campanha de marketing teve melhor performance mesmo trabalhando em uma faixa de investimento semelhante. A separação em dez grupos destes dados apresenta uma segmentação como na Figura 11, veja como ficou. Análise preditiva com Azure Machine Learning e R MVTech · 32 Figura 11 - Separação de Investimento X Faturamento em dez grupos Para identificar melhor esta segmentação dos grupos também é possível colocar os pontos do centroide neste gráfico e visualizar onde cada ponto de cada grupo encontrou seu centro. Acompanhe os centroides na Figura 12. Análise preditiva com Azure Machine Learning e R MVTech · 33 Figura 12 - Centroides de cada um dos dez grupos Com isso é possível identificar as campanhas de marketing que tiveram mesmo grau de investimento, porém o retorno foi maior. Veja o exemplo do investimento que está no segmento do eixo X entre os valores 5 e 6. É possível ver claramente que existe um grupo em que o faturamento ficou em 7 e 8 no eixo Y (representado pela cor azul) e outro grupo que ficou entre 12 e 14 também no eixo Y (representado pela cor roxa). Isso possibilita ao tomador de decisão poder investir o mesmo valor das campanhas que estão no grupo B, que é entre 50 e 60 reais, porém direcionar para que sejam feitas campanhas similares as que foram utilizadas no grupo A, possuindo um retorno médio 50% maior de faturamento com o mesmo investimento. Análisepreditiva com Azure Machine Learning e R MVTech · 34 Figura 13 - Grupos A e B semelhantes E não são só de Regressões ou Clusters que é possível trabalhar com Aprendizado de Máquinas, também existe uma área de atuação conhecida como Classificação, que através de algumas observações é possível dizer em qual classe aquele elemento será posicionado – ou classificado. Imagine um cenário onde é preciso conceder empréstimo financeiro para um solicitante, e com base no comportamento de outros indivíduos que possuem perfis similares ao deste solicitante, é possível classificá-lo entre dois grupos, sendo “Bom Pagador” ou “Mau Pagador”. Com certeza esta classificação é delicada e muitas variáveis de entradadevem ser avaliadas para não cometer injustiça com este solicitante. Posto isso, que é uma classificação que depende de diversas variáveis, criar uma solução através de métodos estatísticos que avaliam os registros históricos de perfil e comportamento de muitos solicitantes de empréstimo é possível inferir que este solicitante de agora é um bom pagador ou não, baseado em sua classificação. Diversos algoritmos de classificação podem ser testados para realizar esta classificação binária para decidir se o solicitante do empréstimo é um bom ou mau pagador, onde apenas estas duas possibilidades existem. A B Análise preditiva com Azure Machine Learning e R MVTech · 35 Também pode-se trabalhar com classificação multi-classes, onde a possibilidade de adequar o valor é maior que duas possibilidades. Voltando ao cenário proposto acima, é possível criar alguns testes e comparar qual algoritmo de classificação binária possui a maior área de cobertura possível entre os algoritmos utilizados. Uma forma de fazer isso é comparando os valores da AUC – Area Under the Curve – Área sob a Curva, que é um valor calculado de qual é o percentual de possibilidades de acerto da predição que se está fazendo. Ao comparar os valores de AUC dos algoritmos testados, quanto maior for a curva mais assertivas serão as predições. Para chegar na curva AUC é necessário criar o processo de classificação e testar o desempenho dos algoritmos. Acompanhe na Figura 14 um pedaço de um exemplo destes algoritmos dentro do Azure Machine Learning. Figura 14 - Parte do fluxo de uma classificação Após o término do experimento é possível comparar a AUC dos algoritmos testados e encontra qual tem maior cobertura. Repare na Figura Análise preditiva com Azure Machine Learning e R MVTech · 36 15 a curva que cobre a AUC está destacada e representa um AUC de 0.691, isso significa aproximadamente 69% da área do gráfico coberta. Já na Figura 16 é possível ver a outra curva em destaque, e esta curva cobre aproximadamente 72% do gráfico, sendo eleita a vencedora na comparação com a anterior. Apesar de ambas curvas cobrirem áreas similares dentro do gráfico é importante utilizar o algoritmo que saiu vencedor na comparação, neste caso, o algoritmo que gerou o gráfico da segunda AUC. Figura 15 - AUC com cobertura de 69% Análise preditiva com Azure Machine Learning e R MVTech · 37 Figura 16 - AUC com cobertura de 72% Esta comparação de valores de AUC pode ocorrer diversas vezes dentro do processo de escolha do melhor algoritmo para a análise proposta. Após decidir qual algoritmo deve ser utilizado, ele é transformado em um Modelo Preditivo treinado e, então, os dados que precisam ser analisados passam a consultar este modelo que faz o papel de classificar o resultado em “Bom Pagador” ou “Mau Pagador”, comparando os novos dados inseridos com o modelo preditivo treinado. Mas, afinal, o que é um Cientista de Dados? Nas seções anteriores deste capítulo foram apresentados só alguns exemplos de respostas que podem ser obtidas através de técnicas que os cientistas de dados usam. Porém, não é só este tipo de atividade que o cientista faz em cima dos dados e suas análises, também são necessários conhecimentos nas áreas de Matemática, Descoberta de Conhecimento (KDD – Knowledge Discovery in Database), Visualização de Dados (Data Visualization), Aprendizado de Máquinas, Mineração de Dados e algumas Análise preditiva com Azure Machine Learning e R MVTech · 38 outras. Não só as áreas de atuação são diversas, mas também algumas linguagens de programação como Python, R, S, Java, Ruby, Skala, Octave, Kafka. Avançando um pouco mais neste mundo, chega um momento que sua massa de dados para análise é enorme e os dados não são totalmente estruturados. Neste momento, o uso de técnicas para resolver problemas através de soluções de Big Data passa a ser necessário. Tecnologias como HDInsight, Hadoop, Spark e Storm passam a ser usadas frequentemente e devem estar sempre a postos na sua mala de ferramentas. Ferramentas para expandir o uso de Big Data como Hive, Pig, Mahout, Sqoop, HBase, entre outros tantos começam a te deixar familiarizado com seu uso rotineiro. A ciência dos dados nos permite trabalhar tanto com um volume de dados pequeno quanto um volume gigantesco, na casa de Petabytes. Sejam eles estruturados ou não, oriundos da nossa empresa ou de fora. O resultado disso é o poder de ter insights poderosos que ajudarão a melhorar a tomada de decisão dentro da empresa. Relembre os exemplos anteriores deste capítulo e veja os benefícios! No fim do dia de trabalho, nosso principal objetivo é transformar dados em conhecimento. Pode ser que sejam usados somente dados estruturados, mas terá situações que os dados virão através de um agente não humano, como um dispositivo que emite sinais sobre telemetria de um carro. Ou sobre o funcionamento do marca-passo que foi implantado em um paciente com problemas no coração. Terá situações em que as análises poderão ser apenas através de ondas de sinais de rádio, ou micro-ondas, ou potência da frequência de um som. Para resolver problemas como estes é necessário separar o sinal do ruído e trabalhar no que é realmente importante descartando o excesso de dados, que são considerados sujos e inúteis. Recentemente, a Microsoft lançou o Skype for Business. Diversas apresentações foram feitas, nas quais dois interlocutores que falavam idiomas diferentes conversavam entre si, em seus respectivos idiomas, e o Skype utilizando técnicas de Processamento de Linguagem Natural fazia a tradução simultânea entre os dois envolvidos. Isso significa que não é mais necessário aprender chinês para fazer uma ligação para China na próxima semana. Pode- se fazer isso através do Skype e continuando a falar português daqui e a pessoa ouve chinês lá na outra ponta, ela responde em chinês e nós ouvimos em português aqui. Isso não é futuro, isso já é presente! Análise preditiva com Azure Machine Learning e R MVTech · 39 Basicamente, existem quatro grandes áreas para serem analisadas, e isso é amplamente discutido na literatura quando se estuda a ciência dos dados. As quatro áreas são: Análise Descritiva, Análise Diagnóstica, Análise Preditiva e Análise Prescritiva. Análise Descritiva: Ajuda a responder questões sobre o passado. Isso é possível analisando dados históricos de uma determinada situação e geralmente precisa de interação humana para interpretar os dados. Respostas para conhecer o que houve, como por exemplo, para responder “O que aconteceu com os pacientes que tiveram gripe em 2015?” ou então “Quem são os nossos clientes que mais compraram maças em fevereiro?”. Análise Diagnóstica: Ajuda a explicar as situações do passado e o motivo de acontecerem. Ao analisar os dados de um cenário no qualseus clientes estão cancelando a assinatura do seu produto é possível entender o porquê de estarem fazendo isto. Esta análise pode ser feita em conjunto com uma técnica conhecida no marketing como Churn, que analisa o engajamento de uma determinada amostra no decorrer do tempo. Análise Preditiva: Ajuda a prever o futuro. Esta análise pode ajudar a predizer com base em um ou mais conjuntos de entradas o que estes dados podem representar. Por exemplo, é possível dizer se uma transação bancária é fraudulenta ou não. Ou então, se um e-mail pode ser considerado SPAM ou um e-mail útil para quem o recebeu. Análise Prescritiva: Ajuda a nortear os próximos passos. Este tipo de processo ajuda o tomador de decisão a escolher um caminho para otimizar seu negócio. Em geral, é combinada com outras análises como, por exemplo, a análise preditiva. Imagine que seu negócio tenha envolvimento com análise de crédito e seus dados dizem que se um solicitador possui certos padrões de entrada (dados pertinentes ao solicitante) e isso representa que este o padrão comportamental do perfil possui uma taxa de inadimplência de mais de 75%. Análise preditiva com Azure Machine Learning e R MVTech · 40 Esta análise ajudará você a decidir se você fará o empréstimo para este solicitador. A ciência de dados também pode atuar em uma área que vem recebendo uma exploração nos últimos tempos que é a venda dos dados tratados e não tratados. Algumas empresas enxergaram este nicho como uma forma de faturamento e trabalham com processamento e limpeza de dados. Este nicho ganhou notoriedade nos últimos anos quando grandes fornecedores como Amazon e Microsoft abriram os marketplaces para que empresas pudessem comercializar os dados para o mundo. Com estes marketplaces é possível consumir dados de cotação do dólar, valor do barril de petróleo, entre outros, e com isso, cruzar estes dados externos com os dados da sua empresa e encontrar uma possível causalidade do porque está vendendo mais veículos movidos a Etanol do que a Gasolina. Mas não são só empresas que comercializam dados tratados que viram um diferencial competitivo neste segmento de mercado, as universidades também disponibilizam muitos dados de pesquisa de forma aberta e gratuita, os governos e agências governamentais também o fazem. Veja exemplos dos sites de transparência do governo brasileiro, ou então da NASA que é uma agência do governo americano. Sites como Dados.Gov1 que possui diversos dados nacionais abertos e gratuitos para uso em seus estudos ou pesquisa, como também o Data.Gov2 que faz a abertura de dados dos Estados Unidos. Alguns ministérios do Brasil, como o Ministério da Saúde disponibiliza através do DataSus todos os dados de atendimentos do Serviço Único de Saúde de vários anos para que sejam analisados por quem quiser. Isso para nós, cientistas de dados, é um grande universo inexplorado que ajuda nosso trabalho diário. Com o poder existente na computação em nuvem, o preço baixo e flexibilidade permite que nosso trabalho seja realizado da melhor forma possível. Muitos anos atrás, quando se precisava processar um grande volume de dados os computadores acessíveis ficavam dias, e até semanas para 1 http://www.dados.gov.br 2 http://www.data.gov Análise preditiva com Azure Machine Learning e R MVTech · 41 processar os dados necessários. Hoje em dia, é possível provisionar um computador com alguns Gigabytes de memória RAM e alguns núcleos de processadores. Isso faz o processamento desta massa de dados diminuir de tempo significativamente e acelera a entrega do resultado. Ao término do processamento, pode-se desligar o computador e não pagar mais pelo uso. Fornecedores como Amazon e Microsoft entregam soluções que atendem estes requisitos sem burocracia e num valor totalmente acessível para quem precisa trabalhar nestes cenários. Uma forma simples de enxergar o nosso trabalho diário é seguir um roteiro aceito por grande parte dos cientistas. Este roteiro é cíclico e começa com a identificação do problema na área solicitante, passa para o processo de coletar e limpar os dados, em seguida é desenvolvido o modelo preditivo, após o desenvolvimento o modelo é publicado e por fim deve-se monitorar a performance do modelo criado. O processo volta ao passo inicial que é identificar o problema com a área solicitante e entra em um loop sempre melhorando a cada iteração. Um pouco mais de detalhes destes processos estão descritos a seguir. É importante ter esse processo entendido completamente, pois serão explorados em cada experimento dos capítulos a seguir quando os exemplos forem criados. Passo 1 – Identificação do Problema: Este passo é o mais importante do processo como um todo. É a partir daqui que a área solicitante apresenta o problema e nós devemos partir desta solicitação para criar o modelo ideal. Não é bom para um cientista de dados que ele fique trabalhando por semanas ou meses na resolução de um problema e na hora que fez todo o processo de acordo com seu entendimento, os solicitadores dizem que não era aquilo. Para evitar este problema, os chamados Baby Steps auxiliam para que as entregas sejam menores e os solicitantes tenham capacidade de acompanhar passo a passo a evolução do projeto. Isso funciona para este processo, pois como as atividades são cíclicas depois de algumas iterações volta para a atividade de identificação do problema e a conversa com a área de negócios. Passo 2 - Coleta e limpeza de dados: A coleta dos dados é a primeira parte deste processo e garante que o dado correto seja adquirido de forma Análise preditiva com Azure Machine Learning e R MVTech · 42 eficiente. Estes dados brutos podem ser oriundos das bases de dados da empresa, dados de sensores de telemetria, dados originais de serviços de marketplace, e tantos outros. O segundo passo é limpar os dados para que a criação do modelo seja efetiva. Limpar os dados significa trabalhar com valores inexistentes, remover os outliers (lembra do outlier no diagrama de caixas apresentado na “categoria quatro” anteriormente no capítulo?). As correlações entre as variáveis pode ajudar a distinguir quais elementos são realmente úteis para a análise. Se existem duas variáveis que apresentam valores iguais, não são necessárias as duas na análise, visto que existe uma correlação muito forte entre elas, e ao usar apenas uma no modelo, a resposta pode ser encontrada. Passo 3 – Desenvolvimento do Modelo Preditivo: Esta é a parte que mais gostamos de fazer, pois é onde podemos mostrar todo nosso conhecimento e enfrentamos o grande desafio de encontrar o algoritmo correto para resolver o problema apresentado no passo 1 pela área de negócios. Este é um processo interativo, que nos permite analisar algumas possibilidades existente de algoritmos e comparar o desempenho de cada uma delas em cima dos dados que já estão prontos a partir do passo 2. Após comparar os resultados encontra-se o modelo mais apropriado para aquela amostra de dados. Passo 4 – Publicação do Modelo: Depois de desenvolver o modelo, a publicação do algoritmo para uso com dados reais, e não mais dados de treino e validação, é feita. Neste momento o resultado esperado é que os dados reais encontrem retornos como foram encontrados nos dados testados e isso mostra o quanto nosso algoritmo foi bem desenvolvido e ajustado para resolver os problemas reais que a área de negócios pode enfrentar. Passo 5 – Monitoramento da performance: Como já informado anteriormente, o processo é cíclico e não se encerraapós a publicação do modelo. As ações são baseadas em métodos estatísticos e matemáticos e Análise preditiva com Azure Machine Learning e R MVTech · 43 terão melhoras a cada vez que mais dados forem inseridos. É grande a chance de um processo não ter a melhor resposta nas primeiras vezes que for usado com dados reais, por isso, o processo volta alguns passos para que nós, cientistas de dados, possamos ajustar o algoritmo de forma que ele responda corretamente. Falando especificamente sobre técnicas de análise preditiva, muitas soluções podem ser usadas como as citadas neste capítulo, que não estão associadas a uma tecnologia específica, e sim ao conceito da técnica apresentada. Algumas destas soluções são gratuitas, outras pagas. Este livro aborda especificamente o uso do Azure Machine Learning para criar análise preditiva e permitir um próximo passo nas análises de seu negócio. Os exemplos de onde utilizar e como ter um benefício no cenário proposto serão feitos utilizando o Azure Machine Learning e as explicações detalhadas de como funciona a técnica utilizada serão feitas nos respectivos capítulos. Análise preditiva com Azure Machine Learning e R MVTech · 44 2 – Introdução à Aprendizagem de Máquina e ao Azure Machine Learning O que é Aprendizagem de Máquina? Aprendizagem de máquina, do inglês, Machine Learning, não é uma área nova ou recente. Na verdade, os algoritmos e processos utilizados datam de vários anos atrás. Sendo que existem diversas definições para a área. Segundo a Wikipedia3: “A aprendizagem automática é um subcampo da inteligência artificial dedicado ao desenvolvimento de algoritmos e técnicas que permitam ao computador aprender, isto é, que permitam ao computador aperfeiçoar seu desempenho em alguma tarefa. Enquanto que na Inteligência Artificial existem dois tipos de raciocínio – o indutivo, que extrai regras e padrões de grandes conjuntos de dados, e o dedutivo – o aprendizado de máquina só se preocupa com o indutivo. Algumas partes da aprendizagem automática estão intimamente ligadas à mineração de dados e estatística. Sua pesquisa foca nas propriedades dos métodos estatísticos, assim como sua complexidade computacional. Sua aplicação prática inclui o processamento de linguagem natural, motores de busca, diagnósticos médicos, bioinformática, reconhecimento de fala, reconhecimento de escrita, visão computacional e locomoção de robôs.”. Outra definição bastante utilizada é a de Arthur Samuel, definida em 1959, que define como: um campo de estudo que permite aos computadores aprenderem sem serem explicitamente programados. E por fim, uma das definições mais formais é a fornecida por Tom M. Mitchell: Um programa “aprende” a partir de experiências “E” com respeito a alguma classe de tarefas “T” e medida de desempenho “P”, se o desempenho de tarefas em “T”, medido por “P”, melhora com experiências “E”. 3 https://pt.wikipedia.org/wiki/Aprendizado_de_m%C3%A1quina Análise preditiva com Azure Machine Learning e R MVTech · 45 É importante notar que não é por existirem várias definições que uma invalida a outra. Particularmente, acreditamos que aprendizagem de máquina é a capacidade de dar subsídios para um programa computacional e obter respostas que de forma manual poderiam ser impossíveis, dado a complexidade, volume de dados e a alta dimensionalidade tratadas nos problemas. O objetivo de um sistema destes é obter uma solução (em geral um modelo ou a associação de vários modelos) para responder à problemas reais, tais como: previsão do tempo, detecção de formas diferentes de câncer, análise de perfil de compradores, análise de fala/escrita, entre muitas outras aplicações. Uma outra visão sobre o que é machine learning pode ser encontrada (em inglês) no blog de Machine Learning da Microsoft4, escrita por John Plat (Distinguished Scientist no Microsoft Research). As Motivações para Aprender Caso apareça a dúvida sobre quando utilizar (ou não utilizar) um modelo de aprendizagem, pense nos seguintes cenários sobre quando devemos utilizar: Aprenda quando você não pode codificar. Podemos citar: reconhecimento de fala, imagens e gestos. Aprenda quando você não pode escalar. Podemos citar: recomendações, classificação de e-mail indesejados (spam), e detecção de fraudes. Aprenda quando você precise adaptar e/ou personalizar. Podemos citar: escrita preditiva. 4 https://blogs.technet.microsoft.com/machinelearning/2014/07/01/what- is-machine-learning/ Análise preditiva com Azure Machine Learning e R MVTech · 46 Aprenda quando você não pode fazer o acompanhamento manual. Podemos citar: inteligência artificial em jogos e controle de robôs. Conceitos Fundamentais Já sabemos como é o dia a dia de um cientista de dados e também vimos algumas definições do que é aprendizagem de máquina. Para o restante do livro fazer sentido e para que você possa entender de forma completa sobre os tópicos abordados, precisamos introduzir alguns conceitos iniciais que são a base para os processos que veremos. Características Características, do inglês, features, são os componentes básicos que definem o objeto de estudo, ou seja, um conjunto de características é o que descreve/representa um objeto. A extração/seleção de características não é uma tarefa fácil, e frequentemente, pode se tornar na atividade mais onerosa de todo o processo. Uma característica efetiva, em geral, deveria ser invariante a escala ou rotação de um dado objeto de estudo. Estas características podem ser Categóricas ou Numéricas, esta última se subdividindo em Discretas ou Contínuas. Por exemplo, imagine um problema onde temos um conjunto de fotos de animais e queremos identificar a espécie presente em cada foto através de um algoritmo de aprendizagem de máquina. Devemos ter características invariantes a escala e rotação: um cachorro continua sendo um cachorro, seja uma foto grande ou pequena, esteja de frente ou de lado. É claro que modelos capazes de identificar vários cenários são em geral bastante complexos. Características Categóricas são aquelas que atuam como uma categoria, e normalmente possuem um conjunto conhecido e não mensurável (calculável) de valores. Exemplos nesta categoria no nosso contexto acima poderiam ser: cor do pelo, presença de asas (“sim”/”não”), presença de penas (“sim”/”não”), entre diversas outras. Em geral são valores não numéricos (palavras), mas isso não pode ser tomado como regra pois um número pode Análise preditiva com Azure Machine Learning e R MVTech · 47 ser categórico (representar uma categoria). Muitos algoritmos necessitam de apenas números como padrões de entrada, então é comum converter palavras em números e marca-los explicitamente como características categóricas. Características Numéricas são aquelas que possuem um conjunto possivelmente infinito de valores diferentes. Em geral valores numéricos. Exemplos de características, neste contexto, para nosso exemplo poderiam ser: peso do animal; cumprimento do animal; entre outros. Estes valores são considerados contínuos pois possuem uma variedade não limitada de possibilidades, por exemplo, o peso, que pode ser medido em uma balança de precisão e conseguir diferenciar alguns miligramas entre cada animal. Já os valores numéricos discretos são possibilidades conhecidas do intervalo possível de valores, por exemplo, quantidade de patas de um animal. As patas normalmente serão sempre entre 0 e 4, divididasem intervalos inteiros conhecidos. Existem algoritmos que se adaptam melhor a valores categóricos (exemplo: árvores de decisão, do inglês, decision trees) e existem aqueles que se adequam melhor a valores numéricos (exemplo: máquinas de vetor de suporte, do inglês, support vector machines). Uma técnica que é bastante utilizada sobre as características contínuas para adaptar em algoritmos não favoráveis a elas é a discretização. Por exemplo, ao invés de ter uma característica do peso do animal (contínua), poderíamos ter uma dividida em grupos: “[0 – 100g]”; “[100g – 1Kg]”; “[1Kg – 5 Kg]”; “[Mais de 5Kg]”. Claro que estes intervalos devem ser definidos de acordo com a necessidade do problema a ser resolvido. Classes Uma classe, também conhecida como rótulo, do inglês, label, é o valor que define o objeto. Lembra nosso problema apresentado na sessão de características sobre criar um modelo para identificação de um animal? O conjunto de classes neste problema é enorme, pois seria possivelmente todas as espécies de animais existentes. Um problema destes é bastante complexo, pois necessitamos informações e exemplos de muitos animais diferentes. Análise preditiva com Azure Machine Learning e R MVTech · 48 Os problemas na vida real em geral tratam um conjunto bem menor de possíveis classes: duas ou poucas classes é o comum. Problemas com muitas classes, principalmente os a serem resolvidos com algoritmos de aprendizagem supervisionada, exigem uma base de dados grande e que contemple exemplos de todas as classes desejadas. Em geral é melhor criarmos diversos modelos específicos do que tentar um modelo genérico que trata de muitos casos. Por exemplo, imagine que o nosso problema seja a detecção de câncer. Podemos ter um modelo que identifica qualquer tipo de câncer, que provavelmente seria inviável de ser construído, ou podemos ter diversos modelos que tentam identificar a presença de um tipo específico de câncer (possui ou não possui câncer de mama, possui ou não possui câncer de pele, etc.). Problemas de duas classes em geral são mais simples que problemas de três classes e assim por diante. O formato da resposta desejado ao problema é o que determinará a quantidade de classes, algoritmos a serem usados e também a complexidade do modelo. Aprendizagem Supervisionada e Não-Supervisionada Os algoritmos de aprendizagem podem ser agrupados/classificados segundo a sua abordagem, sendo os dois maiores grupos a aprendizagem supervisionada e aprendizagem não-supervisionada. Não abordaremos neste livro, mas existem outras abordagens como: aprendizagem por reforço, aprendizado multitarefa, aprendizagem semi-supervisionada, entre outras. Um ponto é comum em todos os modelos: Para operarem de forma satisfatória necessitam de dados sobre o problema a ser tratado. São através destes dados que ensinamos os modelos sobre o problema em questão. A atividade de ensinar um modelo é o que chamamos de treinamento. Problemas supervisionados são aqueles que necessitam conhecer os elementos (suas características), bem como suas classes. Em outras palavras, o conjunto de treino precisa estar rotulado. Análise preditiva com Azure Machine Learning e R MVTech · 49 Um conjunto de treino é normalmente representado um conjunto de pares, onde cada par é composto normalmente de um vetor de características e o objeto de saída desejado (classe). Para problemas mais complexos e/ou com muitas classes são necessários conjuntos de treino maiores (com representatividade em todas as classes estudadas). A seguir podemos observar um exemplo de um conjunto de dados que pode ser utilizado. Note que há apenas 4 exemplos, no mundo real para problemas mais complexos podemos ter milhares de exemplos (ou até mais). Class, sepal-length, sepal-width, petal-length, petal-width 1, 6.3, 2.9, 5.6, 1.8 0, 4.8, 3.4, 1.6, 0.2 1, 7.2, 3.2, 6, 1.8 0, 5.2, 3.4, 1.4, 0.2 Em destaque temos a classe de cada exemplo. Modelos que utilizam aprendizagem supervisionada precisam ser semelhantes a este. A informação da classe correta é utilizada pelos algoritmos durante o treino para ajustar o seu erro e assim maximizar a acurácia. Também utilizamos a classe, que conhecemos de antemão ao treino, para verificar o quão assertivo é o mesmo, através da comparação da classe correta com a classe que foi prevista com o modelo. Podemos citar alguns algoritmos que se encaixam na aprendizagem supervisionada: máquinas de vetor de suporte (SVM – support vector machines), redes neurais (neural networks), árvores de decisão (decision trees), k-vizinhos mais próximos (k-NN – k-nearest neighbors), entre outros. A aprendizagem de máquina não supervisionada aborda os algoritmos que não necessitam conhecer de antemão a classe correta. Para estes casos não é possível fazer uma comparação final automatizada para verificar o acerto (acurácia), mas existem vários cenários que podem se beneficiar de algoritmos com esta abordagem. Análise preditiva com Azure Machine Learning e R MVTech · 50 Dentre as atividades que se enquadram melhor na aprendizagem não supervisionada a mais comum é o agrupamento (clusterização) dos exemplos. Imagine que o desejado é agrupar consumidores semelhantes. Em geral temos como entrada para os algoritmos de clusterização o número de classes (N) que imaginamos existir no conjunto de dados. Com isso, ao término da execução do modelo teremos os exemplos separados em N classes. Podemos citar alguns algoritmos que se encaixam na aprendizagem não-supervisionada: k-means, algoritmo cocktail party, entre outros. Os algoritmos supervisionados são mais numerosos que os não- supervisionados. Na plataforma do Azure Machine Learning é possível encontrar os principais, bem como diversos outros, já implementados e prontos para seus experimentos. Abordaremos os principais algoritmos no Capítulo 7. Azure Machine Learning – AzureML Nos anos 90 e início dos anos 2000 os modelos de aprendizagem de máquina envolvendo grandes massas de dados poderiam passar diversas horas sendo processados, e em alguns casos dependendo do volume e complexidade do problema poderiam levar vários dias. A comparação do poder de computação dos anos 90 com hoje é injusto, mas hoje temos volumes de dados cada vez maiores (além de problemas mais complexos) e lidar com estes dados para construir modelos usando um desktop ou laptop se torna cada vez mais desafiador. É possível investir e comprar servidores para realizar estas tarefas, mas em geral isso envolve custos bastante elevados. Os processos, técnicas e algoritmos da área consomem bastante poder computacional (elevada utilização de memória RAM e CPU, e em alguns casos até GPU) durante a criação de seus modelos. Como muito da área é baseado em experimentação, diferentes parâmetros e algoritmos, diferentes Análise preditiva com Azure Machine Learning e R MVTech · 51 subconjuntos de dados e técnicas de combinação, torna-se necessário diversas (dezenas ou centenas) execuções até chegar em um modelo viável. Com isto em mente e com a evolução da capacidade e dos serviços de computação em nuvem a Microsoft criou uma plataforma baseada em nuvem para aprendizagem de máquina batizada de Azure Machine Learning. Imagine que com esta tecnologia é possível fazer a experimentação e construção dos modelos sem a necessidade de pagar pela aquisição e manutenção de grandes e caros servidores. O pagamento é mediante uso. Existe inclusive uma versão gratuita do AzureML para teste da plataforma. O Azure Machine Learning(AzureML5) é uma plataforma baseada na web , ou seja, não há a necessidade de instalar nenhum software específico no computador do cientista de dados, e o mesmo pode continuar o seu trabalho de qualquer estação conectada à internet. Conforme veremos nos capítulos a seguir, as possibilidades na criação dos modelos são bastante expressivas, e a sua capacidade de customização (seja com código escrito em R ou Python) tornam o AzureML bastante atrativo. Os modelos construídos e executados na plataforma são executados sobre servidores escaláveis e com grande capacidade de processamento, o que permite treinar um modelo (veja mais sobre treino no Capítulo 4) complexo em minutos. Isso faz com que o cientista de dados possa focar no seu trabalho sem se preocupar com servidores, conexões, infraestrutura, desempenho, entre outros aspectos. Além da construção dos modelos serem realizadas através de um navegador, o consumo destes modelos também é através do consumo de um serviço de nuvem. Suas APIs são baseadas em web services, o que facilita a sua utilização/integração em qualquer linguagem de programação moderna. Para testes é possível utilizar uma interface no Excel ou através do próprio AzureML Studio, conforme veremos no Capítulo 6. 5 Site do Azure Machine Learning: http://studio.azureml.net Análise preditiva com Azure Machine Learning e R MVTech · 52 Conhecendo o AzureML Studio A interface para criação dos modelos de machine learning é chamada de Studio. Ela é possível de ser acessada através do AzureML6 , retratada pela Figura 17. Figura 17 - Portal de entrada Para os que desejam testar e conhecer a plataforma (e para a maior parte dos exemplos mostrados neste livro) é possível utilizar o AzureML de graça e sem a necessidade de cartão de crédito, basta apenas uma conta Microsoft (Live, Hotmail, Outlook, etc.). Após entrar com as suas credenciais é possível observar o portal representado pela Figura 18. 6 Site do Azure Machine Learning: http://studio.azureml.net Análise preditiva com Azure Machine Learning e R MVTech · 53 Nota: É importante ressaltar que a plataforma recebe atualizações constantes (aproximadamente a cada 3 meses): novos algoritmos, novas formas de facilitar a vida do cientista de dados, bem como mudanças na interface gráfica (principalmente mudança nos menus). Então não se preocupe se a sua interface estiver ligeiramente diferente da apresentada, pois os conceitos para a sua utilização e o que você irá aprender com este livro não será prejudicado. Figura 18 - Portal do AzureML Existem 7 abas na região esquerda do ML Studio: Projects, Experiments, Web Services, Notebooks, Datasets, Trained Models e Settings. Aba Projects Com a utilização da plataforma, é normal o número de experimentos, conjuntos de dados e demais objetos crescerem bastante. Isso tornava a organização uma tarefa complicada, principalmente ao trabalhar em experimentos distintos em um mesmo espaço de trabalho (workspace). A essência de um projeto é agrupar estes diferentes objetos para facilitar a sua organização e controle. Esta aba possibilita a criação e manutenção de projetos. Análise preditiva com Azure Machine Learning e R MVTech · 54 Aba Experiments Esta região se subdivide em duas abas internas: My Experiments (meus experimentos) e Samples (exemplos). Esta aba pode ser observada na Figura 2. Na parte de My Experiments encontram-se todos os experimentos criados (ou copiados de outros espaços de trabalho) nesta conta, bem como uma visualização do experimento criado. Já em Samples existe uma grande coleção de experimentos prontos. Estes foram desenvolvidos pela Microsoft ou outros fornecedores e podem ser usados como referência. Existem alguns com objetivo de tutorial, mas existem dezenas deles retratando problemas do mundo real. Estes exemplos também foram expandidos para uma galeria própria7 (sob a bandeira das soluções inteligentes da Microsoft – Cortana Intelligence Suite) para expor e compartilhar experimentos. Esta galeria pode receber contribuições de qualquer pessoa que esteja desenvolvendo com a plataforma do Azure Machine Learning. Aba Web Services Nesta aba é possível observar os modelos expostos através da plataforma. A forma de comunicação das aplicações com o serviço do AzureML é através de web services. É possível fazer a configuração destes web services nesta região também. Os web services do AzureML são abordados com maior detalhamento no Capítulo 6. Aba Notebooks 7 Galeria do Cortana: https://gallery.cortanaintelligence.com Análise preditiva com Azure Machine Learning e R MVTech · 55 Esta aba permite a visualização de todos os notebooks já criados. No momento da escrita deste livro o recurso se encontra ainda em preview (visualização) e permite a interação e criação de Jupyter notebooks para as linguagens Python e R. Através dos notebooks o cientista de dados pode criar documentos vivos para documentar o processo que realizou, mostrar a sua lógica de pensamento, baseado numa plataforma online que pode armazenar texto ou código, bem como executar este código e já adicioná-lo dentro do documento. Para entender melhor o funcionamento do Azure ML Notebook a Microsoft criou um notebook de exemplo que pode ser criado através do botão + NEW -> Notebook -> Tutorial on Azure Machine Learning Notebook, acompanhe a Figura 19. Figura 19 - Jupyter Notebook utilizando linguagem Python Análise preditiva com Azure Machine Learning e R MVTech · 56 Aba Datasets Nesta aba é possível fazer a gestão dos conjuntos de dados que foram utilizados (upload) nos experimentos criados ou que ainda serão utilizados. Também há a divisão em duas abas internas: uma para os seus datasets e outra para os utilizados nos experimentos de exemplo. Esta aba pode ser observada na Figura 20. Os datasets de exemplo (e os seus) podem ser reutilizados em quantos experimentos desejar, é uma excelente forma de iniciar o estudo da plataforma sem ter que montar bases de dados para análise. Figura 20 - Aba de Datasets Algo que veremos na parte de integração com R (Capítulo 9) é a capacidade da utilização de bibliotecas, scripts próprios, e arquivos de dados do R (.RData) na plataforma. Para tal podemos fazer upload de um arquivo .zip contendo estes arquivos. Estes arquivos .zip podem ser vistos e gerenciados nesta aba. Análise preditiva com Azure Machine Learning e R MVTech · 57 Também é possível apagar ou fazer download destes datasets, abrir em um notebook, ou gerar um código de liberação para acesso programático ao dataset da IDE de desenvolvimento da sua escolha (sem necessariamente ser através do AzureML). Esta opção pode ser observada na Figura 21. É importante perceber que o token presente no código concede acesso a todo seu workspace. Trate ele com as mesmas restrições e segurança que uma senha teria. Figura 21 - Código para acessar um dataset programaticamente Análise preditiva com Azure Machine Learning e R MVTech · 58 Aba Trained Models Ao terminar um experimento (normalmente após treiná-lo) é possível armazenar este modelo para sua utilização em novos experimentos. Esta aba armazena e permite a gestão destes modelos salvos. Aba Settings Esta aba contém três sub abas: Name, Authorization Tokens e Users.
Compartilhar