Resumo Tutorial do Orange

 

Sodré GB Neto
Rennan Cavalcante Guevara
Rômulo Araújo Serique

 


Nossos ingredientes são chamados de widgets. Widgets são unidades de computação da Orange. Eles leem os dados, processam-nos, visualizam-nos, agrupam-nos, constroem modelos preditivos e ajudam a explorar os dados. Você pode encontrá-los no lado esquerdo da tela. A maioria dos fluxos de trabalho de análise de dados começa com um widget Arquivo que usamos para carregar nossos dados.

Clique no widget de arquivo e ele aparecerá na tela. Abra-o com um duplo clique. Vá para Procurar conjuntos de dados de documentação e carregue um dos arquivos de dados existentes que acompanham o Orange. É claro que você pode carregar seus próprios dados, mas para simplificar optamos por um famoso conjunto de dados Iris.

Agora queremos ver o que acabamos de carregar. Clique na Tabela de Dados e o widget aparecerá na tela. Os widgets se comunicam entre si. Eles têm um canal de entrada, um canal de saída ou ambos. Para alimentar dados do widget Arquivo na Tabela de Dados, desenhe uma linha do lado direito da saída do Widget Arquivo até o lado esquerdo da entrada do Widget Tabela de Dados.

Criar um fluxo de trabalho de análise de dados no Orange é fácil. Começamos abrindo os dados no widget Arquivo. Alguns conjuntos de dados pré-carregados estão disponíveis. Então vamos selecionar íris e explorá-las. Vamos verificar os dados em uma tabela de dados. Vou selecionar o widget da tabela de dados e conectar o widget de arquivo a ele.
Aqui temos 150 flores de íris do famoso conjunto de dados Fischer. As flores são descritas por quatro características – o comprimento e largura das sépalas e o comprimento e largura das pétalas. Cada flor é rotulada com uma das três classes – um tipo de íris – Iris setosa, Iris versicolor e Iris virginica.
Agora vamos visualizar os dados. Vou conectar o widget de distribuição ao widget de arquivos. Desta forma, o widget de arquivo envia todos os dados que são carregados no widget de distribuição. Nas distribuições, podemos examinar todos os recursos dos dados – o comprimento e a largura da pétala parecem separar bem os diferentes tipos de íris.
Além disso, podemos verificar os dados no gráfico de dispersão. A ação que vemos é um pouco caótica. Iris versicolor em vermelho e virginica em verde não estão bem separadas. Estou me perguntando se existem duas funções que separariam bem as três classes. Posso clicar nas projeções de classificação para classificar todos os pares de recursos.
Uma pontuação mais alta indica melhor separação dos diferentes tipos de íris. O gráfico de dispersão com melhor classificação com comprimento e largura da pétala separa muito bem as instâncias de dados de diferentes classes. Mas há alguma sobreposição entre Iris versicolor e Iris virginica. Selecionarei instâncias de dados no intervalo sobreposto.
O widget scatterplot envia automaticamente os dados para sua saída. Agora conecto outra tabela de dados ao gráfico de dispersão para verificar as instâncias de dados selecionadas. Não há surpresas aqui – todos eles são Iris versicolor ou Iris virginica e parecem ter valores semelhantes para todos os quatro recursos.
Podemos estender o fluxo de trabalho com outros widgets ou salvá-lo para uso frequente. Mas agora é a hora. Aprendemos que os widgets Orange se comunicam entre si e as alterações em um widget são propagadas imediatamente através do fluxo de trabalho.

