Você está na página 1de 255

CIÊNCIAS DE DADOS (BIG DATA PROCESSING AND ANALYTICS)

Arquitetura de Big Data


Modalidade a distância

PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO


PARA CIÊNCIA DE DADOS

Trilha 1 — Introdução à Programação Python

Professores: Diego Nogare & Rogério de Oliveira


Trilha de Aprendizagem 1 - Introdução à Programação Python

Sumário
1. Apresentação do componente curricular ................................................. 4

2. Programa .................................................................................................. 6

3. Introdução ................................................................................................. 7

4. Ambientes Python de programação ......................................................... 8

5. Python ..................................................................................................... 14

6. NumPy .................................................................................................... 27

7. Regras para programar .......................................................................... 30

8. Referências de Python e NumPy ............................................................ 32

9. Síntese .................................................................................................... 34

10. Para saber mais ................................................................................... 35

11. Referências .......................................................................................... 36


Trilha de Aprendizagem 1 - Introdução à Programação Python

1. Apresentação do componente curricular

Este componente visa fornecer a você uma introdução às linguagens e aos ambientes de
programação mais empregados para Ciência de Dados.

O componente está dividido em duas partes. A primeira parte é dedicada à linguagem


Python e seus ambientes. Na segunda, você aprenderá a linguagem R.

Ambas são linguagens bastante empregadas em Ciência de Dados e, em geral, a


opção de uma ou outra depende mais do contexto de uso. Embora pareça haver uma
predominância do Python nos últimos anos, isso pode depender da área de domínio
em que estamos interessados. O R ainda parece dominar a aplicação em áreas como
bioinformática e ciências sociais, nas quais há muito tempo são aplicados modelos
estatísticos com R. Aplicações de comércio eletrônico e marketing, por sua vez, assim
como modelos que tratam imagens ou linguagem natural o Python, em geral, parecem ser
uma melhor solução.

Por que essas linguagens, e não linguagens como Java ou C? A Ciência de Dados tem
algumas características que a diferem do desenvolvimento tradicional de aplicações. A
integração com recursos para Web ou para aplicações Mobile, por exemplo, é essencial
para o desenvolvimento de aplicações, mas tem um papel bastante secundário em
Ciência de Dados. Além disso, aplicações tradicionais são voltadas, em muitos casos,
para o processamento transacional, empregando quantidades relativamente pequenas
de dados. Por outro lado, script languages e tipos de dados fracos são vantajosos quando
queremos experimentar diferentes execuções para exploração de dados que não temos
clareza ainda de tipos e valores. Isso também norteará nosso curso, pois estaremos
focados nos recursos das linguagens Python e R para desenvolver análises e ciência de
dados, havendo muitos outros recursos que não exploraremos aqui.

