Você está na página 1de 52

Utilização Básica da Plataforma Lemonade

O Lemonade1 é uma plataforma baseada na Web para criação de fluxos de trabalho


(​workflows​) que envolvam extração, transformação e carregamento de dados (​Extract,
Transform, Load ​– ETL), além de permitir a aplicação técnicas de mineração de dados e
aprendizado de máquina. A plataforma proporciona facilidades aos usuários para execução
de ​workflows de processamentos paralelo e distribuído, sem requerer proficiência em
linguagens de programação. Uma versão estável da plataforma está disponível em:
Página oficial do Lemonade​.

Este tutorial visa apresentar ao usuário iniciante diversos exemplos da utilização básica da
plataforma. As etapas de utilização da ​Lemonade abordados neste documento estão
divididos nos seguintes tópicos:
1. Criação de usuários e apresentação do ambiente de trabalho;
2. Importação de bases de dados;
3. Edição de fluxos de trabalhos (​workflows)​ ​;
4. Criação de um experimento preditivo;
5. Criação de um painel de visualizações.

1. Criação de usuários e apresentação do ambiente de trabalho

Para criação de usuários na plataforma Lemonade, acesse a ​página oficial da ferramenta​.


Uma visualização da página inicial é mostrada a seguir.

1
​Lemonade é um acrônimo para ​L​ive ​Ex
​ ploration and ​M​ining ​O​f a​ N​on-trivial ​A​mount of
D​ata from ​E​verywhere.
Para criação de um novo usuário, basta clicar em ​Criar conta​. A seguir, você será
redirecionado para a página de registro, na qual é necessário inserir alguns dados para
cadastro de novo usuário.

Insira os dados requeridos (primeiro nome, último nome, e-mail e senha), como mostrado na
imagem abaixo e, assinale a opção “Concordo com os termos de uso ​Policy​”. Clique em
Registrar para finalizar a criação do usuário. Todas as informações solicitadas são
obrigatórias e podem ser modificadas posteriormente.

Após a criação do usuário, você será redirecionado para a página inicial da plataforma e
realizar o seu login. Preencha o e-mail e senha cadastrados, clicando em ​Entrar para
acessar a plataforma.
No primeiro acesso de um novo usuário, a tela de abertura não apresentará nenhum
registro de atualizações dentro da plataforma. A medida que o usuário explora a plataforma,
a tela de abertura permite o acesso rápido às bases de dados, aos fluxos de trabalho, às
execuções desses fluxos e aos dashboards atualizados recentementes, como mostrado na
imagem abaixo.

No menu de atualizações recentes da tela inicial, o link para ​Bases de dados ​mostra as
bases de dados criadas/salvas recentemente na plataforma. Já o link para ​Fluxos de
trabalho ​exibe os fluxos criados recentemente pelos usuários. O link para ​Execuções
contém as execuções dos fluxos de dados feitas pelos diferentes usuários. O link para
Dashboards ​apresenta os últimos dashboards (agrupamento de visualizações de
resultados de um fluxo de trabalho) criados. Além disso, as abas existentes no menu
superior da tela inicial permitem a importação/criação de novas bases de dados e a
criação/execução de novos fluxos de trabalho.

Para alterar as informações do usuário, clique sobre o seu nome no canto superior direito
da tela e depois em ​Perfil​:

Uma tela de edição de dados do usuário aparecerá, como indicado na imagem a seguir.
Nessa tela é possível ainda escolher o idioma da plataforma (português ou inglês). Clique
em ​OK​ para aplicar as alterações feitas.
Para alterar a senha, o usuário deverá clicar em ​Também altere a minha senha​,
estendendo a tela acima para a imagem a seguir. Em seguida, é necessário preencher a
nova senha. Para finalizar a troca, clique em ​OK​.

2. Importação de bases de dados

Após a criação do usuário e reconhecimento do ​layout básico da plataforma, você poderá


prosseguir para a importação de bases de dados, utilizadas como entrada em processos de
fluxos de trabalhos. Para iniciar a importação de uma base, clique na primeira aba na parte
superior da página, chamada ​Base de dados​:

A tela de importação de bases de dados aparecerá, e é nela que será feito o gerenciamento
das bases de dados que você escolher utilizar. Para carregar uma base de dados clique no
botão ​Adicionar​:
A seguir, clique em ​Escolha​ na seção chamada “​Sistema de arquivos distribuído (HDFS)”:

Você poderá arrastar o arquivo do seu gerenciador de arquivos ou selecioná-lo


manualmente:
Para este tutorial, utilizaremos a ​base de dados Iris​, uma das mais reconhecidas na
literatura de reconhecimento de padrões. Faça o ​download dessa base de dados para
seu computador para um arquivo chamado “iris.csv”. Uma outra opção é criar um arquivo no
seu computador chamado “iris.csv” e copiar manualmente os dados presentes no ​link
indicado para esse arquivo. A seguir, selecione ou arraste o arquivo para a plataforma
Lemonade e, a sua base de dados estará disponível quando você clicar novamente na aba
Base de dados ​na parte superior da página.