Hoje vou mostrar alguns recursos interessantes dos widgets Orange para mineração de dados e canais de comunicação. No Orange, existem várias maneiras de adicionar widgets ao seu fluxo de trabalho: a) clique no widget no painel de widgets e o widget aparecerá na tela b) clique e arraste o widget para a tela para colocá-lo exatamente onde você deseja c) clique com o botão direito na tela e o menu do widget aparecerá. Selecione o widget a partir daí ou melhor ainda, comece a digitar seu nome no filtro.
Selecione o widget e pressione Enter. d) arraste um canal de comunicação da saída do widget Arquivo e o Orange irá sugerir widgets aos quais você pode conectar seu widget original. Lembre-se de que a Orange não permitirá que você conecte widgets incompatíveis. Para obter mais espaço para o fluxo de trabalho, por exemplo, tenho a caixa de ferramentas de widgets minimizada o tempo todo e uso o botão direito para adicionar novos widgets.
Você também pode informar à Orange que tipo de dados gostaria de enviar de um widget para outro. Aqui está um exemplo simples. Usaremos os dados Iris do nosso vídeo anterior. Primeiro, conectarei o gráfico de dispersão e a tabela de dados ao widget Arquivo. Vamos ver se os dados foram recebidos pelo gráfico de dispersão (Scatter Plot).
Sim, está aqui. Vamos também conectar a tabela de dados ao gráfico de dispersão. A ideia é selecionar algumas instâncias de dados na tabela de dados e essas instâncias serão destacadas no gráfico de dispersão. Vou abrir a tabela de dados e selecionar algumas instâncias. O widget está enviando minhas seleções diretamente para o gráfico de dispersão.
Veja como as marcas do gráfico de dispersão são instâncias selecionadas? Na verdade, acabei de criar um navegador visual de dados. Agora clique duas vezes no link entre a tabela de dados e o gráfico de dispersão. Orange adivinhou corretamente que os dados na tabela de dados serão usados ​​como um subconjunto dos dados no gráfico de dispersão.
Podemos mudar isso e excluir esta conexão clicando nela. Agora podemos arrastar uma nova linha de Outros Dados para o Subconjunto de Dados e o gráfico mudará. Todas as instâncias de dados diferentes daquelas selecionadas na tabela de dados serão destacadas. É assim que você pode definir o que é comunicado entre os widgets.
Você não precisa fazer isso com frequência, pois o Orange combina entradas e saídas automaticamente ou infere as conexões corretas a partir da ordem em que você adicionou widgets ao fluxo de trabalho. Um clique com o botão direito no canal de comunicação. permite que você exclua a conexão. Hoje mostrei muitas maneiras de adicionar widgets ao seu fluxo de trabalho, como ajustar a entrada e a saída de um widget e, claro, como montar alguns widgets em um navegador de dados interessante.

Preparar seus dados para que os programas possam lê-los é provavelmente a tarefa mais importante na mineração de dados. Hoje vou mostrar como fazer upload de seus dados para o Orange. Orange pode ler vários formatos de dados, como Excel, arquivos separados por tabulação e vírgula. Os dados normalmente são uma tabela, onde as instâncias de dados estão em linhas e os atributos de dados estão em colunas.
Mas por que falar e não andar? Vamos fazer nossos próprios dados. Usarei o Planilhas Google para criar um conjunto de dados simples. Digamos que temos um grupo de pessoas e gostaríamos de saber se podemos prever o sexo com base nas suas características físicas. Ok, nosso pessoal terá um nome, então sabemos quem é quem.
Assim também sabemos seu sexo, altura e peso. E sabemos como eles são, então vamos deixar de fora também a cor dos olhos e dos cabelos. Tenho esse conjunto de dados para meus amigos, Jill, Jack, Mark, Ann, etc. Seus nomes são todos strings, ou seja, texto. O género não será uma cadeia mas um valor categórico, porque o nosso povo pertencerá a um dos dois grupos, homem ou mulher.
Meus amigos têm naturalmente alturas e pesos diferentes, que são valores numéricos. Alguns dos meus amigos são altos, alguns baixos, alguns magros e alguns um pouco gordinhos. A cor dos olhos e dos cabelos são novamente dois valores categóricos, já que os olhos podem ser azuis, castanhos ou verdes e os cabelos pretos, castanhos, loiros ou ruivos.
Agora temos nossos dados. Ainda assim, além de fornecer os dados, não especifiquei explicitamente os tipos de atributos, então esperemos que Orange os adivinhe corretamente. Agora carregamos nossos dados para Orange. Vamos copiar um link compartilhável e colá-lo em um widget de arquivo. Primeiro, vamos examinar os dados em uma tabela de dados.
Orange assumiu corretamente que a primeira coluna com nomes contém nossos meta atributos, mas incorretamente tornou a cor do cabelo nossa variável de classe. Hmm Talvez eu devesse ter gênero como a última coluna da tabela? Mas vamos consertar isso em Orange. Podemos reorganizar os dados com o widget Selecionar Colunas.
Colocaremos o atributo cor do cabelo nas características e gênero na caixa ‘Variável Alvo’.