Existem também muitas ferramentas para Ciência de Dados (soluções de spreadsheet

esteja familiarizado com alguns nomes como SAS, PowerBI, Tableau, Qlik, SPSS etc. e,
não obstante o uso bastante comum dessas soluções, elas são bastante proprietárias, e o

e possibilidade de reuso. De qualquer modo, essas ferramentas permitem proporcionar


muitos primeiros resultados de forma rápida, e não devem ser descartadas se estiverem
disponíveis.

4
Trilha de Aprendizagem 1 - Introdução à Programação Python

Por último, há também outras linguagens como Scala, Julia e o próprio Java que podem

uso de uma solução ou outra deve ser analisada caso a caso sem, necessariamente,
assumirmos uma ou outra como melhor e, na maior parte dos casos, empregaremos
muitas soluções conjuntas.

Vamos lá?

5
Trilha de Aprendizagem 1 - Introdução à Programação Python

2. Programa
Para que tenha uma ideia geral dos conteúdos deste componente, seguem abaixo os
assuntos que serão trabalhados em cada trilha.

1. Introdução à Programação Python. Básico da Linguagem, IPython e Jupyter

2. Seleção e Organização de Dados com Pandas. Aquisição dos Dados, Tipos de


Dados, Seleção e Manipulação, Merges e Joins.

3. Visualização dos Dados com Matplotlib e Seaborn

calor.

4. Estudos de Caso de Análise de Dados I. Apresentação e Discussão de casos de


análise de dados com Python.

5. Introdução à Programação R. Básico da Linguagem, ambientes RStudio e Rstudio.


cloud, Dataframes em R, seleção e manipulação de dados.

6. Seleção e Organização de Dados com Tidyr e Dplyr. Seleção e manipulação de


dados, reshape de dados, implementação de pipelines.

7. Visualização de Dados com ggplot2. Introdução à gramática do ggplot2, principais

calor.

8. Estudos de Caso de Análise de Dados II. Apresentação e Discussão de casos de


análise de dados com R.

6
Trilha de Aprendizagem 1 - Introdução à Programação Python

3. Introdução

Nesta trilha, você aprenderá a empregar um ambiente de Programação Python interativo,


o qual utilizaremos ao longo deste componente. Você conhecerá também alternativas de
ambiente que poderá usar.

atribuições, operações numéricas, entradas e saídas de dados básicas pelo


terminal,

biblioteca NumPy que implementa uma série de funções sobre


arrays numéricos que são

7
Trilha de Aprendizagem 1 - Introdução à Programação Python

4. Ambientes Python de programação

Ambiente Google Colaboratory ou Colab

O Google Colaboratory ou, simplesmente, Colab é um ambiente que permite a você

instalação de softwares necessária, e que ainda fornece acesso a recursos de GPU para

acessar, basta digitar em seu navegador < >.

Esse será nosso ambiente preferencial de programação Python e, mais adiante, ao estudar
a linguagem R, você encontrará um ambiente semelhante para o desenvolvimento em R.

• Acesso gratuito a GPUs.

• Compartilhamento fácil.

8
Trilha de Aprendizagem 1 - Introdução à Programação Python

Notebooks Python

e as saídas de seu código em um só documento, além de imagens, HTML, LaTeX e muito

• celulas de Código;

• celulas de Texto; e

• saídas dos Programas.

Se você estiver lendo esse documento à partir de um notebook Python o documento que
você está lendo não será uma página da Web estática, mas sim um ambiente interativo
chamado notebook Colab que permite escrever e executar código.

Por exemplo, aqui está uma célula de código com um breve script Python que calcula

Células de código

As células de código podem conter qualquer script Python.

9
Trilha de Aprendizagem 1 - Introdução à Programação Python

Alerta importante: espaço de trabalho

Todas as células compartilham o mesmo espaço de execução. Assim, as variáveis criadas


e alteradas em uma célula são imediatamente acessíveis a todas as demais células.
Independentemente da ordem em que aparecem.

• As células de código não são programas independentes.

• Seus resultados persistem após cada execução.

Como você pode executar qualquer célula a qualquer momento, a ideia de execução

10
Trilha de Aprendizagem 1 - Introdução à Programação Python

Células de texto

As células de texto são criadas no formato Markdown. Se você estiver acessando este
conteúdo à partir de um notebook Python clique duas vezes no texto para editar uma
célula e você pode querer empregar barra de ferramentas para formatá-lo ou, quando
estiver mais familiarizado com a notação Markdown, escrever diretamente a formatação.
Experimente abaixo.

11
Trilha de Aprendizagem 1 - Introdução à Programação Python

Salvando e abrindo um Colab notebook

são salvas automaticamente! RECOMENDO que você empregue a opção Arquivo > na
barra de ferramentas para carregar ou salvar seu notebook Python em um arquivo .ipynb.

• Arquivo > Fazer download > Fazer download do .ipynb.

• Arquivo > Faze upload de um notebook.

12
Trilha de Aprendizagem 1 - Introdução à Programação Python

Python notebook vs. IDEs

compartilhar em um mesmo documento código, texto e suas saídas, além de facilitar o


trabalho colaborativo. Tem sido uma opção bastante aplicada em soluções de Ciência de
Dados e a preferencial para o ensino.

Projetos mais complexos que envolvem programas longos e em grande número podem se

Visual Code ou o Spyder para maior produtividade.

• notebooks Python, extensão .ipynb;

• scripts Python, extensão .py.

Para uso de um ambiente Python local, recomendamos a instalação do ambiente


Anaconda. Ele incluirá a instalação do Python, do ambiente Jupyter notebook local e do
IDE Spyder.

13
Trilha de Aprendizagem 1 - Introdução à Programação Python

5. Python

Python é uma linguagem bastante poderosa e com muitos recursos. Nessa introdução
de Python, veremos apenas um conjunto mínimo de recursos, pois existem diversas boas
fontes online e livros de introdução ao Python.

Imports básicos

Empregue para importar bibliotecas que adicionam funcionalidades ao Python. Em geral,

Variáveis e Atribuições

O Python implementa tipos fracos, isto é, você não precisa declarar uma variável antes

14
Trilha de Aprendizagem 1 - Introdução à Programação Python

Caracteres e Valores numéricos

Integer, Float-point, Boolean

NumPy functions

As funções básicas estão disponíveis nativamente, mas, para muitas funções matemáticas,
como funções trigonométricas, randomização de valores e constantes – como o e
–, é necessário recorrer a bibliotecas numéricas como o NumPy e math. Em geral,
empregaremos o NumPy e veremos mais sobre essa biblioteca adiante.

15
Trilha de Aprendizagem 1 - Introdução à Programação Python

Strings

As strings em Python são como arrays de caracteres e são estruturas imutáveis. Isso

um array de string.

SElas iniciam por 0 mas, em Python, o limite superior indicará um valor < do caracter que
será exibido e não

16
Trilha de Aprendizagem 1 - Introdução à Programação Python

Operações com Strings

As operações com strings são implementadas como métodos da classe string; algumas
dessas operações encontram-se abaixo.

Em geral, em cursos básicos de programação, muita atenção é dada para manipulação


Strings e obtenção de slices, subconjuntos indexados Strings. Essas operações não são
tão importantes aqui, para o que desenvolveremos em análise de dados, e é, então,

Print & Input

A operação input permite a entrada de dados pelo terminal, mesmo na execução de


notebooks Python. O print exibe a saída de caracteres no terminal e permite o uso de
caracteres de controle como \n para salto de linha, \t para tab e formatação de números
ao estilo de C.

17
Trilha de Aprendizagem 1 - Introdução à Programação Python

If-Then-Else

linguagens como Java e C. Assim, os comandos aninhados à condição ou ao laço do


programa devem estar à direita do comando inicial da condição ou laço.

18
Trilha de Aprendizagem 1 - Introdução à Programação Python

Comando D executa dentro da condição 1, mas fora da condição 2.

For & While

Em geral, neste e-book, daremos preferência ao uso do for para criar laços de programa.

e o incremento de uma variável em um laço do tipo for, mas lembre-se de que o limite
indicado, do mesmo modo que a indexação de uma string, é um limite superior (< e
não

19
Trilha de Aprendizagem 1 - Introdução à Programação Python

As iterações também podem ser feitas sobre listas de valores, numéricos ou não.

Funções

As funções são declaradas com o comando def. As variáveis de uma função têm escopo
local, mas elas podem também acessar variáveis globais de seu programa.

Coleções básicas de dados

Coleções de dados, como Lists, Sets, Tuples e Dictionary, desempenham um papel


fundamental tanto para programação em geral quanto para aplicações gerais, como
análise de dados.

20
Trilha de Aprendizagem 1 - Introdução à Programação Python

• Lista (list

• Tupla (tuple

• Conjunto (set

• Dicionário (dictionary
membro duplicado.

Vamos nos deter aqui apenas nas estruturas de listas e dicionários que terão mais utilidade
para nossos propósitos.

List

à lista, você encontra uma série de métodos que implementam funções úteis para esses
objetos.

21
Trilha de Aprendizagem 1 - Introdução à Programação Python

Listas podem conter quaisquer tipos de elementos, incluindo outras listas, e podem ser

sobre arrays numéricos, seja preferível empregar arrays do pacote NumPy.

Percorrendo listas

Essa é uma operação que empregaremos bastante. Existem basicamente duas formas de
percorrer uma lista.

• Por índice
elementos da lista.

• Por iterador

A segunda forma não está disponível em linguagens como C ou Java, mas ela é a forma
mais elegante e, se não for necessário alterar os elementos ou obter o índice ao percorrer
a lista, é o melhor modo a ser empregado.

22
Trilha de Aprendizagem 1 - Introdução à Programação Python

23
Trilha de Aprendizagem 1 - Introdução à Programação Python

Dictionary

com uma estrutura de dados JSON, essa é uma estrutura bastante semelhante em Python.
A principal vantagem dos dicionários é permitir recuperar os valores diretamente a partir
do valor de chave.

Assim como nas listas, os dicionários suportam quaisquer tipos de dados, como valores.

Percorrendo um Dicionário

Do mesmo modo que listas, é importante sabermos percorrer os elementos de um


dicionário.

24
Trilha de Aprendizagem 1 - Introdução à Programação Python

Populando um Dicionário

25
Trilha de Aprendizagem 1 - Introdução à Programação Python

File Handling

Operações com arquivos tipo texto serão pouco comuns em nosso caso, pois, na
maior parte dos casos, obteremos dados de tabelas e bases de dados em formato de
DataFrames Pandas. De qualquer modo, isso pode ser útil para você em algum momento.

urllib.request e você, se tiver familiaridade com comando Linux, ainda pode empregar o
comando !wget em um notebook Python para fazer o download do arquivo e empregá-lo

Este é um ponto que, também, em cursos básicos de programação, ganha bastante


atenção. Mas a maior parte dos dados que você empregará ao longo deste e de outras
componentes são em outras formas de arquivo (como Pandas, ou mesmo dados em

26
Trilha de Aprendizagem 1 - Introdução à Programação Python

6. NumPy

estruturas.

Na maior parte dos casos, empregaremos as funções matemáticas do NumPy como


operações para manipulação de matrizes e vetores, funções trigonométricas, estatísticas
e de randomização. O Pandas, o pacote de manipulação de dados que empregamos,
é construído sobre o NumPy e, assim, manipulações de séries de dados empregarão
automaticamente a biblioteca Numpy.

Não temos necessidade aqui de entender todas as operações de NumPy e um pequeno

Criando arrays

Os arrays podem ser de uma ou mais dimensões, mas, diferentemente das listas, e como
matrizes numéricas, todos os elementos devem ter o mesmo tamanho e tipo. Eles são
indexados iniciando por 0 e seguem as mesmas regras de indexação de listas e strings

27
Trilha de Aprendizagem 1 - Introdução à Programação Python

Os vetores do NumPy operam como listas indexadas, e você pode empregar a mesma
forma de índices que empregamos para percorrer arrays NumPy (incluindo o método

Operações sobre arrays NumPy

Um dos recursos mais úteis do NumPy, que não encontramos em arrays de outras
linguagens, como C e Java, é que diversas operações podem ser executadas diretamente
sobre os arrays, sem a necessidade de implementar iterações ou laços de programa.

28
Trilha de Aprendizagem 1 - Introdução à Programação Python

Outras operações úteis

Finalmente, abaixo, algumas operações que serão muito úteis nas seções seguintes.

29
Trilha de Aprendizagem 1 - Introdução à Programação Python

7. Regras para programar

Tendo ou não familiaridade com programação, vale a pena lembrar algumas regras
e boas práticas que são úteis para você no aprendizado de uma nova linguagem de
programação.

1. Programar não é fácil, exige esforço e tempo.

Como aprender uma nova língua, você precisa assimilar e praticar seus conhecimentos.

2. Building Blocks. Programe de modo incremental.

Para resolver um problema, vá construindo a solução aos poucos. Resolva uma parte do

solução com outras partes do problema, e assim sucessivamente.

3. Small Building Blocks. Debug seu programa.

Ganhou um erro? Não está funcionando? Leia a mensagem de erro com atenção. Se não

volte um passo na solução e reconstrua-a em etapas ainda menores. Inspecione


as variáveis
variáveis é o esperado.

30
Trilha de Aprendizagem 1 - Introdução à Programação Python

4. Copy Building Blocks. Copy -> Paste -> Adapte.

Empregue o Google e a internet a seu favor. Existem milhares de soluções disponíveis.


Empregue também alguma referência online de sua preferência. Você pode começar

5. Reuse Building Blocks.

Você deve aprender a “ler” um código mesmo que não seja capaz de “escrevê-lo”. Isso
lhe dará a capacidade de criar inúmeras soluções poderosas, mesmo que você não
domine completamente a linguagem!

31
Trilha de Aprendizagem 1 - Introdução à Programação Python

8. Referências de Python e NumPy

A documentação do Python traz uma série de recursos para consulta e aprendizado de


Python e será uma ferramenta essencial para você.

• Python > About > Getting Started, site do Python, com vários links para documentos,
livros, videoaulas, cursos gratuitos.

O site do Numpy é

E, também, traz a documentação das APIs e tutorais do tipo get started.

Nosso material contém todo o necessário para o desenvolvimento das atividades, mas
você pode, ainda, achar útil buscar outras fontes de introdução ao Python. De que
forma você prefere aprender? Há tutoriais para todo tipo de gosto, vídeos, livros e sites
iterativos. Deixo aqui algumas sugestões para você escolher o que for mais do seu estilo
de aprendizado.

Comando a comando, iterativo (você executa os comandos), funciona como um “help”


de comandos e é fácil de consultar. Se você tem pouco tempo, deveria começar por aqui.

Se você prefere vídeos sobre Python, acompanhe esse canal. Os vídeos são separados
por assunto e um ex-Google explica programação para você!

Se você aprende melhor por livros,


pode experimentar esse livro texto de Python. Para leitura online ele é grátis. Existem,
ainda, vários outros livros .pdf de Python na Internet. Entretanto, a publicação na rede não

32
Trilha de Aprendizagem 1 - Introdução à Programação Python

ou ainda

Se prefere fazer um curso iterativo, esses são cursos básicos gratuitos. No primeiro, é
necessário fazer um pequeno cadastro antes de acessar..

33
Trilha de Aprendizagem 1 - Introdução à Programação Python

9. Síntese
Nesta trilha, apresentamos o ambiente interativo de Programação Python, o Google
Colab. Familiarize-se com esse ambiente. Ele é o que utilizaremos ao longo de

programação, se preferir.

Percorremos aqui os principais conceitos que serão relevantes e empregados para


programação em Python, como variáveis e tipos, atribuições, operações numéricas,

funções, acesso básico a arquivos e as coleções de dados do Python, listas, sets, tuplas
e dicionários. Esses recursos são bastante simples e muito próximos do que empregam
outras linguagens e, talvez, a novidade resida principalmente na identação dos comandos

nas estruturas de coleções de dados, em geral mais simples que em outras linguagens.
Dessas coleções, listas e dicionários são particularmente importantes para o tratamento
de dados e o que veremos a seguir.

É essencial notar que empregar Python para Ciência de Dados pode ser diferente de
empregar o Python para outros propósitos. Desse modo, nosso aprendizado de Python
está focado nos recursos que são necessários para exploração de dados, e destacamos
isso em alguns pontos ao longo do texto (na manipulação de String e operações de File

suporte a processamento multithread, a integração com frameworks web etc., mas que
não são necessários para nossos propósitos. Também para o NumPy separamos aqui
apenas as principais funcionalidades das quais faremos uso.

Por último, não deixe de explorar os ambientes, as referências e os códigos do texto.


Como falamos na seção de Regras para programar, programar não é fácil, exige esforço e
tempo. Exige uma prática que não pode ser obtida apenas com a leitura do material. Tenha
isso em mente e, ao ler o texto, procure executar e explorar os comandos apresentados,
pois é desse modo que deve ser feita a leitura de um livro de programação.

34
Trilha de Aprendizagem 1 - Introdução à Programação Python

10. Para saber mais

Acesse Choosing Python or R for Data Analysis? An Infographic, em www.datacamp.


para uma discussão entre o uso
das linguagens Python e R.

Assista ao vídeo Introdução ao Colab, ou simplesmente comece a usá-lo, colab.research.


.

– Visão geral do Colaboratory (


overview.ipynb

– Guia sobre Markdown (

Acesse um tutorial prático de Python .

35
Trilha de Aprendizagem 1 - Introdução à Programação Python

11. Referências
CHOOSING PYTHON or R for Data Analysis? An Infographic. DataCamp Team, 9

analysis

Learning Python

McKINNEY, Wes. Python for data analysis

Numpy

Python

VANDERPLAS, Jake. Python Data Science Handbook

2021.

36
CIÊNCIAS DE DADOS (BIG DATA PROCESSING AND ANALYTICS)

Arquitetura de Big Data


Modalidade a distância

PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO


PARA CIÊNCIA DE DADOS

Trilha 2 — Seleção e Organização de Dados


com Pandas

Professores: Diego Nogare & Rogério de Oliveira


Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas

Sumário
1. Introdução ................................................................................................. 4

2. Pandas ..................................................................................................... 5

3. Selecionando Dados ................................................................................. 8

4. Agregações de dados ............................................................................ 16

5. Combinações de Dados ........................................................................ 27

6. Reshape dos dados ............................................................................... 39

7. Síntese .................................................................................................... 42

8. Para saber mais ..................................................................................... 43

9. Referências ............................................................................................ 44
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas

1. Introdução

Nesta trilha, você aprenderá como empregar o pacote Pandas do Python para adquirir
dados, selecionar dados de interesse e fazer transformações úteis sobre os dados.

O Pandas é uma biblioteca para manipulação e análise de dados orientada a colunas. Ele
organiza os dados em formato de tabelas, semelhante ao que você encontra em bancos
de dados relacionais, ou mesmo em sistemas de planilhas. Sobre essas estruturas, ele
fornece uma série de operações que o tornam o principal pacote para manipulação de
dados em Python.

Outros pacotes de manipulação de dados, como o Dask e o PySpark, incorporam recursos


diferentes, como o paralelismo para lidar com grandes conjuntos de dados, mas guardam

fornece acesso a inúmeros formatos de dados, de planilhas a bancos de dados NoSQL.


Desse modo, conhecendo o Pandas, você será capaz de manipular quaisquer dados em
Python.

O Pandas é um projeto de código aberto desenvolvido, inicialmente, por Wes McKinney,


a partir de 2008, que empregou como base para seu desenvolvimento as estruturas de
DataFrames já presentes na linguagem R.

4
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas

2. Pandas

O Pandas é um pacote Python, desenvolvido sobre NumPy, para manipulação e análise


de dados orientada a colunas. Ele organiza os dados em dois tipos de estruturas, Séries
e DataFrames, e opera seleções e transformações sobre essas coleções de dados.

• DataFrame: você pode imaginá-lo como uma tabela de dados relacionais, com linhas
e colunas nomeadas, como no Excel ou em SQL.

• Séries: é uma única coluna de dados, e o DataFrame contém uma ou mais Séries com
um nome para cada uma delas.

O DataFrame, implementado em Python, é uma abstração comumente usada para


manipulação de dados que tem origem na linguagem R, mas você encontrará
implementações similares também em outras linguagens.

Import da biblioteca

Criando um pd.Series e um pd.DataFrame

Uma pd.Series pode ser criada a partir de uma lista e um pd.Dataframe pode ser criado
empregando-se uma estrutura de dicionário. #

5
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas

Lendo um DataFrame

O uso mais comum do Pandas é para o acesso a arquivos e bases de dados, e o Pandas
permite ler e gravar dados de diferentes fontes como arquivos .csv, .json, .xlsx e arquivos
de bancos de dados sql, Mongo etc., os quais podem ser acessados de forma local ou
pela internet.

O comando df.head() permite exibir o aspecto inicial dos dados a partir de suas primeiras
linhas.

Upload de arquivos de seu sistema de arquivos local

Se você estiver empregando o Google Colab e quiser acessar arquivos locais de sua
máquina, você pode arrastar os arquivos para o diretório da máquina virtual ou empregar

arquivo, e os valores são os dados que foram carregados.

6
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas

Essas instruções encontram-se comentadas abaixo.

Explorando a estrutura básica dos dados

Antes de explorarmos o conteúdo dos dados, é útil termos algumas informações sobre
a estrutura dos dados com os quais estamos lidando, como os valores que os dados
assumem, quantas linhas temos em uma tabela, o número de atributos, os tipos de
dados etc.

7
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas

O comando describe() exibe informações estatísticas sumarizadas dos dados.

3. Selecionando dados
Seleções de dados são bastante importantes, pois você nem sempre estará interessado
em exibir ou analisar todos os dados. Por exemplo, podemos ter dados de produção
de várias unidades de uma fábrica, mas precisar somente dos dados das unidades de
São Paulo (seleção de linhas ou casos). Ou podemos ter dados de vendas com diversas
informações dos produtos (cor, modelo etc.) e dos clientes (nome, CPF etc.) e querer
apenas dados de peso e dimensões do produto, e de origem e destino da compra para
analisar os preços de frete (seleção de colunas ou atributos). Mais frequentemente ainda,
você realizará duas seleções, criando slices dos dados.

Seleção de colunas, Seleção de linhas e Seleção de linhas e colunas

Selecionando colunas de dados como pd.Series

Como vimos, as colunas de um DataFrame são séries do Pandas e podemos selecionar


e operar com cada uma das séries de um DataFrame. Existem dois modos de seleção:

8
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas

quando temos nomes de atributos com espaços ou caracteres especiais.

Esse conjunto de dados é um pd.Series, e podemos fazer uma série de operações


sobre essa coleção de dados, como calcular a soma ou a média de valores.

Pode também ser útil você transformar uma pd.Series em uma lista Python para que
possa realizar as operações de listas que você já conhece.

9
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas

Selecionando uma ou mais colunas como pd.DataFrame

Você, no entanto, pode estar interessado na seleção de mais que uma coluna de dados.
Para isso, basta informar ao Pandas uma lista dos atributos a serem selecionados.

Diferentemente da seleção anterior, que retorna uma Série do Pandas, a seleção desse
modo, com uma ou mais colunas informadas em uma lista, retorna um DataFrame.

O DataFrame permite a seleção de várias séries de dados (atributos) para construirmos


subconjuntos de dados de interesse. Essas seleções de dados também são DataFrame,
e todas as operações de DataFrame são aplicáveis.

A seleção com uma ou mais colunas informadas em uma lista retorna um DataFrame.
Note que df[‘tip’] retorna um pd.Series, enquanto selecionar df[[‘tip’]] retorna um
pd.DataFrame de uma única coluna.

10
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas

De modo geral, você pode empregar a seleção de pd.Series para selecionar um único
atributo, e empregar a seleção pd.DataFrame quando estiver interessado na criação de
subconjuntos de dados.

Selecionando maiores e menores

como selecionar linhas que contenham os maiores e os menores valores da coleção.

Alterando e incluindo colunas de dados

Muitas vezes, é necessária a criação de atributos derivados a partir dos dados originais,
como converter os valores para R$, criar um atributo com o valor das contas descontada
a gorjeta ou com o valor da conta divido pelos participantes da mesa. Essa é uma grande
facilidade do Pandas que, a exemplo do NumPy, permite fazer essas operações com
um único comando sobre toda uma coleção de dados, sem a necessidade de laços de
programa.

11
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas

Selecionar linhas

valores que buscamos. Por exemplo, você pode selecionar o tipo de peças que deseja
ver em um DataFrame com os dados de vários componentes, ou selecionar as unidades
de fábrica de uma certa cidade a respeito da qual você tem os dados de produção.

O critério de seleção é um predicado lógico e você deve empregar a seguinte sintaxe:

12
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas

Exemplos:

Assim, podemos selecionar os dados somente dos não fumantes ou dos fumantes:

E, com isso, podemos responder a algumas questões interessantes que envolvem a


proporção dos dados de fumantes e não fumantes.

Seleção de linhas e colunas

Empregue para importar bibliotecas que adicionam funcionalidades ao Python. Em geral,

O uso mais geral das seleções é quando fazemos seleções de linhas e colunas dos dados
e, às vezes, referimo-nos a esse subconjunto dos dados como slice (fatia) dos dados.
A boa prática indica que sempre iniciaremos com a seleção das linhas.

13
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas

Com isso, podemos fazer inúmeras seleções de dados que temos interesse em visualizar
ou analisar, e responder a muitas perguntas sobre os dados.

Fumantes ou Mulheres pagam mais gorjeta (em média)?

As seleções de subconjuntos de dados, com veremos, têm uma papel importante na


construção de visualizações e no entendimento dos dados, pois, muitas vezes, estamos
interessados em comparar diferentes classes ou subconjuntos de dados, como no
exemplo abaixo, no qual observamos os valores de gorjetas oferecidas por clientes
homens e mulheres.

14
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas

O Pandas ainda conta com uma série de operações para manipulação e transformação
dos dados como funções de joins e merge de tabelas, groupby etc. Empregaremos,
eventualmente, essas operações ao longo do texto e, para maiores detalhes, você poderá
consultar a documentação do Pandas ou outras referências online.

15
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas

4. Agregações de dados
Muitas vezes, estamos interessados em aplicar uma função ou obter uma estatística
dos dados para diferentes classes ou grupos de dados simultaneamente. O Pandas
oferece uma operação de groupby, a qual permite manipular e resumir conjuntos de
dados dessa forma.

Você já aprendeu que pode aplicar operações – como média e máximo – para sumarizar
estatísticas, por exemplo, de uma Série de dados contendo a idade em um DataFrame de
cliente ou o preço do metro quadrado em um DataFrame de Imóveis.

Como podemos, no entanto, obter as médias de idade por sexo ou o preço máximo do
metro quadrado dos imóveis por região?

O groupby é a função que permite agregar esses dados e obter estatísticas ou aplicar
funções a várias classes ou grupos de dados.

Se você está familiarizado com SQL ou o Excel, o resultado do groupby em Pandas é


bastante semelhante ao que você obtém com o groupby do SQL e as tabelas dinâmicas
do Excel.

16
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas

Funcionamento do GroupBy

A operação de groupby consiste, em geral, de três etapas:

2. Aplicar uma computação, geralmente em uma estatística agregada como média, count

3. Combinar os resultados dessas operações em uma saída única.

17
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas

18
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas

No exemplo acima,

1. Dividimos os dados nas classes A, B e C.

2. Em seguida, aplicamos a cada grupo uma função de agregação sobre o valor. No caso,
aplicamos a sum(), mas poderíamos aplicar outras funções de agregação como count(),
mean(), std() etc.

3. Combinamos, então, esses dados em uma única saída.

19
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas

Em uma única linha, todas as operação são executadas pela função groupby():

Aqui é empregado o índice do DataFrame. Não daremos muita atenção nesta introdução
ao Pandas ao uso de índices. Eles têm um papel mais importante no desempenho de

os índices como mais um atributo dos dados, o qual podemos referenciar como df.index.

Outras operações de agregação além do sum() podem ser, então, igualmente aplicadas
a quaisquer atributos, desde que façam sentido para seus valores (posso ter o valor
máximo de um atributo do tipo String, mas não um valor de média).

Ou ainda:

20
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas

Veja, por exemplo, a aplicação em um conjunto de dados mais prático.

Aqui, as operações são aplicáveis somente a valores numéricos:

21
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas

Mas as funções, se aplicáveis, podem envolver também atributos categóricos:

Podemos, inclusive, selecionar os atributos:

chave:

22
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas

Acessando chaves e valores dos grupos

O método groupby retorna um objeto do tipo DataFrameGroupBy, e não um DataFrame.


Essa é uma grande diferença entre as funções no Pandas e no SQL. Os métodos de
DataFrame não podem ser aplicados a um objeto do tipo DataFrameGroupBy, enquanto,
na SQL, um SELECT com GROUPY retorna uma tabela, com todas as operações de tabela
aplicáveis.

A estrutura desses dados é, basicamente, na forma de um dicionário, e você pode acessar


as chaves e seus valores.

Iterando sobre grupos

Você pode, então, fazer iterações sobre esses valores ou aplicar funções de agregação,

23
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas

24
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas

Acessando os valores

Você pode referenciar diretamente o atributo em um grupo para obter uma Série Pandas
e, então, operar esses valores como abaixo:

Um artifício bastante prático que você pode empregar, se não estiver preocupado com
o desempenho e o uso de recursos de memória das operações, é transformar seu
agrupamento em um DataFrame para que possa aplicar as operações que já conhece
diretamente para essa classe.

25
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas

26
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas

5. Combinações de dados

Muitas vezes, você pode estar lidando com mais de uma tabela ou conjunto de dados.
Assim, operações para combinar esses dados são muito úteis.

Existem várias formas de combinar conjuntos de dados com Pandas. Aqui, vamos nos
concentrar nas operações de concatenação e de junções (joins) de dados.

você não precisa se preocupar com ele. Nos exemplos que seguem, empregaremos os
DataFrames df1, df2 e df3.

27
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas

Concatenação

Você pode concatenar tabelas de dados no sentido das linhas ou das colunas. O
caso “feliz” nessas operações é quando o número de colunas das tabelas é o mesmo
(concatenação no sentido das linhas) ou quando o número de linhas das tabelas é o
mesmo (concatenação no sentido das colunas).

pd.concat([df1,df2], axis=0) concatena linhas

28
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas

pd.concat([df1,df2], axis=1) concatena colunas

29
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas

No caso de não termos as quantidades de linhas ou colunas iguais, conforme o sentido


da combinação, os valores ausentes são preenchidos com NaN.

Embora possa ser usada desse modo, tal operação pode gerar índices duplicados (como
visto acima), caso os conjuntos de dados tenham índices únicos e distintos. Nessas

30
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas

Problema semelhante pode ocorrer com a concatenação de colunas de dados quando


existem nomes de atributos (colunas) duplicados.

Com o mesmo nome, os atributos não podem ser diferenciados; e precisamos usar a
localização dos atributos se quisermos recuperá-los (uma forma que não detalharemos
aqui).

31
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas

A solução mais simples para isso é renomear as colunas após a operação. Isso pode ser
feito do modo abaixo, ou você pode empregar o método df.remane(columns=...).

O comando concat ainda pode ser empregado com o parâmetro inneer, pd.concat([df1,df2],
axis=0|1, join=’inner’), que concatena linhas ou colunas, mas garante que somente os
elementos inner (mesmas colunas ou índices) dentro das duas tabelas participarão
da concatenação. Não nos deteremos sobre esses comandos aqui, mas você pode
experimentar executá-los e ver os resultados obtidos. Mas atenção, não confunda essa
operação com a junção de dados. Veremos os Joins a seguir.

Junções

As junções empregam um atributo chave para match ou junção dos dados e desempenham
um papel muito importante nas combinações de diferentes dados. Aqui, as operações
seguem o mesmo princípio dos joins da SQL, e seus resultados também são novos
DataFrames, incluindo os conceitos inner e outter joins.

Temos três tipos de junções:

• Inner, incluímos somente linhas com match das chaves nas duas tabelas.

• Outter, incluímos linhas, independentemente do match das chaves nas duas tabelas.

o Left, incluímos linhas com match das chaves nas duas tabelas + linhas da tabela
à esquerda, independentemente de match.

o Right, incluímos linhas com match das chaves nas duas tabelas + linhas da tabela
à direita, independentemente de match.

32
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas

Inner Joins

No primeiro exemplo, a junção é feita empregando o atributo employee para match dos
dados. Os três comandos abaixo produzem os mesmos resultados.

33
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas

Os demais exemplos apresentam várias formas de junções dos dados.

34
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas

Right e Left Joins

Right e Left Joins são empregados quando queremos adicionar à combinação dos dados
outros elementos, independentemente de fazerem match com as chaves de dados ou
não.

35
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas

Na junção acima, você não encontra a funcionária Adriana por que a chave (atributo
group) Commercial só está presente na tabela à esquerda da junção. Para incluí-la,
podemos fazer uma junção Left:

36
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas

Do mesmo modo, o skill Data Science não aparece na junção inicial por que a chave
(atributo group) Research só está presente na tabela à direita da junção. Para incluí-la,
podemos fazer uma junção Right:.

37
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas

Para inclusão de dados de ambas as tabelas, podemos empregar o full outter joins das
tabelas:

Reshape dos dados

Concluiremos com o assunto operações de reshape, ou de alteração da forma dos dados.

38
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas

6. Reshape dos dados

Concluiremos com o assunto operações de reshape, ou de alteração da forma dos dados.

Em muitos casos práticos, os dados não estarão exatamente no melhor formato para sua
análise. Podemos ter dados em colunas quando queríamos que estivessem em linhas, ou
vice-versa. Empregamos, então, transformações para reshape dos dados.

O Pandas fornece duas funções úteis para isso: o melt para levar dados de colunas para
linhas e o pivot para trazer dados de linhas para colunas.

Melt, pd.melt(df, id_vars = , value_vars = )

Essa função incluirá, para cada id, uma nova variável com os valores do campo value_
vars.

39
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas

Os parâmetros var_name e value_name podem ser empregados para alterar o nome dos
atributos criados.

pd.pivot(df, index= , columns= , values= )

Esta função cria, para cada valor de uma coluna, uma linha com os valores correspondentes.

E você pode achar útil empregar o reset_index() ao conjunto de dados criado.

40
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas

Os parâmetros var_name e value_name podem ser empregados para alterar o nome dos
atributos criados.

41
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas

7. Síntese
Nesta trilha, estudamos como manipular dados com o Pandas.

As operações de consulta envolvem obter informações sobre a estrutura dos dados


(tamanho, formatos etc.) e as seleções de dados. As seleções podem se referir a atributos
ou instâncias de dados que contenham valores segundo algum critério de seleção
(valores iguais a, menores que etc.). Podemos, ainda, fazer agregações dos dados e
obter informações sobre essas agregações (valores médios, quantidades etc.).

Quando temos dados de duas ou mais tabelas, as combinações de dados podem ser
empregadas tanto para consulta como para criação de novos conjuntos de dados e, aqui,
vimos como fazer concatenações e junções de tabelas com o Pandas.

Por último, aprendemos a empregar o Pandas para alterar a estrutura de linhas e colunas
dos dados (instruções melt e pivot).

Essas operações sobre os dados desempenham um papel bastante importante na análise


e na ciência de dados e é comum, nos processos de análise de dados industrializados,
criarmos pipelines de dados em que várias operações, como seleções, junções e
transformações dos dados, são programadas e automatizadas.

42
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas

8. Para saber mais

Acesse Pandas GroupBy: Your Guide to Grouping Data in Python, disponível em:
<https://realpython.com/pandas-groupby/> e entenda mais como criar e manipular grupos
de dados com Python.

Veja aqui uma palestra recente de Wes McKinney, o desenvolvedor inicial do Pandas,
Wes McKinney - Keynote - PyCon Colombia 2020, disponível em: <https://youtu.be/
ZTXFQ2sEarQ>.

Revise aqui o essencial em Pandas Cheat Sheet for Data Science in Python, disponível
em: <https://www.datacamp.com/community/blog/python-pandas-cheat-sheet>, um
rápido tutorial de Karlijn Willems; ou, ainda, acesse o Tutorial do Pandas, disponível em:
<https://pandas.pydata.org/pandas-docs/stable/getting_started/index.html>.

43
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas

9. Referências

MCKINNEY, Wes. Python for data analysis. Newton: O’Reilly Media, 2012.

Pandas. Disponível em: <https://pandas.pydata.org/>. Acesso em: 16 jul. 2021.

PHUONG Vo., T. H.; CZYGAN, Martin. Getting Started with Python Data Analysis.
Birmingham: Packt Publishing, 2015.

Python. Disponível em: <https://www.python.org/>. Acesso em: 16 jul. 2021.

VANDERPLAS, Jake. Python Data Science Handbook. Newton: O’Reilly Media, 2016.
Disponível em: <https://jakevdp.github.io/PythonDataScienceHandbook/. Acesso em: 16
jul. 2021.

44
CIÊNCIAS DE DADOS (BIG DATA PROCESSING AND ANALYTICS)

Arquitetura de Big Data


Modalidade a distância

PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO


PARA CIÊNCIA DE DADOS

Trilha 3 — Visualização dos Dados com Matplotlib e


Seaborn

Professores: Diego Nogare & Rogério de Oliveira


Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn

Sumário
1. Introdução ................................................................................................. 4

.............................................................................. 5

.................................................................................................. 23

............................................................................................. 26

.................................................................... 31

................................................................................................. 35

....................................................................................... 39

.................................................................................. 40

.................................................................................... 42

...................................................................................... 44

.................................................................. 45

.................................................................................................. 46

................................................................................... 47

.......................................................................................... 48
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn

1. Introdução

Matplotlib Seaborn

Exploração
dos dados

Apresentação de resultados

4
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn

5
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn

6
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn

7
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn

8
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn

9
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn

10
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn

Você pode empregar diferentes estilos de linha apenas para diferenciá-las em

11
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn

12
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn

13
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn

Textos como rótulos dos eixos e outras anotações não são opcionais. A menos que

14
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn

15
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn

16
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn

17
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn

18
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn

rótulos e títulos diferem ligeiramente das funções empregadas na interface direta.

19
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn

Latex

Empregando estilos

20
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn

21
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn

22
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn

3. Evolução

23
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn

24
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn

25
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn

4. Distribuição

Histogramas

26
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn

27
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn

28
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn

29
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn

30
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn

5. Quantidades e Proporções

31
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn

32
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn

Pie Charts

Heat Maps

33
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn

34
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn

6. Relações

35
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn

Adicionando uma linha de tendência

36
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn

Correlograma

37
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn

38
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn

39
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn

8. Resumo Matplotib

40
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn

41
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn

9. Resumo Seaborn

42
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn

43
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn

1.

2.

44
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn

1. Matplotlib

2. Seaborn

3.

4. Pandas Visualization

5.

6. Pandas Cheat Sheet

7. Matplotlib Cheat Sheet

8.

45
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn

12. Síntese

Exploração dos
dados Apresentação

46
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn

13. Para saber mais

code)

Principles of Data Visualization

47
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn

14. Referências

48
CIÊNCIAS DE DADOS (BIG DATA PROCESSING AND ANALYTICS)

Arquitetura de Big Data


Modalidade a distância

PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO


PARA CIÊNCIA DE DADOS

Trilha 4 — Estudos de Caso de Análise de Dados I

Professores: Diego Nogare & Rogério de Oliveira


Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I

Sumário
1. Introdução ................................................................................................. 4

2. EDA – Exploratory Data Analysis .............................................................. 5

3. Caso: Índices da bolsa de valores............................................................ 8

4. Caso: vinhos no mundo........................................................................... 25

5. Síntese ................................................................................................... 37

6. Para saber mais ..................................................................................... 38

7. Referências ............................................................................................ 39
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I

1. Introdução

Nesta trilha, compreenderemos como empregar os recursos aprendidos nas trilhas


anteriores para desenvolver suas primeiras análises de dados. Essas análises preliminares

de máquina em componentes posteriores.

Não temos a pretensão aqui de esgotar todo o tema dessa análise, mesmo que preliminar,
dos dados. Selecionaremos, portanto, dois casos úteis (que poderão servir no futuro) para
que você faça suas próprias análises.

4
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I

2. Exploratory Data Analysis

EDA consiste de uma exploração inicial e aberta dos dados. Empregando técnicas

dos dados e algumas respostas às primeiras perguntas que vão de encontro ao seu
interesse.

Para essa exploração, é inevitável a necessidade de manipular os dados com seleções,

essas serão vistas mais adiante e, em geral, integram a “Preparação” dos dados para

já responde a muitas perguntas relevantes sobre os dados, sem necessitar, ainda,


empregar modelos.

O que é EDA?

A Análise Exploratória de Dados (EDA) é uma abordagem para análise de dados

percepção e o entendimento de um conjunto de dados:

1. descobrir a estrutura dos dados;

2. extrair variáveis importantes;

3. detectar outliers e anomalias (com valores faltantes);

4. testar premissas subjacentes (perguntas que fazemos sobre os dados);

5. desenvolver modelos simples (em nosso caso: o preço dos vinhos está
relacionado com as melhores avaliações?).

5
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I

A abordagem da EDA é precisamente isso – uma abordagem, não um conjunto de técnicas

dados (embora os dois termos sejam usados quase de forma intercambiável). Ela adia
as suposições usuais sobre que tipo de modelo os dados seguem para permitir que os
próprios dados revelem sua estrutura e modelo subjacentes.

Mais importante que os aspectos técnicos da EDA é seu aspecto de pensamento analítico.
Você deve, antes, entender que tipo de perguntas são de interesse sobre dados. Esse
pensamento analítico também precisa seguir princípios da ciência em que, a cada análise,

Um pouco de história

(1981) e ganhou muitos seguidores como “a” maneira de analisar um conjunto de dados.

Um roteiro simples para o EDA

forma aberta, revelando sua estrutura.

quantitativas, pode ser o seguinte:

1. Explore a estrutura dos dados.

2. Examine os dados brutos e os atributos relevantes.

a. Gere estatísticas simples sobre os dados.

3. Responda a perguntas relevantes ou de interesse sobre os dados.

6
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I

b. Distribuições dos dados.

c. Quantidades e Proporções.

d. Relações dos dados.

O primeiro com dados da bolsa de valores, e o segundo com dados sobre avaliações
de vinho.

7
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I

3. Caso: Índices da bolsa de valores

Quando falamos de Evolução dos dados, estamos interessados em observar a evolução,


o comportamento, de uma ou mais variáveis dependentes, com relação a uma outra.

Você pode, por exemplo, estar interessado em saber como evolui a quantidade de energia

Um caso muito frequente é querermos observar a evolução de variáveis com relação ao


tempo. Chamamos esse conjunto de dados de série temporal. Existem muitos casos de
interesse de séries temporais e, por isso, vale a pena explorarmos um desses casos aqui.

As séries temporais requerem todo um ferramental estatístico próprio e há uma série de

pode nos proporcionar para a análise desses dados e entendermos, também, algumas

Exploração inicial dos dados

Devemos começar entendendo a estrutura dos dados com os quais trabalharemos.

extrairmos informações dos dados.

8
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I

necessário que sejam fornecidas informações sobre o conteúdo dos dados, metadados,

cada caso, e assumiremos que elas, como em nosso exemplo, já são conhecidas.

A rápida inspeção dos dados acima mostra que temos valores de três índices da bolsa
para o período de 2020-01-02 a 2020-03-09.

9
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I

Reshape dos dados

A inspeção acima também mostra que os dados não estão exatamente no formato que
podíamos esperar: as datas se repetem, assim como os códigos dos índices. O ideal

terceira forma normal de bancos de dados relacionais); você poderá consultar mais sobre

dados para um formato mais adequado.

O Pandas fornece várias instruções para reshape de dados, como merge, pivot, melt etc.

data.

Diferentes fontes de dados

Mais comum ainda, é a necessidade de juntarmos dados de diferentes fontes. Como você

simples de dados e adiciona a eles um novo índice.

10
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I

O Pandas também fornece várias formas para combinarmos dados (concat, merge etc.)

dado inicial. Vejamos, porém, uma junção dos dados, algo que pode ser útil para você em
muitos casos práticos. A junção funciona de forma análoga a um join da SQL.

11
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I

Transformações dos dados

Muitas transformações também podem ser necessárias para tornar o dado mais adequado
para uma análise, e são comuns tanto transformações de mudança de tipos, encode de

dados que faremos mais adiante.

Neste ponto de nosso exemplo, basta observar que o tipo de dado de ‘data’, embora
apresente os valores de forma correta, não é o tipo de dado ideal para esse tipo de

para o formato mais adequado de datetime.

Qualidade dos dados

As análises de dados ausentes, outliers (dados discrepantes) dentre outras, permitem


termos uma ideia da qualidade dos dados, o que é essencial antes de prosseguirmos na
análise.

12
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I

e algumas de suas estatísticas.

Explorando os dados

Dependendo do problema, você pode querer analisar: evoluções ou tendência dos dados,
distribuições dos dados, quantidades e proporções, relações etc. Neste exemplo, vamos

que nos permitirá aprender e praticar algumas técnicas bastante importantes e comuns.

Linha de tendência linear

Aqui, encontraremos um problema muito comum ao buscarmos tendências em dados


temporais. Sua variável independente (a linha do tempo) não pode ser aplicada diretamente
a uma regressão linear (ou outra qualquer) pois seus dados não são numéricos. Para

numérico.

Isso pode ser feito atribuindo-se, para cada data do conjunto de dados, um valor inteiro
diferente a partir de 0. Se cada linha do conjunto de dados corresponde a uma data, esse
valor pode ser o próprio índice de seu conjunto de dados (para um DataFrame, df.index).

13
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I

14
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I

forma geral e alguns problemas com os quais você deverá lidar quando trabalha com
séries temporais. Você pode focar em detalhes quando estiver trabalhando com um caso

O procedimento acima é útil para muitos casos que envolvem séries temporais. Acima,
empregamos o índice dos dados (43 valores de [0,43] para cada data) para a linha de
tempo da regressão mas, na ausência de um índice, podemos criar um valor diferente
para cada data empregando, por exemplo:

Isso encontra-se comentado no código acima como uma forma opcional.

diferentes e, neste caso, pode ser necessário associar a cada data a distância com
relação a menor data em seu conjunto de dados (não empregando, portanto, valores com

Em nosso exemplo, como os dados da bolsa referem-se a dias úteis, há intervalos de datas

os mesmos aqui, a rigor, precisamos empregar intervalos de datas diferentes; e, para

adicionando um novo atributo com quantidade de dias a partir da data inicial. A função
dt.days permite transformar esses valores para o cálculo da regressão.

15
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I

16
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I

Aqui o resultado é praticamente o mesmo, mas, para os casos em que os intervalos de


data tenham diferenças maiores, isso poderá ser relevante.

Linha de tendência média

Outra forma de entendermos as linhas de tendência dos dados é empregarmos a média


dos vários valores e ligar esses pontos a uma linha de tendência. Aqui, não buscamos
aproximar nenhum modelo prévio, como um modelo linear ou polinomial, mas exibimos
simplesmente uma média de tendência dos dados.

Essa linha média ainda pode ser incrementada com uma margem de erro, por exemplo, o
desvio padrão, permitindo acompanhar a dispersão dos dados ao longo da linha média.
Para isso, no lugar do plot, você poderá empregar o comando plt.errorbar. Como nossos
dados apresentam apenas uma única cotação diária, agregaremos as cotações em
semanais e as exibiremos semanalmente.

17
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I

O mesmo procedimento poderia ser feito se tivéssemos cotações diárias do índice, e, se

de caixa, ou boxplot – como abaixo.

18
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I

pode, por exemplo, observar a maior dispersão dos dados na semana 10.

Comparando escalas diferentes

como você pode observar:

19
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I

O comando ax.twinx(), no modo Artist Layer, pode ser uma alternativa. Ele permite a

tendência das duas séries de dados simultaneamente.SS

20
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I

21
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I

Esse procedimento, entretanto, só é útil quando temos até duas escalas diferentes de

dos dados.

Cuidado ao empregar normalizações dos dados! Ao exibir os dados normalizados,


você não estará mais observando os valores reais dos dados, mas seus
movimentos relativos.

para o intervalo [0,1]. Vamos, porém, adotar um procedimento muito usado, e igualmente

os valores, levando o conjunto de dados a uma média 0 e desvio padrão 1.

O resultado encontra-se abaixo.

22
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I

23
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I

Não tiraremos conclusões sobre esses dados; deixaremos isso para os economistas e
analistas de mercado. Nosso interesse aqui é que você entenda algumas técnicas de
análise com os recursos que já estudamos e que poderão ser úteis em diversos casos.

É, de qualquer modo, fácil ver que o índice da bolsa segue de forma bastante próxima

de 2020.

24
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I

4. Caso: vinhos no mundo

Exploraremos, agora, um conjunto de dados com cerca de 130.000 avaliações de vinhos.


Em geral, o objetivo da análise é responder perguntas sobre os dados, as hipóteses que

Exploração inicial dos dados

Aqui não nos preocuparemos com diferentes fontes de dados ou transformações. O

Qualidade dos dados

Podemos observar que existem poucos vinhos nacionais avaliados e que a base possui
um grande número de valores ausentes.

25
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I

Particularmente, estaremos interessados aqui no preço dos vinhos; a presença de valores

desvio padrão desse dado. Nos casos em que você emprega os dados em algoritmos de

atributos ou mesmo imputando valores.

26
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I

Explorando perguntas relevantes sobre os dados

Faremos, agora, uma série de perguntas sobre os dados e buscaremos respondê-las a

Qual é o país com mais vinhos avaliados e qual é a posição do Brasil?

Para obter essas respostas, é útil empregarmos a função countplot do Seaborn, ou o


groupby do Pandas.

27
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I

Qual é a origem dos tipos de vinhos mais baratos e mais caros avaliados?

Os operadores nlargest e nsmallest do Pandas são bastante úteis para responder esse
tipo de questões sobre os dados.

no atributo ‘variety’).

Como estão distribuídos os preços dos vinhos no Brasil e no mundo?

28
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I

prejudicada pela dispersão dos valores e os valores discrepantes, como podemos ver

29
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I

Matplotlib falha em calcular as estatísticas requeridas dos quartis. Desse modo, temos

mais simples e direto.

Fica evidente, assim, a presença de inúmeros outliers nos dados e podemos, então,

30
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I

Observamos que vinhos acima de USD 80 são valores discrepantes no mercado, estando
a maior parte dos vinhos abaixo de USD 50-40, e que os valores dos vinhos nacionais não

De que regiões vêm os vinhos brasileiros avaliados?

pergunta bastante simples de ser respondida. Não deve ser uma surpresa descobrir que
a maior parte dos vinhos nacionais avaliados vem da Serra Gaúcha.

31
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I

32
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I

De qualquer modo, os vinhos brasileiros têm preços abaixo da média mundial, mas
também avaliações abaixo da média.

Os melhores vinhos são os mais caros?

É claro que aqui consideramos como melhores os vinhos mais bem avaliados. De fato,
uma simples exibição dos dados permite ver essa relação.

33
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I

Mais adiante no curso, quando você conhecer técnicas estatísticas como testes de

o preço, a qual observamos visualmente.

Os vinhos franceses são mesmo os mais caros e bem avaliados?

Embora os vinhos franceses superem em preço e pontuação as médias globais, uma


análise mais detalhada mostra que existem muitos países que parecem apresentar vinhos
melhores e mais caros.

34
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I

35
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I

Conclusão das análises

Podemos nos estender por muitas mais análises desses dados, mas quando trabalhamos
em um caso real, o objetivo da análise direcionará e limitará essas possibilidades.

De qualquer modo, toda análise deve ter uma conclusão e, aqui, poderíamos resumir
alguns de nossos resultados.

vinhos bastante baratos em comparação ao mercado internacional, mas também vinhos


mal avaliados quando comparados à média mundial. O preço e a pontuação dos vinhos
são bastante relacionados, mas há uma faixa de vinhos muito bem avaliados com preços

que isso para beber um excelente vinho. Os vinhos franceses, bastante famosos, embora
superem em qualidade e preço a média dos demais países, são surpreendentemente
superados pelos vinhos de outros países, como Índia, Inglaterra e Alemanha.

Novamente, essas análises são apenas um exercício sobre as técnicas que queremos

36
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I

5. Síntese
Nesta trilha, empregamos vários recursos de Python e de suas bibliotecas (Pandas,

Não se preocupe com os detalhes de cada operação empregada aqui. Elas são menos

que os aspectos técnicos da EDA (Exploratory Data Analysis) é seu pensamento analítico

As técnicas variarão de caso para caso, elas podem diferir muito dos exemplos que
apresentamos e, com os fundamentos que aprendeu, você poderá buscá-las quando
tiver necessidade de empregá-las.

37
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I

6. Para saber mais

Acesse e pesquise por EDA. Você encontrará uma série de


cases de exploração de dados que poderão te interessar.

de máquina. Para uma rápida introdução sobre isso em Python, você pode acessar https://
.

“Tidy Data” (2014), em https://www.jstatsoft.org/index.php/jss/article/view/v059i10/


v59i10.pdf.

38
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I

7. Referências

Dados-em-Python>. Acesso em: 19 jul. 2021. (Coleção Conexão Inicial, no prelo).

>. Acesso em:


19 jul. 2021

https://www.jstatsoft.org/index.php/jss/article/view/v059i10/v59i10.pdf>.
Acesso em: 19 jul. 2021.

>. Acesso em: 19 jul. 2021.

39
CIÊNCIAS DE DADOS (BIG DATA PROCESSING AND ANALYTICS)

Arquitetura de Big Data


Modalidade a distância

PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO PARA


CIÊNCIA DE DADOS

Trilha 5— Introdução à Programação R

Professores: Diego Nogare & Rogério de Oliveira


Trilha de Aprendizagem Introdução à Programação R

Sumário
1. Introdução .................................................................................................................................... 4

2. Introdução à linguagem R ....................................................................................................... 5

3. Tipos de Dados ..........................................................................................................................10

4. Matrizes ........................................................................................................................................13

5. Resposta das perguntas .........................................................................................................16

6. Síntese...........................................................................................................................................17

7. Referências ..................................................................................................................................18
Trilha de Aprendizagem Introdução à Programação R

1. Introdução
Seguindo o padrão de introduzir a linguagem de programação que será estudada nestas próximas

4
Trilha de Aprendizagem Introdução à Programação R

2. Introdução à linguagem R

# Como funciona

5
Trilha de Aprendizagem Introdução à Programação R

help(c)

apenas os valores 1, 2, 3, 4 e 5?

6
Trilha de Aprendizagem Introdução à Programação R

Pergunta 2) O que acontece se você escrever as condicionais do vetor desta forma X [(X > 8) & (X
< 5)]? E por que isso aconteceu?

7
Trilha de Aprendizagem Introdução à Programação R

8
Trilha de Aprendizagem Introdução à Programação R

para o resultado que chegou.

Co

9
Trilha de Aprendizagem Introdução à Programação R

3. Tipos de Dados

str(X)

10
Trilha de Aprendizagem Introdução à Programação R

FALSE

FALSE

11
Trilha de Aprendizagem Introdução à Programação R

12
Trilha de Aprendizagem Introdução à Programação R

Outra fo

Introdução à linguagem R

interpretador entende como FALSE, e então o preenchimento será feito de forma colunar,
preenchendo toda a primeira coluna, então parte para a segunda coluna, depois a terceira

13
Trilha de Aprendizagem Introdução à Programação R

14
Trilha de Aprendizagem Introdução à Programação R

15
Trilha de Aprendizagem Introdução à Programação R

5. Resposta das perguntas

Pergunta 1) Pen
retorne apenas os valores 1, 2, 3, 4 e 5?

Pergunta 2) O que acontece se você escrever as condicionais do vetor desta forma X [(X >
8) & (X < 5)]? E por que isso aconteceu?

deste elemento para o resultado que chegou.

16
Trilha de Aprendizagem Introdução à Programação R

6. Síntese

17
Trilha de Aprendizagem Introdução à Programação R

7. Referências
Projetos em R para leigos

Introdução à mineração de dados

R for data science

18
CIÊNCIAS DE DADOS (BIG DATA PROCESSING AND ANALYTICS)

Arquitetura de Big Data


Modalidade a distância

PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO PARA


CIÊNCIA DE DADOS

Trilha 6 — Seleção e Organização de Dados com Tidyr e Dplyr

Professores: Diego Nogare & Rogério de Oliveira


Trilha de Aprendizagem Seleção e Organização de Dados com Tidyr e Dplyr

Sumário
1. Introdução .................................................................................................................................... 4

2. Atualizando o motor do R........................................................................................................ 5

3. Instalando o pacote tidyverse ................................................................................................ 6

4. Download do dataset ................................................................................................................ 8

5. Desafios com dataset ..............................................................................................................11

5.1. Minimizar atrasos ........................................................................................................12

5.2. Qual aeroporto devemos evitar? ..........................................................................16

6. Resposta das perguntas .........................................................................................................20

7. Síntese...........................................................................................................................................22

8. Referências ..................................................................................................................................23
Trilha de Aprendizagem Seleção e Organização de Dados com Tidyr e Dplyr

1. Introdução
Para iniciar a Trilha 6 deste componente curricular, exploraremos alguns pacotes de
manipulação de dados.

O R tem muitas funções integradas, que são acessadas por meio do pacote-base que já vem
como padrão no motor da linguagem. Contudo, também podemos usar funções que são
armazenadas em pacotes criados por outras pessoas.

faz com que seu motor da linguagem vá até o repositório do Comprehensive R Archive

Para usar as funções de um pacote, você precisa primeiro carregá-lo usando a função

carregado durante a execução, não precisa carregar novamente para usar as funções. Há

4
Trilha de Aprendizagem Seleção e Organização de Dados com Tidyr e Dplyr

2. Atualizando o motor do R
P
forçar a atualização da versão do motor de processamento por meio de pacotes.

O primeiro passo para atualizar o ambiente é instalar o pacote installR e, depois, carregá-lo,
para então ser feita a chamada da função updateR e seguir com o guia de instalação:

version10

Em seguida, é feita a instalação e atualização do pacote DevTools. Este pacote ajuda a

5
Trilha de Aprendizagem Seleção e Organização de Dados com Tidyr e Dplyr

carregamento de suas funções para esta execução do ambiente:

de um conjunto de dados com informações de desempenho das companhias aéreas.

Acompanhe a seção Download do dataset para reproduzir como este conjunto de


dados foi criado.

6
Trilha de Aprendizagem Seleção e Organização de Dados com Tidyr e Dplyr

para reproduzir os experimentos, estes datasets já estarão disponíveis.

variável, já no formato de data frame. Siga o código abaixo para carregar os dados:

----------------

Para observar as primeiras linhas do conjunto de dados, é executada a função head que

Agora que já estamos com o conjunto de dados carregado em memória, te convido a me

7
Trilha de Aprendizagem Seleção e Organização de Dados com Tidyr e Dplyr

4. Download do dataset

trilha.

em um data frame.

Abaixo, é escrito, na variável URL, o caminho para fazer o download do dataset completo.
Em seguida, é criada uma nova variável com o nome que o arquivo terá em seu computador
local:

8
Trilha de Aprendizagem Seleção e Organização de Dados com Tidyr e Dplyr

está o arquivo a ser baixado da Internet para seu computador local, e o segundo é o nome
que este arquivo terá:

Após o download do arquivo, é necessário fazer a extração dos arquivos internos. Este

de dentro do ZIP:

Depois dos arquivos serem descompactados, faremos o carregamento dos dados em um

O conjunto de dados é grande, possuindo sete milhões de linhas.

Para facilitar o trabalho, executaremos a randomização dessas sete milhões de observações

aleatoriedade permite que, independentemente de em qual ambiente for executado o


experimento, todos os estudantes terão os mesmos resultados.

9
Trilha de Aprendizagem Seleção e Organização de Dados com Tidyr e Dplyr

Repare em sua pasta de trabalho que existe um arquivo chamado voos2008.csv com
aproximadamente 10Mb de tamanho. Este arquivo também está disponível para download
dentro dos arquivos disponíveis no componente curricular.

10
Trilha de Aprendizagem Seleção e Organização de Dados com Tidyr e Dplyr

Depois de carregar o conjunto de dados, pode-se explorar alguns problemas que são

conhecimento de manipulação de dados com linguagem R.


Uma coisa muito importante quando se trabalha com dados, é conhecê-los. Aqui, há um
minidicionário de dados sobre esse dataset:

Year Month DayOfMonth DayOfWeek


DepTime
CRSDepTime ArrTime
CRSArrTime UniqueCarrier
FlightNum TailNum
ActualElapsedTime CRSElapsedTime
AirTime ArrDelay
DepDelay Origin
Dest Distance
TaxiIn TaxiOut
Cancelled
Diverted
CarrierDelay WeatherDelay
NASDelay SecurityDelay

11
Trilha de Aprendizagem Seleção e Organização de Dados com Tidyr e Dplyr

5.1. Minimizar atrasos

resolver este problema. O problema é bastante claro: Qual é o dia da semana/época do ano
para voar que minimiza atrasos? Então, podemos olhar o dicionário de dados deste dataset

O pipe permite que funções sejam executadas de forma ordenada, ou seja, uma função
será executada somente após a outra. Repare que o símbolo do pipe está entre a variável
com os dados e a função select. Isso faz com que o interpretador do R execute a instrução

está do lado direito do pipe. Ou seja, este exemplo de código executará o select em cima
da base de dados.

no dataset, e as armazena em um novo objeto chamado novoDataset:

variáveis que são relevantes para resolver o problema foram retornadas. É possível ver

pouco:

12
Trilha de Aprendizagem Seleção e Organização de Dados com Tidyr e Dplyr

executado somente após a seleção de variáveis já ter sido executada. Ou seja, executa a
instrução que está do lado direito do pipe em cima do objeto que está do lado esquerdo.

Em ordem, este bloco de código executará a ordem:

estudo, pensaremos em época do ano como sendo o mês.

cálculo da média:

13
Trilha de Aprendizagem Seleção e Organização de Dados com Tidyr e Dplyr

é descobrir a melhor época do ano para não ter atrasos.

Combinamos há pouco que trataríamos a época como meses. Então, faremos esse cálculo

Para isso, inseriremos três novas funções em nosso estudo. A função mutate, capaz de criar

aprendemos até agora:

A média de atraso foi criada com a função mean e salva em uma nova variável chamada

14
Trilha de Aprendizagem Seleção e Organização de Dados com Tidyr e Dplyr

uma função de seleção das variáveis Month e atrasoMedio, somente uma aparição da

de manipulação de dados, é feita a ordenação com a variável atrasoMedio para que o


resultado apresente os atrasos em ordem crescente. Assim, é possível ver quais meses são
os melhores para voar:

Pergunta 1) Aproveitando a função mutate, como deve ser feito o cálculo de tempo
médio de atraso de voo com todas as observações (linhas) que temos no dataset
original? Mostre os dez primeiros registros deste resultado.

Pergunta 2) No experimento para mostrar o mês com menos atrasos, o que


acontece se executar a função unique() antes de executar a função select?

15
Trilha de Aprendizagem Seleção e Organização de Dados com Tidyr e Dplyr

5.2. Qual aeroporto devemos evitar?

neste dataset.

estudado, faça a seleção apenas dessas duas variáveis e veja o resultado:

Após fazer a seleção das variáveis, é hora de agrupar os códigos do aeroporto de origem.

e, em seguida, os dez primeiros registros deste resultado:

Repare que os mesmos aeroportos de origem apresentam o mesmo total de atraso. Procure

16
Trilha de Aprendizagem Seleção e Organização de Dados com Tidyr e Dplyr

nos dá o resultado em ordem crescente. E, se deixar o resultado em ordem crescente,


encontraremos os aeroportos que tem menos atrasos, como pode ser visto no bloco de
código a seguir:

Para fazer a ordem inversa dos valores, em vez de usar somente a função arrange, é

17
Trilha de Aprendizagem Seleção e Organização de Dados com Tidyr e Dplyr

interessante para quem for consumir o resultado de seu trabalho. Se você se lembrar, lá no
dicionário de dados, há uma descrição para cada um dos quatro códigos de cancelamento.

join para unir este novo data frame com o resultado que foi criado.

descrição:

Codigo Descricao

A Operadora

C NAS
DSegurança

Com os dois vetores criados, é hora de incluir uma nova função em nosso aprendizado. A

da coluna que queremos para **Codigo**, dizendo que ela terá os valores do vetor de
código que criamos anteriormente. A mesma coisa será feita com a coluna **Descricao**
que receberá os valores que trouxemos lá do dicionário.

18
Trilha de Aprendizagem Seleção e Organização de Dados com Tidyr e Dplyr

Codigo Descricao

1A Operadora

Agora é hora de unir os resultados dos dois data frame, o que tem a sua manipulação
de dados e o que tem o código e a descrição dos cancelamentos. Para isso, é necessário

faremos a união dos data frames:

19
Trilha de Aprendizagem Seleção e Organização de Dados com Tidyr e Dplyr

6. Resposta das perguntas

Pergunta 1) Aproveitando a função mutate, como deve ser feito o cálculo de tempo
médio de atraso de voo com todas as observações (linhas) que temos no dataset original?
Mostre os dez primeiros registros deste resultado.

Pergunta 2) No experimento para mostrar o mês com menos atrasos, o que acontece se
executar a função unique() antes de executar a função select?

unique no momento em que realmente precise fazer a remoção de valores duplicados.

20
Trilha de Aprendizagem Seleção e Organização de Dados com Tidyr e Dplyr

21
Trilha de Aprendizagem Seleção e Organização de Dados com Tidyr e Dplyr

7. Síntese

• Pipe
• Select

• mutate

• unique
• join

22
Trilha de Aprendizagem Seleção e Organização de Dados com Tidyr e Dplyr

8. Referências
Projetos em R para leigos

Introdução à mineração de dados: com aplicações

R for data science

23
CIÊNCIAS DE DADOS (BIG DATA PROCESSING AND ANALYTICS)

Arquitetura de Big Data


Modalidade a distância

PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO


PARA CIÊNCIA DE DADOS

Trilha 7 — Visualização de Dados com ggplot2

Professores: Diego Nogare & Rogério de Oliveira


Trilha de Aprendizagem 7 - Visualização de Dados com ggplot2

Sumário
1. Introdução ................................................................................................. 4

2. Base de dados Diamonds......................................................................... 6

2.1. Primeiras impressões ............................................................................. 7

2.2. Visualizações mais avançadas ............................................................ 15

2.3. Paleta de Cores ................................................................................... 18

3. Síntese .................................................................................................... 20

4. Referências ............................................................................................ 21
Trilha de Aprendizagem 7 - Visualização de Dados com ggplot2

1. Introdução

A proposta deste e-book é expandir seus horizontes na questão de visualização de dados,


aumentando seu conjunto de ferramentas para ir além do que já ouvimos no audioblog e

outras maneiras de visualizar dados, bem como algumas regras gerais a serem seguidas

que está nas Telas Interativas).

É esperado que, ao concluir esta trilha, você tenha habilidades para discutir estes
assuntos:

Descrever quando e porque usar os seguintes tipos de visualizações:

Ao obter um conjunto de dados e uma pergunta da área de negócio, é esperado que você

que melhor responde à pergunta.

• escalas (scales).

• objetos geométricos: geom_point, geom_line, geom_histogram, geom_bar, geom_vline,

4
Trilha de Aprendizagem 7 - Visualização de Dados com ggplot2

momento, principalmente se for seu primeiro contato com ferramentas de visualização.


A biblioteca do ggplot funciona com dataframes e não com vetores individuais, ou seja,

fornecido à função ggplot() ou podem ser fornecidos aos respectivos objetos geométricos
(geometric objects).

5
Trilha de Aprendizagem 7 - Visualização de Dados com ggplot2

2. Base de dados Diamonds

Para aplicar o conhecimento, neste e-book, utilizaremos a base de dados Diamonds que
faz parte do pacote ggplot2. Esse dataset fornece observações sobre diamantes. Para
acessar essa base, é necessário instalar e carregar o pacote ggplot2.

Pensando em um mini dicionário para ajudar no entendimento dos exercícios, a base é


composta pelas variáveis:

• Price: preço em dólares americanos (intervalo de 326 até 18,823).

• Carat: peso do diamante (intervalo de 0.2 até 5.01).

• Cut: qualidade do corte (Fair, Good, Very Good, Premium, Ideal), indo em
escala do pior para o melhor corte.

• Color: cor do diamante, varia entre J (pior) e D (melhor).

• Clarity: medida de pureza do diamante, com escala I1 (pior), SI2, SI1, VS2,
VS1, VVS2, VVS1, IF (melhor).

• x: comprimento em milímetros (intervalo de 0 até 10.74).

• y: largura em milímetros (intervalo de 0 até 58.9).

• z: profundidade em milímetros (intervalo de 0 até 31.8).

• Depth: percentual de profundidade, que representa a equação z/mean(x,y)


=2*z/(x+y) (intervalo de 43 até 79).

• Table: largura do topo do diamante em relação à parte mais larga (intervalo de


43 até 95).

em cima dos elementos do pacote ggplot2. Estas técnicas de exploração de dados nos
ajudarão a responder às perguntas por meio de um suporte visual.

6
Trilha de Aprendizagem 7 - Visualização de Dados com ggplot2

2. 1 Primeiras impressões

Inicializaremos com uma impressão básica da área de plotagem, utilizando duas variáveis

da área de plotagem:

7
Trilha de Aprendizagem 7 - Visualização de Dados com ggplot2

Neste momento, a impressão foi apenas da área, sem nenhum elemento visual que nos
mostrará alguma informação dos dados. Podemos, então, adicionar um elemento de objetos

duas variáveis no plano cartesiano. Veja, no código abaixo, a saída que o modelo apresenta:

8
Trilha de Aprendizagem 7 - Visualização de Dados com ggplot2

concentração de diamantes que são mais leves e custam menos. Com o passar dos
exercícios, exploraremos cada vez mais essas características.

para ggtitle(), xlab() e ylab(), que representam o ajuste do título e, em seguida, dos rótulos

9
Trilha de Aprendizagem 7 - Visualização de Dados com ggplot2

respectivos parâmetros. Mudaremos a cor dos pontos e também seu tamanho. Repare no

10
Trilha de Aprendizagem 7 - Visualização de Dados com ggplot2

Veja este bloco de código:

11
Trilha de Aprendizagem 7 - Visualização de Dados com ggplot2

que conseguimos explorar também a impressão de cores a partir de uma variável? Ao

a seguir. Repare que, tanto o tamanho dos pontos quanto a cor estão variando de acordo
com a variável que foi utilizada em sua impressão:

12
Trilha de Aprendizagem 7 - Visualização de Dados com ggplot2

integrados disponíveis, assim como estão disponíveis lá no arquivo de Telas Interativas

tema (por exemplo, theme_bw()):

13
Trilha de Aprendizagem 7 - Visualização de Dados com ggplot2

14
Trilha de Aprendizagem 7 - Visualização de Dados com ggplot2

2.2 Visualizações mais avançadas

Como vimos na seção Primeiras impressões, as camadas em ggplot2 são conhecidas


como geoms
pode adicionar novos geoms um em cima do outro.

camada, geom_smooth().

são apenas pontos impressos. Muitas vezes, para ajudar nesse sentido, adicionamos uma
linha de suavização para ver como são as tendências. Isso pode ser especialmente útil
ao tentar entender as regressões (estimação de valores numéricos). O geom_smoth ajuda
exatamente com isso, pois ele adiciona uma média condicional suavizada nos dados:

15
Trilha de Aprendizagem 7 - Visualização de Dados com ggplot2

geom,
como mostrado abaixo. E, neste caso, ao herdar os elementos de estética, cada série da
Clarity montará uma linha de tendência com a suavização:

Neste caso, uma alternativa elegante para gerar a visualização é separar os dados em
faces, nas quais cada face representará um subgrupo do conjunto de dados. Essa
segmentação é realizada com o elemento facet_wrap, que recebe o nome da variável
com a qual se deseja fazer a segmentação dos dados. Repare no código abaixo, ao
informar a variável Clarity no elemento de facet_wrap, os dados são segmentados em

16
Trilha de Aprendizagem 7 - Visualização de Dados com ggplot2

17
Trilha de Aprendizagem 7 - Visualização de Dados com ggplot2

2. 3 Paleta de cores

de cores padrão da biblioteca ggplot2. Se você se lembrar, em outros materiais aqui


do componente curricular, já usamos cores diferentes. Podemos fazer isso também no
ggplot2! No R, uma das bibliotecas que fornece paletas de cores alternativas, temos a
RColorBrewer. Já a usamos antes e a utilizaremos agora de novo.

O caminho é simples, veja:

• Carregue a biblioteca RColorBrewer.

• Imprima a lista de paletas disponíveis com a função display.brewer.all().

Para iniciar, veremos como é o carregamento da biblioteca e, então, veremos sua paleta
de cores. Acompanhe o código abaixo:

18
Trilha de Aprendizagem 7 - Visualização de Dados com ggplot2

19
Trilha de Aprendizagem 7 - Visualização de Dados com ggplot2

3. Síntese
Neste e-book, estudamos o pacote ggplot2 e algumas de suas formas de geração de

• Escala de tamanho.

• Elementos geométricos.

• Segmentação de dados.

• Linhas de tendências.

• Sobreposição de elementos.

20
Trilha de Aprendizagem 7 - Visualização de Dados com ggplot2

4. Referências

KNAFLIC, C. N. Storytelling com dados: um guia sobre visualização de dados para

Introdução à mineração de dados: com


aplicações em R. Rio de Janeiro: Elsevier, 2017.

R for data science: import, tidy, transform, visualize,


and model data. Massachusetts: O’Reilly Media, Inc., 2016.

21
CIÊNCIAS DE DADOS (BIG DATA PROCESSING AND ANALYTICS)

Arquitetura de Big Data


Modalidade a distância

PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO


PARA CIÊNCIA DE DADOS

Trilha 8 — Estudos de Caso de Análise de Dados II

Professores: Diego Nogare & Rogério de Oliveira


Trilha de Aprendizagem 8 - Estudos de Caso de Análise de Dados II

Sumário
1. Introdução ................................................................................................. 4

2. Visão Computacional ................................................................................ 7

3. Interpretação e Geração de Fala ............................................................ 10

4. Interpretação de Linguagem Natural ...................................................... 12

5. Extração de valor dos seus documentos ............................................... 15

6. Síntese .................................................................................................... 17

7. Referências ............................................................................................ 18
Trilha de Aprendizagem 8 - Estudos de Caso de Análise de Dados II

1. Introdução

Pensando em todo o hype gerado pelas tecnologias de IA nos últimos anos, a guerra
visando a tomada de sua liderança entre os Estados Unidos e a China, e a forma como

de seu negócio. Essas ferramentas de IA são oferecidas por diversos fornecedores como
Microsoft, Google, Amazon, IBM… E são técnicas conhecidas como serviços cognitivos,
ou suas variabilidades semânticas, cobrindo cinco pilares:

• Visão computacional.

• Interpretação e/ou geração de fala.

• Interpretação de linguagem natural.

• Pesquisa e indexação de documentos.

• Extração de conhecimento coletivo.

Contudo, não precisa saber a fundo o que são e como funcionam estes processos. Você
consome essas ferramentas por meio de chamadas de APIs, uso de SDKs ou serviços
na nuvem que permitam baixar o resultado treinado e acoplá-lo em seu ambiente. Apesar
de não precisar, é sempre bom conhecer as técnicas e os processos que está utilizando.

mas precisa desenvolver produtos que utilizam essas técnicas, é recomendado contratar

lugar, porque você não precisa se preocupar em construir seu modelo do zero, você

segundo lugar, os dados e modelos dos serviços são atualizados com frequência pelos
fornecedores, fazendo com que você sempre tenha um resultado mais completo.

4
Trilha de Aprendizagem 8 - Estudos de Caso de Análise de Dados II

Visão computacional

As ferramentas de Visão Computacional simulam o comportamento da visão biológica,

em imagens, comparar rostos e ver se são as mesmas pessoas, analisar sentimentos em


rostos, como também estimar a idade e o gênero da pessoa.

Interpretação e/ou geração de fala

Alguns pesquisadores dizem que as interações dessa geração serão feitas por meio
de voz, e não exclusivamente com cliques do mouse ou toques na tela. E, para isso, é
importante que o sistema consiga interagir com o usuário dessa nova forma. Quando
você ativa algum assistente pessoal como a Alexa, Google Home, Siri ou Cortana e dá um
comando de voz. O assistente interpreta o que você pediu, sintetiza aquilo para texto e
dispara o comando internamente nos diversos sistemas que integram esse ambiente. O
comando é processado e algum retorno é feito. Esse retorno é então sintetizado de texto
para voz e é reproduzido pelo alto-falante do assistente.

Interpretação de linguagem natural

Quando um texto é enviado para uma análise, é importante conseguir entender o que ele

intenções de cada texto e extrair possíveis entidades. O resultado desta técnica permite

responder da mesma forma.

Pesquisa e indexação de documentos

retornados resultados envolvendo textos, imagens, localizações e vídeos. Qualquer coisa


que contenha aquele termo de busca e que está indexado nos servidores do Google são

Sim, as pesquisas e indexações de documentos permitem com que você faça isso sem
expor seus dados publicamente.

5
Trilha de Aprendizagem 8 - Estudos de Caso de Análise de Dados II

Extração de conhecimento coletivo

Quando desenvolvemos modelos de Machine Learning para resolver um problema em

de trabalhar. Contudo, alguns problemas são genéricos, como reconhecer um rosto, por
exemplo. Independentemente de ser um rosto das pessoas de nossa empresa, ou de

para nossa empresa para reconhecer um rosto. Podemos usar esses serviços de
forma coletiva.

6
Trilha de Aprendizagem 8 - Estudos de Caso de Análise de Dados II

2. Visão computacional

cinco passos para visão computacional, que é uma das áreas de maior percepção do
uso da IA. Não porque está em evidência, mas porque é próxima ao comportamento
humano, assim como a questão de interpretação de linguagem natural. Com isso, as

de problemas.

de faces, entre outros. A análise de vídeo também entra nesta categoria, pois os vídeos

curto de tempo.

Recomendo a leitura do livro A Revolução do Aprendizado Profundo, para ter uma ideia
mais ampla do uso das soluções de Deep Learning, além da visão computacional.

Cinco passos da visão computacional

Amostras de imagens

de dados de imagens que são possíveis de se utilizar para ensinar a máquina. Algumas

domínio de assunto, como o SDO – Solar Dynamics Observatory.

ensinar a máquina a encontrar os padrões do que realmente quer encontrar e divergir


do que é parecido, mas não é aquilo que precisa. Imagine que você está ensinando a

dizer uma quantidade mínima de amostras) de ovelhas, mas também apresentar diversas
imagens de nuvens no céu para que sirvam de contraexemplos.

7
Trilha de Aprendizagem 8 - Estudos de Caso de Análise de Dados II

Redimensionar os tamanhos

Para facilitar a aprendizagem de máquina, é interessante que todas as imagens trabalhadas


sigam um padrão de tamanho. Isso porque quanto maior for a imagem, mais detalhes e
informação ela pode conter. Pense em uma imagem como uma matriz de números, onde

pixels de largura por 500 pixels de altura, existe no total 250.000 pixels naquela matriz.

algumas contendo 2.000 x 2.000 pixels de tamanho. São 4 milhões de pontos, isso só em
uma imagem.

Redimensionar as imagens para manter um padrão de tamanho aceitável é importante.


Assim, pode-se diminuir o processamento, mas sem perder a qualidade da imagem.

necessário para trabalhar com uma imagem dessas, em todos seus pixels e cores RGB.

Uma técnica bastante utilizada é transformar tudo em tons de cinza. Com isso, em vez
de ter a profundidade de três camadas de cores do RGB, é só uma camada que varia
entre o preto e o branco, com um intervalo de 255 possibilidades sendo o valor 0, preto
absoluto, e o valor 255, branco absoluto. Todo o intervalo é um degradê saindo do preto
e chegando ao branco, passando por vários tons de cinza. Se seu problema não precisa

Outra técnica que pode estender esse processamento, é a binarização para valores de

Com isso, qualquer valor de cor do pixel é comparado com esse número de corte. Se o
valor do pixel for inferior ao corte, ele passará a ser preto, se o valor for superior ao de
corte, ele passará a ser branco. Isso transforma a imagem exclusivamente em preto e
branco.

8
Trilha de Aprendizagem 8 - Estudos de Caso de Análise de Dados II

Limpar os ruídos

Essas impurezas são chamadas de ruído e não trazem benefícios reais.

faz uma média aritmética dos valores dos pixels a sua volta, e substitui o valor daquele

pixels para acontecer a convolução da imagem. Esse processo faz uma segmentação

comparado com o valor da média aritmética de todos os outros oito pixels a sua volta,
incluindo os diagonais. Então, o valor do pixel é comparado com o resultado do cálculo

e com todas as imagens.

Treinar o modelo

Depois de padronizar e limpar todas as imagens, é necessário criar o modelo que fará

minha visão, a resposta é depende. Isso porque cada caso é um caso, e se você precisa

fazer do zero.

9
Trilha de Aprendizagem 8 - Estudos de Caso de Análise de Dados II

3. Interpretação e geração de fala

Há uma linha de pesquisadores na área de Interface Humano Computador – IHC investindo


seus esforços para entender as interações dessa geração, que são feitas muitas vezes
por meio de voz e não exclusivamente com cliques ou toques em tela, permitindo a

forma. Quando algum assistente pessoal como a Alexa, Google Home, Siri ou Cortana é
ativado e recebe um comando de voz, é necessário interpretar o que foi solicitado pelo

O assistente ouve o que o usuário pediu, então transforma o áudio em texto por meio
de um processo de transcrição, e então dispara o comando internamente nos diversos
sistemas que integram esse ambiente. O comando é analisado e processado, e o retorno
do sistema devolve a resposta. Esse retorno é então sintetizado de texto para voz, e é
reproduzido pelo alto-falante do assistente, concluindo assim o ciclo daquele diálogo.

Geração de fala em projetos

trivial. Pode-se estender novas habilidades para aumentar sua capacidade de interação,

frase ou perceber a entonação da voz são explorados por técnicas de Machine Learning.

O cenário trivial consiste necessariamente na permissão da transcrição pelo ambiente


em tempo real de áudio em texto. O sistema consome esse texto para poder tomar as
medidas necessárias internas, utilizando o texto como entrada do comando. Se trabalhar
no ambiente Microsoft poderá disparar o texto como comando de entrada para interagir

sistema de interação. Mais uma vez, no ambiente Microsoft, é permitido transformar o texto

como padrão e estão disponíveis em mais de 45 idiomas.

10
Trilha de Aprendizagem 8 - Estudos de Caso de Análise de Dados II

respectivos parâmetros. Mudaremos a cor dos pontos e também seu tamanho. Repare no

Exemplo real de solução

A Microsoft apresentou uma demonstração dessas funcionalidades, permitindo a

Assista ao vídeo Demo: The Magic of AI Neural TTS and Holograms at Microsoft Inspire
2019, disponível em: < >.

Fonte

11
Trilha de Aprendizagem 8 - Estudos de Caso de Análise de Dados II

4. Interpretação de linguagem natural

computacional disponível para isso, mas também porque é mais rápido de desenvolver,
utilizando os serviços cognitivos.

Esses serviços permitem ao usuário digitar uma ação de texto corrido, ou então dizer

possíveis graças às técnicas de processamento de linguagem natural. Essas técnicas

Como funciona a interpretação de linguagem natural

Existem diversas técnicas computacionais que permitem interpretar os textos de forma


natural. Você pode procurar por elementos e técnicas, como:

Stemming que destaca o radical da palavra e se refere a um processo heurístico bruto

das vezes.

Lemmatization que se refere a fazer as coisas corretamente com o uso de uma análise

e retornar a forma básica ou de dicionário de uma palavra.

Stop Words que são as palavras de ligação, artigos, preposições, e outras palavras que

benefício para a máquina na hora de interpretar o que está escrito ali.

Token

utilizados naquele domínio são denominados de Corpus.

12
Trilha de Aprendizagem 8 - Estudos de Caso de Análise de Dados II

O que fazer

Pense que, quando um texto é enviado para análise, é fundamental entender o que ele

formas diferentes. Mas, se isso acontece, como podemos interpretá-lo e entender o que

interpretação de linguagem natural são aplicadas.

texto e extrair possíveis entidades. O resultado esperado é que, ao usar essas técnicas,

forma, como acontece em uma conversa natural entre pessoas.

Se for utilizar os serviços cognitivos da Microsoft, você pode combinar as técnicas de


QnA e LUIS.

QnA

perguntado e o que é respondido. Diversas perguntas podem ser direcionadas a uma


resposta, isso aumenta a variação de formas que as perguntas são feitas, para que o
sistema possa responder de forma correta.

Os três itens de destaque do QnA são:

• Perguntas – é o que você espera que um usuário faça. As perguntas serão combinadas
com respostas.

• Respostas
resposta está emparelhada com uma pergunta na base de conhecimento.

• Metadados – são tags associadas ao par de perguntas e respostas. Internamente, elas

para corresponder a uma consulta do usuário.

13
Trilha de Aprendizagem 8 - Estudos de Caso de Análise de Dados II

LUIS

receber uma sentença, ou declaração, e é responsável por extrair a intensão e entidade


daquele texto. Os principais elementos do LUIS são:

• Declarações – as declarações são inseridas pelo usuário e enviadas ao aplicativo, que


é responsável por interpretá-las.

• Intenção

• Entidades – a entidade representa uma palavra ou frase dentro do texto, que você

Dicas de criação

elementos que permitam e facilitem as interações do usuário com seu sistema. Contudo,

• Intenções
como ‘Reservar um voo’ e ‘Reservar um hotel’. Você pode diferenciar qual aspecto da

• Construir iterativamente

aplicativo.

• Use a intenção Nenhuma (none)


aplicativo não sabe o que é aquela sentença enviada pelo usuário. Adicione ao menos
um exemplo de sentença à intenção Nenhuma, mas faça isso para cada dez sentenças
de exemplo de seu aplicativo.

14
Trilha de Aprendizagem 8 - Estudos de Caso de Análise de Dados II

5. Extração de valor de seus documentos


Que os dados são os bens mais valiosos que as empresas possuem, não temos dúvidas,
mas como podemos extrair valores de seus documentos antigos da mesma forma que

interpretação de linguagem natural, combinadas com o poder da computação em nuvem,


é possível trabalhar nessa frente dentro de sua empresa.

ou Bing, para sua empresa. Sim, é possível permitir a busca de um termo e analisar

escrita em formato digital ou manual, como também em representação de imagem, ela


será retornada para você. E não é necessário desenvolver do zero essa solução. Você
pode utilizar serviços prontos, como a busca inteligente e a mineração de conhecimento,
por exemplo, que são oferecidas como serviço cognitivo.

Extrair valores de seus documentos

A oferta de busca inteligente e mineração de conhecimento, contudo, encapsula diversas


técnicas separadas dos serviços cognitivos. Como o OCR, que recebe um documento
que foi digitalizado e o transforma em texto, a visão computacional é utilizada para criar
legendas automáticas em imagens. A busca fonética permite que se encontrem termos,
mesmo que digitados errados, mas que tenham uma similaridade em sua forma, entre
outras soluções nativas dos serviços cognitivos.

a Microsoft indexou os documentos públicos do caso. O vídeo abaixo explica um pouco


do uso dessas técnicas, apresentando uma visão macro, utilizadas na construção desse

Assista ao vídeo Using Cognitive Search to Understand the JFK Documents, disponível
em < >.

15
Trilha de Aprendizagem 8 - Estudos de Caso de Análise de Dados II

Fonte

>, para ver


os documentos do caso.

Fonte

16
Trilha de Aprendizagem 8 - Estudos de Caso de Análise de Dados II

6. Síntese

• Visão computacional.

• Interpretação e/ou geração de fala.

• Interpretação de linguagem natural.

• Pesquisa e indexação de documentos.

• Extração de conhecimento coletivo.

17
Trilha de Aprendizagem 8 - Estudos de Caso de Análise de Dados II

7. Referências

Amazon, [s.d.]. Disponível em: <


>. Acesso em: 14 set. 2021.

Microsoft, [s.d.]. Disponível em: <https://azure.microsoft.com/


pt-br/services/cognitive-services/>. Acesso em: 14 set. 2021.

LEE, K. F.

Projetos em R para leigos

A revolução do aprendizado profundo


2020.

VISION AI. Google, [s.d.]. Disponível em: < >.


Acesso em: 14 set. 2021.

IBM, [s.d.]. Disponível em: < >.


Acesso em: 14 set. 2021.

Os nove titãs da IA: como os gigantes da tecnologia e suas máquinas pensantes

18

Você também pode gostar