Com o arquivo carregado, a base de dados aparece na tela com algumas opções de
gerenciamento e informações básicas, como seu ID de identificação na plataforma, nome,
descrição, formato, data de criação, o nome do usuário responsável pelo carregamento e
suas tags. Além disso, outras opções de gerenciamento são:

: Exclui a base de dados da plataforma.

: Efetua o download da base de dados que foi carregada para a plataforma.

Ao clicar no nome da base de dados, prosseguimos para a aba de ​Informações básicas​.


Informações como nome da base de dados e descrição da mesma podem ser alteradas
nessa aba.

Na tela de edição, alguns campos de destaque são:

● Formato​: Explicita o formato em que o arquivo da base de dados está. No exemplo,


a base está no formato CSV.
● Tags: ​Define rótulos pré-existentes para essa base dados. Por exemplo, “Base de
classificação”, “Base de regressão”, “Base do experimento X”, etc.
● Armazenamento: ​Indica onde a base de dados está armazenada e qual sistema de
arquivos está sendo utilizado para armazená-la. Essa opção não pode ser
modificada.
● Tratar estes valores como valores nulos (opcional)​: Define um valor (ou uma
expressão) a ser tratado como nulo ou ausente na base de dados. Caso esse valor
apareça, o mesmo será convertido para ​null ​na plataforma Lemonade. Exemplos de
possíveis opções: “n/a”, “none”, “NA” ou “?”.
● Usar a primeira linha como cabeçalho​: Se marcado, define que a primeira linha da
base de dados será utilizada como cabeçalho.
● Multilinhas (atributo com quebra de linha): Se marcado, define que existirá um
atributo explícito indicando a quebra de linha.
● Delimitador de atributos (apenas CSV): Indica o delimitador de atributos (ou
variáveis) utilizado pela plataforma para arquivos no formato CSV. Possíveis opções:
“,” (vírgula), “;” (ponto-e-vírgula), “.” (ponto), “{tab}”, “{new_line \n}” ou “{new_line
\r\n}”.
● Delimitador de registro (apenas CSV): ​Indica o delimitador de registros (exemplos
ou instâncias) utilizado pela plataforma para arquivos no formato CSV. ​Possíveis
opções: “,” (vírgula), “;” (ponto-e-vírgula), “.” (ponto), “{tab}”, “{new_line \n}” ou
“{new_line \r\n}”.
● Delimitador de texto (apenas CSV): ​Indica o delimitador de texto (String) utilizado
pela plataforma para arquivos no formato CSV. Possíveis opções: “ '' ” (aspas
duplas) ou “ ‘ ” (aspas simples).
● Codificação (opcional)​: Indica o tratamento de codificação de caracteres a ser
usado na base de dados. Possíveis opções: “ISO-8859-1”, “UTF-8” ou “UTF-16”.

Em relação às opções de botões, têm-se:

● Salvar: ​Salva a base de dados com as modificações realizadas pelo usuário.


● Cancelar: ​Cancela a edição da base e volta para a aba de bases de dados.
● Inferir esquema​: Infere o esquema de atributos da base de dados, sem necessitar
da adição manual. Para isso, é obrigatoriamente necessário especificar o
delimitador de texto ​no caso do CSV. Caso a base tenha cabeçalho, o usuário
deverá a marcar a opção ​Usar a primeira linha como cabeçalho. ​No caso da base
Iris, o delimitador de texto é a o caractere de vírgula (“ , “) e a mesma não possui
cabeçalho predefinido.
● Pré-visualização: ​Pré-visualiza a base de dados no formato atualmente definido,
seja ele o formato padrão da plataforma ou no formato alterado pelo usuário.
Para editar os atributos da base de dados, clique na aba ​Atributos dentro da seção ​Base
de dados​. É possível editar os nomes dos atributos (mesmo quando existe cabeçalho
predefinido), alterar o tipo desses atributos (decimal, data, caractere, texto, etc), alterar o
seu formato e sua representação em relação a dados ausentes ou nulos (por exemplo,
“n/a”, “none”, “NA” ou “?”) . Neste tutorial, iremos renomear os nomes dos atributos inferidos
da base ​Iris para os seus ​verdadeiros nomes ​(​sepal length, sepal width, petal length, petal
width​ e ​class)​ , Portanto, o esquema da base de dados Iris ficará da seguinte forma:

Para salvar as mudanças feitas nos atributos, clique em ​Salvar​, e para pré-visualizar a base
formatada, clique em ​Pré-visualização​. A imagem a seguir será mostrada para o usuário,
como pré-visualização da base editada.
3. Edição de fluxos de trabalhos (​workflows)​

Após a importação da base de dados é possível criar um fluxo de trabalho (ou ​workflow). A
aba de ​Fluxos de trabalho ​apresenta todos os fluxos criados pelo usuário na plataforma
Lemonade.

Para entender o funcionamento básico de um ​workflow e a visualização dos resultados, é