Uma verificação rápida em uma tabela de dados e estamos bem. Você também pode salvar dados em seu computador com o widget Salvar. É melhor salvar os dados no formato delimitado por tabulações (nativo do Orange), pois ele adiciona automaticamente anotações de cabeçalho para atributos.
Você pode querer definir seus dados localmente. Usarei os mesmos dados de antes, só que desta vez copiei para o Excel. Adicionarei duas linhas adicionais abaixo dos nomes dos atributos, definirei o tipo de atributo como a primeira e as espécies de atributos como a segunda. Para o tipo de atributo, usarei C para atributos contínuos, ou seja, atributos numéricos, D para atributos discretos ou categóricos e S para valores de string.
Para o atributo espécie escreverei classe em gênero e meta em atributos que fornecem informações adicionais. Agora nossos dados estão prontos para análise. Hoje aprendemos como preparar os dados, anotá-los manualmente e depois ajustar qual característica é considerada um atributo de classe.

Uma das melhores coisas de ser um cientista de dados é ser capaz de prever o futuro. É claro que não estou falando de uma senhora idosa e de uma bola de cristal, mas sim de fazer previsões a partir de dados sólidos, com algum grau de certeza. Hoje vou mostrar como usar o widget Previsões para prever rótulos de classe para instâncias em nosso conjunto de dados. 00:28 Desta vez usarei dados sobre frutas e vegetais. Como usarei esses dados para treinar meu classificador, irei me referir a eles como conjunto de dados de treinamento. Temos nove funções no conjunto de treinamento, incluindo contagem de calorias, proteínas, teor de fibras, vitaminas e minerais. 00:48 Com base nessas características, gostaríamos de prever se uma planta é uma fruta ou um vegetal. Estamos interessados ​​em saber quais recursos são mais importantes para nossa classificação. O que melhor nos diz se algo é uma fruta ou um vegetal? Verificaremos isso com o Classification Tree Viewer. 01:08 Aqui podemos visualizar muito bem quais características melhor dividem os dados em subconjuntos puros onde uma das classes prevalece. No nosso caso, a característica mais importante é a contagem de calorias e depois o teor de vitamina A e proteínas. Estes serão provavelmente os factores decisivos nas nossas previsões. 01:28 Ok, agora é hora de fazer algumas previsões. Digamos que eu tenha minhas próprias três plantas e gostaria de saber se são frutas ou vegetais. Conheço seus valores de potássio, vitaminas e calorias, então vamos anotar isso no Planilhas Google. A única coisa que preciso ter cuidado é usar exatamente os mesmos nomes para os recursos em meu conjunto de dados de teste, para que o Orange possa combiná-los corretamente. 01:55 Agora vamos carregar os dados no Orange e lê-los no widget Data Table. Ok, todos os nossos dados estão aqui. Conecte o widget de arquivo às previsões. Já vemos alguma coisa? Claro que não. Precisamos primeiro fornecer ao widget algum modelo de classificação. Na verdade, já construí o modelo do meu conjunto de treinamento com o widget Árvore de Classificação. 02:30 Agora tudo que preciso fazer é conectar a árvore de classificação às previsões. Agora posso ver as previsões diretamente no widget. Parece que duas das minhas plantas são frutas e uma é vegetal. Claro, também posso usar outros classificadores. Um método rápido e simples é a regressão logística. 02:49 Eu me pergunto se suas previsões serão diferentes. Vamos checar.

Novamente, conectarei o widget Regressão Logística ao widget Arquivo e depois passarei o preditor para Previsões. Parece que a regressão logística está de acordo com as previsões da árvore de classificação. Na verdade, usei os dados reais de um kiwi, aspargos e uma framboesa.
São duas frutas e um vegetal. As previsões estavam, de fato, corretas. Hoje aprendemos como classificar nossos dados com a árvore de classificação, como construir modelos de previsão e, finalmente, como usá-los em um novo conjunto de dados. Embora tenhamos feito as previsões, não avaliamos realmente quão bons eram esses modelos de previsão.
No próximo vídeo falaremos sobre avaliação e pontuação de modelos.

Já falamos sobre planilhas e imagens. E o texto? Poderíamos extrair alguma informação significativa de um conjunto de documentos? Claro que nós podemos. Primeiro, precisamos instalar o plugin de texto. Vá para Opções, Complementos e selecione Texto. Reinicie o Orange para que o plugin apareça.
Agora, vamos carregar os dados. Coloque o widget Corpus na tela e abra-o. Vá para Navegar pela documentação dos corpora e carregue os contos de Grimm selecionados. Temos 44 Contos de Grimm na saída do widget. Sobre o que são esses textos? Conecte o Corpus Viewer ao Corpus. Corpus Viewer exibe texto e nos permite navegar nele. Por exemplo, podemos gerar apenas os documentos que contenham a palavra ‘rei’.
Outro widget para visualizar texto é o Word Cloud. Este widget exibe frequências de palavras em uma nuvem. Quanto mais frequentemente a palavra aparecer no texto, maior será a palavra. Mas nossa nuvem de palavras mostra coisas bobas como pontuação e palavras não informativas. Usaremos o texto de pré-processamento para nos livrar deles.
Este widget transformará todo o texto em letras minúsculas. Em seguida, ele converterá o texto em palavras individuais. e omitir a pontuação. As palavras individuais são chamadas de tokens. Finalmente, ele filtrará palavras irrelevantes. Os efeitos do pré-processamento podem ser explorados visualmente na nuvem de palavras.
Após o pré-processamento, esta visualização parece muito melhor. Mantivemos apenas palavras significativas e agora podemos entender melhor do que se trata o nosso corpus. Os contos de Grimm falam sobre reis, pais e esposas. Mas algumas palavras ainda são um pouco irritantes como poderia, gostaria e disse. Podemos filtrar isso também.
Vamos escrever nossa própria lista de palavras-chave personalizadas. Abra um editor de texto simples e escreva cada palavra que deseja filtrar em sua própria linha. Em seguida, salve o arquivo e carregue-o próximo à lista de palavras predefinidas. As alterações agora são propagadas pelo fluxo de trabalho e as palavras que definimos em nossa lista de palavras irrelevantes não aparecem mais na nuvem de palavras.
O pré-processamento é a primeira etapa e uma etapa muito importante na mineração de texto. Definimos nossos arquivos e filtramos as partes que não precisávamos. Agora nosso texto está pronto para a próxima etapa. No próximo vídeo usaremos dados pré-processados ​​para encontrar grupos interessantes nos contos de Grimm.

 

Já sabemos como pré-processar nosso corpus e como encontrar documentos semelhantes com agrupamento hierárquico. Mas os contos de Grimm também têm um rótulo. Os contos são contos de animais ou contos de magia. Podemos usar esses dados para prever o tipo de uma história nova e não classificada? Lemos os contos de Grimm selecionados e verificamos os dados no Corpus Viewer.

Os rótulos são fornecidos no campo Tópico ATU. Preparamos o texto com pré-processamento e o transformamos em um saco de palavras, que representa cada conto com um vetor de contagem de palavras. Agora vamos à classificação. Conecte a regressão logística ao Bag Of Words. A regressão logística constrói o modelo para prever se um conto é um conto de animais ou um conto de magia.