preciso entender alguns conceitos fundamentais relacionados. Um fluxo de trabalho
consiste em uma simples interface de arrastar e conectar blocos. Cada um desses blocos
define operações de manipulação e extração de conhecimento sobre dados. Esses mesmos
blocos possuem campos obrigatórios, os quais são indicados por um asterisco ao seu lado.
Cada bloco também contém parâmetros para adaptá-los e, portanto, utilizá-los em diversos
fluxos diferentes.

Para começar com a criação de um fluxo clique na aba superior ​Fluxos de trabalho​. Clique
em ​Adicionar​ (canto superior direito da tela).
Em seguida, o usuário será redirecionado a tela de criação de um novo fluxo de trabalho.
Em ​Para uma plataforma de processamento​, escreva o nome do fluxo de trabalho e
selecione Spark como plataforma de processamento, que é uma plataforma para análise e
extração de conhecimento de grandes bases de dados. Por fim, clique no botão ​Criar um
novo fluxo de trabalho​.

A aba ​A partir de um modelo cria um fluxo de trabalho a partir de um modelo, i.e., um fluxo
de trabalho definido por um tópico elaborado por cientistas de dados do Lemonade (i.e.,
classificação, regressão, agrupamento, mineração de padrões frequentes e ​deep learning)​ .
Já a aba ​A partir de um modelo criado por usuários também cria um fluxo a partir de um
tópico, mas o mesmo é elaborado pelos usuários, não pelos cientistas de dados do
Lemonade. Caso você clique na aba ​Fluxos de trabalho no menu superior neste momento,
você encontrará o seu fluxo de trabalho criado.

Da mesma forma que na aba base de dados, o fluxo de trabalho aparece na tela com
algumas opções para seu gerenciamento e seus dados básicos - seu ID de identificação na
plataforma, seu nome, sua descrição, seu formato, sua data de criação, o nome do usuário

responsável pelo carregamento e sua versão. Além disso, o botão exclui o fluxo da
plataforma Lemonade.

Finalizada a criação do fluxo, você será automaticamente redirecionado para o editor de


fluxos de trabalho. À esquerda do editor se encontram todas as operações suportadas.
Inicialmente aparecem apenas as categorias e, ao clicar em uma categoria, subcategorias
ou blocos que podem ser usados são expandidos.
As seguintes categorias e suas as operações encontradas na plataforma Lemonade são
descritas brevemente a seguir:

● Entrada e saída: ​Operações para leitura e escrita de dados e modelos.


● Manipulação de dados: ​Operações para manipulação (tratamento ou
transformação) direta dos dados.
● Pré-processamento dos dados: ​Operações que definem algoritmos para
pré-processar os dados.
● Aprendizado de máquina: ​Operações que definem algoritmos que
aprendem sobre os dados sem serem explicitamente programados para isso.
● Modelo e Avaliação: ​Operações para processar e avaliar modelos criados
por operações de aprendizado de máquina.
● Visualização de dados: ​Operações de visualização de dados e resultados
em diferentes formatos, como gráficos e mapas.
● Avançado: ​Operações avançadas que dependem de um conhecimento a
priori em programação (em Python), linguagem para manipulação de bases
de dados e manipulação de bancos de dados geográficos.
Na barra superior à direita são disponibilizadas as seguintes opções:

: Salva as modificações realizadas no projeto;

: Realiza uma cópia do fluxo de tarefas;

: Exibe o histórico do fluxo de tarefas e permite restaurar o fluxo em


relação a cada mudança salva anteriormente;

: Executa o fluxo de tarefa criado.

Por fim, temos as opções de alinhamento de fluxo de tarefa, habilitação/desabilitação de


tarefas e de zoom:

: Alinha o fluxo de tarefas à esquerda;


: Alinha o fluxo de tarefas à direita;

: Alinha o fluxo de tarefas à parte superior;

: Alinha o fluxo de tarefas à parte inferior;

: Distribui o fluxo de tarefas horizontalmente.

: Distribui o fluxo de tarefas verticalmente.

: Habilita/desabilita operações (tarefas) selecionadas.

: Indica a porcentagem de zoom do fluxo de tarefas.

A seguir criaremos um fluxo que importa a base de dados Iris, adicionada anteriormente na
plataforma. Clique na categoria ​Entrada e saída ​e, em seguida, arraste a operação ​Ler
dados para a área de trabalho desse fluxo de tarefas, que é representado por uma malha
(​grid)​. Para acessar as suas propriedades clique duas vezes sobre o “Leitor de dados 0”. A
descrição para as propriedades da operação ​Ler dados se encontra em ​documentação
específica ​- Ler dados​. Clique em ​Escolha uma opção e selecione “Base de dados Iris”
em​ Fonte de dados​, como mostrado na imagem mais à direita a seguir.

Ainda nas propriedades da operação, clique na aba ​Resultados e selecione Exibir


amostra(s) da(s) saída(s) (máx. 50 registros) e ​Exibir esquema/dicionário da(s)
saída(s)​, como mostrado na imagem à direita a seguir. ​Isso permitirá a visualização dos 50
primeiros exemplos da base ​Iris​ e também a sua estrutura.
Agora que o fluxo está pronto para execução, clique no botão verde executar ( ) que está
na parte superior à direita, acima da malha que representa o ambiente do fluxo de trabalho.
Uma tela de execução será acionada. Para executar o fluxo, clique em ​Executar​.