Podemos até ver a aparência do nosso modelo. Usaremos o Nomogram, que visualiza o classificador de regressão logística. Conecte-o à regressão logística. O widget exibe as dez principais palavras que são importantes para o classificador. No topo da lista estão as palavras que mais contribuem para a previsão. Parece que a palavra ‘raposa’ pode nos dizer muito sobre a história.

Se ‘raposa’ aparecer com frequência no texto, é uma história de animal. Se isso não acontecer, provavelmente é um conto de magia. Agora sabemos como nosso classificador funciona e é hora de ver se ele também funciona bem. Conecte o teste e a pontuação ao saco de palavras. Usaremos Test and Score para validação cruzada do modelo de regressão logística.

Nada mal! A área sob a curva ROC é superior a 0,9. Quando dados dois contos de uma classe diferente, a regressão logística pode distingui-los corretamente em mais de 90% dos casos. Mas dissemos que queríamos prever o tipo de conto, certo? E não queremos prever algo que já sabemos. Colocaremos um novo widget Corpus na tela.

Vamos carregar três novos contos de Hans Christian Andersen. Pediremos ao nosso modelo de regressão logística que nos diga quais são os tipos destes novos contos. Conecte Corpus (1) às Previsões. Agora, forneça o modelo de regressão logística treinado por Grimm e observe os resultados em Previsões. Nosso modelo diz que O Patinho Feio é um conto de animais e O Pequeno Vendedor de Fósforos é um conto de magia.

Parece certo. As probabilidades previstas de classe também eram altas. A probabilidade de O Patinho Feio ser uma história de animal é de 90%. Hoje aprendemos como inspecionar nosso modelo de regressão logística com nomograma, como reutilizar o fluxo de trabalho de classificação familiar em texto e como prever o tipo de história em um novo corpus.
Trabalhar com texto em Orange é tão simples quanto trabalhar com planilhas!

Nos vídeos anteriores falamos sobre pré-processamento, agrupamento e classificação de texto. Trabalhamos com os contos de Grimm, conjunto de dados que preparei em uma planilha. Mas trabalhar com planilhas e textos longos pode ser uma dor. Existe alguma outra maneira de importar textos para o Orange? Claro que existe! Desta vez trabalharei com os discursos de Kennedy.

Tenho 17 deles em uma pasta Kennedy, cada um em seu próprio arquivo. Os arquivos podem ser documentos do Word, PDFs ou arquivos de texto simples. Aqui, por exemplo, está um discurso da Convenção Nacional Democrata. Para carregar o corpus no complemento Orange Open Text, coloque o widget Importar Documentos em uma tela e abra-o. Clique no ícone da pasta e selecione a pasta que deseja importar.

Vamos observar nossos dados em um Corpus Viewer. Aqui está o discurso que vimos anteriormente. Agora podemos fazer alguns clusters. Usarei texto de pré-processamento, saco de palavras, distâncias e agrupamento hierárquico. Eu fui rápido. Para obter detalhes sobre pré-processamento e agrupamento de texto, você pode conferir nossos vídeos anteriores. Parece que tenho dois grupos interessantes: um sobre armas nucleares e outro sobre os discursos presidenciais de Kennedy.

Clustering é bom, mas e quanto à classificação? Posso dizer à Orange que alguns documentos pertencem a um grupo e outros a outro? Vamos colocar os discursos de Kennedy em duas pastas. digamos ‘pré-1962’ e ‘pós-1962’. Agora, recarregue a pasta. Orange reconheceu subpastas como categorias de classe. Se observarmos o corpus em uma tabela de dados, podemos ver que Orange colocou ‘pré-1962’ e ‘pós-1962’ na coluna de classe cinza.

Você pode conferir nossos vídeos anteriores sobre classificação de texto para saber como proceder. Importar Documentos torna muito mais fácil organizar seus arquivos em sua pesquisa. Hoje aprendemos como importar nossos próprios dados para análise de texto e como definir valores de classe do zero.

 

Deixe um comentário