Será exibido à direita da tela o relatório (​log​) da execução do fluxo de trabalho, indicando
cada passo da execução. O ícone verde ao lado de “Logs” indica o sucesso da execução.
Caso contrário, aparecerá um ícone vermelho ao lado de “Logs”, indicando o erro. O ​log
também indicará qual tipo de erro ocorreu, como mostrado na imagem abaixo.
Caso tenha sido executado com sucesso, o fluxo de trabalho terá a indicação de um ícone
positivo verde em seu interior. Caso contrário, o fluxo de trabalho terá a indicação de um
ícone negativo vermelho em seu interior.

Com a execução finalizada com sucesso, você pode ir na aba de ​Resultados após a
execução para poder visualizar os resultados da execução da operação ​Ler dados​:

A aba exibirá os 50 primeiros resultados da leitura da base de dados Iris, como mostrado na
imagem abaixo com os 17 primeiros registros (exemplos ou instâncias) dessa base.
Note que existem outras duas abas que podem ser utilizadas após a execução, ​Detalhes
(execução) e ​Código-fonte​. Enquanto a primeira define informações relacionadas à
execução (data, usuário e o cluster utilizado para execução), o segunda define o código
fonte da operação.

4. Estudo de caso: Como prever a espécie de flores do gênero Iris

Agora que já finalizamos a apresentação básica da criação de um fluxo de trabalho,


podemos aprofundar um pouco mais sobre a manipulação de fluxos, criando o nosso
primeiro experimento completo baseado em um estudo de caso. Neste estudo de caso,
utilizaremos algoritmos de aprendizado de máquina em uma tarefa de classificação, para
avaliar e prever o comportamento dos atributos da base de dados que carregamos
anteriormente na Seção 2.

A base de dados ​Iris foi utilizada por R.A. Fisher em 1936 no clássico artigo ​The Use of
Multiple Measurements in Taxonomic Problems.​ Essa base é modelada como um problema
de classificação. Em um problema de classificação, a ideia é predizer a natureza
desconhecida de uma observação (instância ou exemplo) baseando-se atributos previsores
(características ou variáveis) que a descrevem, ou seja, uma coleção de medidas numéricas
e/ou categóricas. A natureza desconhecida de uma observação é chamada de classe
(rótulo, ​class​ ou ​label)​ .

Por exemplo, a base de dados Iris é composta por três espécies de flores do gênero ​Iris: Iris
​ u Iris Virginica. ​Essas três espécies são consideradas como
Setosa, Iris Versicolour o
diferentes categorias ou classes. Cada espécie de flor ​Iris ​é composta por 50 observações e
por quatro atributos que descrevem cada espécie de flor:

1. Sepal Length:​ Comprimento da sépala em cm;


2. Sepal Width​: Largura da sépala em cm;
3. Petal Length:​ Comprimento da pétala em cm,
4. Petal Width​: Largura da pétala em cm.

O algoritmo de classificação irá predizer uma nova espécie de Iris, dentre as três possíveis
(​ris Setosa, Iris Versicolour ​ou​ Iris Virginica)​ , dado esses quatro atributos.

Antes da definição do modelo de classificação, o objetivo é realizar uma análise inicial dos
dados, através da etapa de análise estatística. A análise estatística dos dados auxilia na
compreensão da relação entre os atributos, além de possibilitar inferir informações mais
completas sobre a base de dados. A plataforma Lemonade permite a criação de um fluxo de
trabalho para geração de um sumário estatístico da base de dados. ​Vamos criar um fluxo de
trabalho com o nome “Meu primeiro experimento preditivo”.

Para obter a análise estatística básica dos dados, devemos ler os dados utilizando a
operação ​Ler dados (operação de ​Entrada e saída​). Nesta categoria, encontramos todas
as operações de entrada e saída das bases de dados e dos modelos. Para utilizarmos a
operação de leitura, basta selecioná-la na aba de operações e arrastá-la para o ​grid​. O
mesmo deve ser feito com a operação ​Sumário estatístico​, ligando as duas ao arrastar o
plug de saída da operação ​Ler dados ​para o conector de entrada da operação ​Sumário
estatístico, ​como indicado na imagem.

Ao clicar na operação ​Ler dados​, a ferramenta disponibiliza uma aba a direita com todos os
parâmetros de configuração. Em ​Fonte de dados​, selecione a base “iris.csv”.
A aba ​Execução​ contém os parâmetros de execução descritos a seguir.

● Tratar esse valores como nulos (separe por vírgula)​: Esta funcionalidade é
utilizada quando se é necessário corrigir/eliminar atributos do fluxo de dados;
● Inferir esquema da fonte de dados: Determina como os atributos serão inferidos
pela operação. É recomendado que os atributos sejam inferidos da base de dados;
● O que fazer em caso de dados inválidos​: ​Convert Invalid data to NULL​.
Determina como os atributos inválidos devem ser tratados. Neste caso definimos
que todos os dados inválidos serão convertidos para ​NULO ​automaticamente;

A aba ​Resultados nos permite manipular quais informações serão exibidas após a
execução. Para este caso selecionamos as opções:

● Exibir amostras das saídas: ​permite visualizar uma prévia dos dados;
● Exibir esquema/dicionário das saídas: ​exibe o formato dos dado de cada atributo;
● Exibir relatórios textuais (se disponíveis)​: exibe relatórios de texto caso
disponíveis. Esses relatórios geralmente estão vinculados a resultados de análise de
algoritmos;
● Exibir relatórios e gráficos (se disponíveis): ​exibe imagens e/ou gráficos quando
disponíveis;

A operação para o cálculo do ​Sumário Estatístico da base está em ​Visualização de


Dados​.
O único parâmetro que vamos definir é o nome da tabela de sumário. Ao executar o fluxo
temos o resultado.

Os resultados da análise estatística estão apresentados na aba ​Visualizações​:


O que nós podemos tentar predizer?

A partir da análise dos ​atributos ​de cada registro (linha) podemos predizer a qual espécie de
uma observação em particular, uma vez que o comprimento e a largura da pétala e sépala
são os atributos de uma espécie e a classe o ​rótulo. Estas informações são fundamentais
para a aplicação de algoritmos de classificação.

No ​Lemonade​, todas as operações relacionadas ao aprendizado de máquina estão


baseadas no ​Apache Spark Framework,​ ​logo precisamos formatar as operações do fluxo de
forma que os parâmetros se adequem a seguinte estrutura de dados.

Portanto a próxima etapa do nosso experimento consiste no treinamento e avaliação de um


modelo de classificação. Cada modelo é formado pela estrutura de dados e um algoritmo de
aprendizado de máquina. Ao final, o nosso modelo será avaliado utilizando um processo de
validação cruzada ou ​Cross-validation ML process.

Extração de atributos

Para construir um modelo de classificação, primeiramente precisamos extrair todos os


atributos que mais contribuem para classificação dos dados.
Na base de dados ​Iris,​ a espécie das flores é rotulada (​labeled) em 3 classes: ​iris-virginica,
iris-setosa, iris-versicolor, enquanto os atributos s​ ão definidas pelos tamanho e largura da
sépala e da pétala: ​sepal length, sepal width, petal length, petal width​.

Para que a classe ou espécie possa ser utilizada como entrada para os algoritmos de
classificação, inicialmente é necessário converter os valores categóricos das 3 classes em
um valor numérico​. ​Os algoritmos de aprendizado de máquina recebem como parâmetros
vetores ​numéricos. Utilizaremos a operação de ​Converter categórico para numérico ​no
grupo de ​Pré-processamento de dados​,​ ​para converter o atributo ​class​ (​class_index)​.

Podemos utilizar uma operação de transformação nos dados filtrando os valores de ​label
em cada uma das classes presentes na base. Vale observar que é apenas uma operação
de manipulação e não caracteriza o modelo de treinamento e avaliação que desejamos
criar. Sua finalidade é apenas a visualização dos atributos criados na etapa de ​extração de
​ classe “Iris-versicolor”
atributos​. A classe “Iris-setosa” recebeu o valor 0 como class_index. A
recebeu o valor 1 como ​class_index​. A classe “Iris-virginica” recebeu o valor 2 como ​class_index​.
Treinamento do Modelo

Após a extração dos atributos da base de dados entramos na fase do treinamento do


modelo. Para treinar, precisamos inicialmente dividir os dados em duas partes: uma parte
vai ser destinada ao treinamento (conjunto de treinamento) e outra a sua avaliação
(conjunto de teste).

Fluxo do conjunto de treinamento

Nessa parte do ​workflow,​ a operação ​Dividir ​(na seção de Transformação de Dados), será
ligada à saída da operação ​Converter categórico para numérico​.
O treinamento ocorre a partir de um algoritmo de análise. No nosso exemplo utilizaremos o
algoritmo de classificação ​Árvore de Decisão​.

Além do fluxo completo, segue abaixo cada uma das operações com seus parâmetros
principais.

Divisão Percentual

Divide o fluxo de dados em duas partes que podem ser definidas movendo o indicador de
peso. No nosso exemplo separamos 50% dos dados para treinamento e 50% para testes.

Árvore de Decisão
Selecionamos todos os atributos mencionados na etapa anterior como parâmetros de
entrada. O objetivo da operação é permitir o processo de treinamento, criando o modelo de
classificação. A saída do modelo é o resultado de predição do modelo armazenado na
​ omo este tutorial é destinado a usuários iniciantes não entraremos em
variável ​resultado​. C
detalhes quanto ao significado dos outros parâmetros utilizados neste classificador.
Utilizamos sua versão padrão, sem modificar os parâmetros iniciais. Informações mais
aprofundadas podem ser encontradas no manual das operações de classificação.

Aplicar modelo

Após a criação e o treinamento do modelo é o momento de aplicar o modelo ao restante


dos dados da base. Para isso, utilizaremos a operação ​Aplicar modelo​, pertencente à
seção de ​Modelo e Avaliação​. O nosso objetivo é realizar a predição do resultado para
esta parte dos dados e posteriormente avaliar o resultado. Os parâmetros que utilizamos
são os atributos ​petal length,​ ​petal width,​ ​sepal length e ​sepal width​, e a variável resultado
da predição (​resultado).
Avaliação do modelo (Evaluate model)

Será que um algoritmo de classificação que use árvore de decisão foi a melhor opção para
este volume de dados? É o que analisaremos na próxima etapa. Para finalizar o nosso
experimento precisamos avaliar o nosso modelo. Para isso basta adicionar a operação
Avaliar Modelo nas saídas das operações ​Árvore de decisão ​e ​Aplicar Modelo​. O papel
dessa operação é comparar os resultados do modelo com os valores originais, e apresentar
​ e aproveitamento. Esta nota varia de acordo com o tipo de métrica usada
uma nota (​score) d
na avaliação do modelo. Para o exemplo em questão utilizamos ​accuracy,​ aplicada para
atributos multiclasse. Não entraremos em detalhes na especificação dos atributos da
operação. Maiores informações podem ser encontradas nas documentações das
operações.

Avaliar modelo
Após a execução, podemos acessar os resultados da avaliação do modelo na aba
Resultados. Na avaliação da acurácia do algoritmo, encontrando o valor ​0.96. ​A medida de
acurácia geralmente é o ponto de partida para a análise de um modelo. Ela equivale ao
número de predições corretas dividida pelo número total de predições realizadas. Se
calcularmos a porcentagem da acurácia temos ​96​%.

Para completar a avaliação e evitar qualquer ambiguidade, visto que diferentes algoritmos
podem apresentar valores bem diversos de acurácia, a análise dos resultados por meio da
matriz de confusão é uma alternativa.
Avaliando a matriz de confusão, gerada pela ferramenta, podemos verificar que o algoritmo
que escolhemos para o modelo consegue um excelente resultado em predizer o
comportamento da base teste. A quantidade de verdadeiros positivos foi muito superior em
relação à quantidade de falsos negativos na detecção das espécies, comprovando o valor
encontrado de acurácia na tabela anterior. Deixo com você a tarefa de realizar este mesmo
experimento com outros algoritmos, e avaliando a acurácia dos mesmos em busca de um
modelo ainda mais acertado. Há de se considerar a aleatoriedade em execuções de
Aprendizado de Máquina, em todas as fases, seja na coleta dos dados, nos algoritmos em
si ou nas amostras para o modelo e testes. Isso resulta em números de acurácia diferentes,
mesmo com o mesmo conjunto de dados e modelo, em execuções diferentes.

5. Criação de um painel de visualizações

A utilização de gráficos para análise análise de uma base de dados, permite encontrar
padrões nos dados, reconhecer comportamentos desconhecidos e principalmente
responder nossas dúvidas ou hipóteses. Uma visualização utiliza a comunicação visual para
tornar mais perceptível o significado e o valor dos atributos.

O grande desafio do analista de dados é conseguir comunicar todas as informações que


conseguiu extrair de uma visualização para seu público alvo. O objetivo do Lemonade é dar
a qualquer analista a possibilidade de criar visualizações de forma simples e dinâmica,
apresentando suas análises com velocidade, simplicidade e qualidade. Na figura abaixo
estão os gráficos disponibilizados pelo Lemonade.
O Lemonade apresenta os seguintes tipos de visualização de dados:

● Gráfico de Área (Area chart): Este tipo de gráfico é baseado no gráfico de linhas, e
a área entre o eixo e a linha é comumente enfatizada com cores, texturas e
hachurados. Normalmente é utilizado para representar resultados acumulados ao
longo do tempo, utilizando de números e porcentagens.
● Gráfico de Barras (Bar chart): ​Este tipo de gráfico é composto por barras
retangulares proporcionais aos valores que elas representam, e podem ser plotadas
vertical ou horizontalmente. É utilizado para representar dados categóricos, isto é,
um agrupamento de dados dividido em grupos discretos, como meses do ano.

● Gráfico de Dispersão (Scatter plot chart): ​Este tipo de gráfico utiliza coordenadas
cartesianas para exibir valores de duas variáveis em um conjunto de dados.
● Gráfico de Linha (Line chart): ​Este tipo de gráfico consiste em uma série de pontos
de dados ligados por linhas retas. É utilizado para visualizar a tendência dos dados
ao longo de intervalos de tempo, e é um dos mais comuns tipos de gráficos.

● Gráfico de Pizza (Pie chart): ​É um gráfico estatístico circular, dividido em setores


para ilustrar proporção numérica entre diversos valores acerca de um tópico. Não é
recomendado quando se trata de um número muito grande de setores, já que a
visualização se torna confusa e pouco significativa.

● Gráfico de Rosca (Donut chart): ​Este tipo de gráfico é uma variante do gráfico de
pizza com uma lacuna em seu centro, o que possibilita a adição de mais
informações sobre os dados como um todo.
● Publicar como dashboard​: ​Publica as visualizações ligadas a ela em um quadro,
chamado de ​Dashboard​, e acessível no menu principal, à esquerda.
● Sumário Estatístico​: ​É uma tabela que contém análises estatísticas acerca dos
dados trabalhados.
● Visualização em mapa​: ​Retrata os dados em um mapa, quando fornecidos dados
de latitude e longitude, além de dados quantitativos.

● Visualização em tabela​: ​Uma tabela que mostra a base de dados, similar à primeira
caixa da aba ​Resultados​ dos parâmetros das operações.
● Box plot​: Gráfico utilizado para visualizar quartis, máximo, mínimo e ​outliers de um
atributo.

● Histograma​: Gráfico que apresenta a distribuição de frequência de variáveis


numéricas. Indica as regiões com concentração ou esparsidade de valores.
Utilizaremos alguns deles nos exemplos que seguirão. Mais informações podem ser
encontradas nas documentações das operações.

Para tornar essa parte da documentação interessante utilizamos nos nossos exemplos a
base ​Titanic​, utilizada em umas das competições do site Kaggle: ​Kaggle Competition -
Titanic Machine Learning from Disaster (o arquivo que utilizaremos será o de
treinamento, train.csv).

Diz o site:

O naufrágio do RMS Titanic é um dos naufrágios mais famosos da história. Em 15 de abril


de 1912, durante sua viagem inaugural, o Titanic afundou depois de colidir com um
iceberg, matando 1502 de 2224 passageiros e tripulantes. Essa tragédia sensacional
chocou a comunidade internacional e levou a melhores normas de segurança para os
navios.

Uma das razões pelas quais o naufrágio levou a uma perda de vidas era que não havia
botes salva-vidas suficientes para os passageiros e tripulantes. Embora houvesse algum
elemento de sorte envolvido na sobrevivência do naufrágio, alguns grupos de pessoas
eram mais propensos a sobreviver do que outros, como mulheres, crianças e a classe
alta.
Neste desafio, pedimos que você complete a análise de que tipos de pessoas
provavelmente sobrevivem. Em particular, pedimos que você aplique as ferramentas de
aprendizado de máquina para prever quais passageiros sobreviveram à tragédia.

Não construiremos o modelo de predição da tragédia requerido na competição, porém você


pode utilizar o nosso exemplo anterior: ​Criando meu primeiro experimento predictivo
para testar seus conhecimentos em ​aprendizado de máquina.

Vamos tentar tirar algumas informações interessantes dos dados e formatá-los por meio de
visualizações. Para tornar o nosso processo mais dinâmico, vou deduzir que você já sabe
carregar a base para o lemonade. Se ainda não sabe, volte duas seções e dê uma lida na
seção de ​Importação de base de dados. ​Pode acontecer que os nomes dos atributos
utilizados para o nosso exemplo sejam diferentes dos que você escolher, mas o importante
é o entendimento do processo. Também vou deduzir que você sabe criar um novo ​workflow
e já entende seu funcionamento. O formato do workflow que construiremos será o seguinte:
Carregamento da base e consistência dos dados

Inicialmente precisamos carregar a base que importamos. Para manter o dinamismo do


nosso processo, optamos por fazer a consistência dos dados eliminando qualquer linha que
apresente qualquer problema. Você pode optar por verificar os casos de erro e fazer as
alterações necessárias.
Vamos dar um ​preview d ​ os atributos da base para analisar a formatação dos dados
(marcando a primeira caixa na aba ​Resultados ​nos ​Parâmetros da Tarefa​).

Como o objetivo dessa documentação é apenas ensinar ao usuário como criar


visualizações, escolhemos por remover todas as linhas as quais os valores são nulos ou
ausentes.
Vamos começar com gráficos mais simples e que exigirão menor esforço na criação do
fluxo. Vamos criar um gráfico de pizza e um gráfico de rosca (​donut) ​que nos responda o
número de sobreviventes e mortos respectivamente, para este fragmento de base.

Para gerar os gráficos, precisamos manipular os dados selecionando os atributos que vão
compor os eixos. Para este exemplo, precisaremos do atributos ​Pclass ​e ​Survived. ​Vamos
dar uma olhada na operação de agregação: ​Agrupar linhas por função. ​Precisamos contar
os sobreviventes e mortos por cada uma das classes.
Para contar o número de sobreviventes e mortos por classe precisamos utilizar o atributo
Survived ​como pivô​, isto é os valores de ​Survived ​serão sumarizados em uma tabela
agregada por classe. Isto explica porque os valores ​0 ​e ​1 ​foram inseridos na caixa ​Atributo
usado como pivô​. O resultado dessa operação pode ser visto em sequência no ​preview.
Agora basta selecionar os atributos e criar as visualizações. O gráfico de rosca vai
representar o número mortos por cada classe.

Cada cor do gráfico representa o número de mortos por classe. Deixo a você a tarefa de
analisar quantos tripulantes embarcaram por classe e quais a percentagem de mortos em
relação ao total. Será que os passageiros da terceira classe tiveram um número relativo de
mortos maior que os passageiros da segunda e primeira classe?

Agora vamos para o gráfico de pizza, ele apresenta o número de sobreviventes por classe.
Os nossos dois últimos exemplos vão apresentar gráficos de barras e linhas
respectivamente. O ​Lemonade permite que várias séries de dados sejam representados
num mesmo gráfico permitindo que o analista seja capaz de apresentar comparações e
comportamentos de mais de um grupo de informação.

Nesse exemplo, vamos construir um gráfico de barras que apresenta o número viajantes
por classe organizados por sexo. Será que nesse desastre o número relativo de mulheres e
homens foram muito diferentes para cada classe? Vamos tentar achar a resposta na análise
do gráfico.
Inicialmente, vamos começar por agregar os dados pelos dois atributos que desejamos
avaliar: ​Pclasse e Sexo. ​A ideia é a mesma dos gráficos anteriores, utilizaremos a
operação ​Agrupar linhas por função​: vamos agregar por classe, usar o gênero como ​pivot
e contar a quantidade de homens e mulheres.
​ o resultado.
Vamos ver um ​preview d

Pronto. Agora basta ordenar os resultados por classe e plotar o gráfico de barras. Para
ordenar utilizamos a operação ​Ordenar​.
Em seguida, selecione a operação ​Gráfico de barras ​para plotar as duas séries de dados,
​ outra para ​female.
uma para ​male e
Vamos completar o nosso gráfico anterior com a seguinte análise: Quantas pessoas
morreram por idade? As mortes aumentaram com o aumento da idade? Idosos e crianças
foram resgatadas primeiro? É o que vamos tentar responder com nosso gráfico de linhas.
Note que, este fluxo vai ser mais complexo que os exemplos anteriores, vamos definir uma
idade mínima. Isso é importante para tornar a manipulação dos dados mais dinâmica e
diminuir o tempo gasto em operações de tratamento dos dados.

A primeira operação do nosso fluxo vai ser um filtro para idades acima de 1 ano. Para criar
um filtro basta utilizar a operação ​Filtrar​.
Em seguida, vamos agregar o fluxo de dados por idade e fazer o ​pivot pelos sobreviventes.
Ao final teremos o número de mortos e sobreviventes por idade.
É uma boa prática de desenvolvimento sempre visualizar o resultado de uma operação
complexa.
Podemos observar dois aspectos interessantes: o primeiro é que as idades não são lineares
e o segundo é se o número de sobreviventes para alguma delas foi nulo. Logo precisamos
realizar mais algumas transformações nesses dados antes de desenhar o nosso gráfico.
Vamos começar por substituir os valores nulos por zero. E para isso vamos utilizar a
operação ​Tratas dados ausentes​.
Uma forma de tornar a coluna das idades linear é mudar a escala para desenharmos o eixo
das idades no gráfico. No nosso exemplo, vamos escolher que a idade seja formada por
múltiplos de 5, isto equivale a diminuir o “zoom” de visualização das linhas. Utilizaremos
uma operação nova: ​Transformar valores por função​. Essa operação nos permite utilizar
diretamente as funções da ​api ​do ​spark. (para ter acesso a lista das operações disponíveis,
acesse a documentação completa para cada operação) Neste exemplo, utilizaremos a
função ​round ​para arredondar o resultado da operação de divisão do valor absoluto de cada
idade por 5 (lembre-se da nova escala), o que resulta na parte inteira do resultado da
divisão a ser multiplicado por 5. (múltiplos)
Essa parte pode ter ficado um pouco confusa. Por isso, lembre-se que podemos ver um
preview ​dos dados e esclarecer qualquer dúvida.

Se alteramos o valor do eixo das idades, precisamos normalizar a contagem do número de


sobreviventes para cada idade absoluta. Vamos somar todos os sobreviventes de cada
idade absoluta e agregar pela idade relativa na nossa nova escala.
Agora o preview de tudo o que fizemos até agora.
Vamos agora ordenar a coluna das idades.

Agora basta utilizar a operação ​Gráfico de linha(s) ​para gerar o gráfico de linhas. É
importante ressaltar que temos duas séries de dados para o eixo Y que correspondem ao
número de mortos e sobreviventes por idade.
Para finalizar, vamos criar um painel (​dashboard​) e inserir nossas visualizações. Este painel
vai nos permitir acessar nossas visualizações diretamente, sem a necessidade de
re-executar nosso ​fluxo de trabalho ou acessar diretamente uma execução​. ​Para criarmos
um painel de visualizações, basta adicionar todas nossas visualizações como entrada da
operação ​Publicar como dashboard​. Seu único parâmetro é o título do painel.

Após a execução, o painel fica disponível ao usuário no menu lateral ​Dashboards.​


Podemos modificar a dimensão e o posicionamento de cada visualização no painel. Basta
segurar uma das arestas com o ​mouse ​e arrastar para os lados.
Com este painel terminamos a nossa documentação de introdução a utilização básica do
Lemonade. Esperamos ter auxiliado no entendimento da ferramenta. Qualquer dúvida ou
sugestão nos envie um email: ​suporte@lemonade.org.br​.

Você também pode gostar