Você está na página 1de 76

1

Sumário
Apresentação .................................................................................................................................... 3
Everton Gomede ....................................................................................................................................... 3
Ricardo Satin ............................................................................................................................................. 3
UNIDADE 1 – Visão Geral ................................................................................................................... 4
Objetivos de aprendizagem ...................................................................................................................... 4
Ciência de Dados ....................................................................................................................................... 4
O Cientista de Dados ................................................................................................................................. 6
Requisitos de um Cientista de Dados ........................................................................................................ 7
Considerações Finais ............................................................................................................................... 15
UNIDADE 2 – Ferramentas de Data Science ...................................................................................... 16
Objetivos de aprendizagem .................................................................................................................... 16
Jupyter Notebook .................................................................................................................................... 16
RStudio IDE .............................................................................................................................................. 24
Considerações Finais ............................................................................................................................... 31
UNIDADE 3 – Business Intelligence ................................................................................................... 32
Objetivos de aprendizagem .................................................................................................................... 32
Microsoft Power BI ............................................................................................................................... 32
Tableau .................................................................................................................................................. 38
Considerações Finais ............................................................................................................................... 52
UNIDADE 4 – Ferramentas de Big Data ............................................................................................. 53
Objetivos de aprendizagem .................................................................................................................... 53
Apache Hadoop ....................................................................................................................................... 53
DataCleaner .......................................................................................................................................... 63
Considerações Finais ............................................................................................................................... 72
UNIDADE 5 – Gerenciamento ........................................................................................................... 73
Objetivos de aprendizagem .................................................................................................................... 73
Colocando tudo junto.............................................................................................................................. 73
Cenários comuns de gerenciamento....................................................................................................... 73
Cenários comuns de gerenciamento....................................................................................................... 74
Considerações Finais ............................................................................................................................... 74
Referências ..................................................................................................................................... 75
Recursos.......................................................................................................................................... 76

2
Apresentação
Everton Gomede
Doutorando em Engenharia Elétrica/Computação pelo Programa de Pós-graduação da
Faculdade de Engenharia Elétrica e de Computação (FEEC) da Universidade Estadual de
Campinas (UNICAMP). Mestre em Ciência da Computação pela Universidade Estadual de
Londrina. MBA (Master of Business Administration) em Neurogestão pela Fundação Getúlio
Vargas. MBA em Gerenciamento de Projetos pela FGV. Especialista em Engenharia de Software
e Banco de Dados pela Universidade Estadual de Londrina. Graduado em Processamento de
Dados. Sun Certified Programmer for Java 2 Platform 1.4 e ITIL® Foundation Certificate in IT
Service Management. Experiência de mais de 10 anos na área de TI em arquitetura de software,
engenharia de software, mapeamento de processos de negócio, gerenciamento de projetos,
desenvolvimento de sistemas transacionais e de suporte à decisão. Experiência em projetos
nacionais e internacionais em instituições financeiras e empresas de desenvolvimento de
software. Professor de cursos de pós-graduação em universidades públicas e privadas. Membro
do PMI 1580489. Publicações nacionais e internacionais. Proficiência em inglês atestada pelo
TOIEC e TOEFL. Áreas de Interesse: Estrutura de Dados e Organização de Arquivos, Análise de
Sistemas e Engenharia de Software, Lógica de Programação, Redes de Computadores,
Linguagem de Programação, Administração de Banco de Dados, Governança de TIC (ITIL/CobIT),
Data Warehouse, Data Mining, Big Data, Gerenciamento de Projetos, Gerenciamento de
Processos de Negócio (BPM/BPMN™), Pesquisa Operacional, Algoritmos, Sistemas de Suporte à
Decisão, Data Science e Machine Learning.

Ricardo Satin
Mestre em Engenharia de Software pela UTFPR; Especialista em Computação pela Unicesumar;
Graduado em Computação pela Universidade Estadual de Maringá -UEM; MBA em
Gerenciamento de Projetos pela FCV. Profissional certificado em: gerenciamento de projeto
pelo P.M.I. (profissional PMP); Gerenciamento ágil de projetos (SCRUM); Gerenciamento de
serviços de T.I. (ITIL). Professor de ensino superior para cursos da área de T.I. e pós-graduação
para diversas áreas. Atua como consultor em gerenciamento de projetos; processos de negócio;
melhoria de processos e machine learning.

3
UNIDADE 1 – Visão Geral

Objetivos de aprendizagem
  Entender o que é um cientista de dados
  Entender o que é ciência de dados
 Entender os requisitos para um cientista de dados

Ansioso por desbravar o universo da Ciência de Dados e não sabe por onde começar? Nós
ajudaremos você. Preparamos um guia que vai ajudá-lo a compreender o que faz um Cientista
de Dados e como iniciar sua preparação! Quando iniciamos neste mundo de ciência de dados,
as coisas ficam extremamente confusas. São milhares de termos e conceitos, todos aprendidos
ao mesmo tempo. Normalmente, os textos focam em linguagens a serem estudadas para essa
área, mas dessa vez optamos por trazer algo diferente. Nesse texto, vim trazer uma explicação
simples para algumas ferramentas de desenvolvimento na área de ciência de dados. Embora
algumas vezes a própria ferramenta esteja atrelada a uma linguagem específica, o objetivo é
deixar claro o que são essas ferramentas, seus principais potenciais. Esse não é um capítulo
sobre como abrir planilhas e processar dados, mas sobre como começar na área de ciência de
dados.

Ciência de Dados

A ciência de dados é um campo multidisciplinar que utiliza métodos, processos,


algoritmos e sistemas científicos para extrair conhecimento e insights de dados estruturados e
não estruturados. A ciência de dados está relacionada à mineração de dados e ao big data. A
ciência de dados é um "conceito para unificar estatísticas, análise de dados, aprendizado de
máquina e seus métodos relacionados", a fim de "entender e analisar fenômenos reais" com os
dados. Empregam técnicas e teorias extraídas de muitos campos no contexto da matemática,
estatística, ciência da computação e ciência da informação. O vencedor do prêmio Turing, Jim
Gray, imaginou a ciência de dados como um "quarto paradigma" da ciência (empírica, teórica,
computacional e agora orientada por dados) e afirmou que "tudo sobre a ciência está mudando
por causa do impacto da tecnologia da informação" e do dilúvio de dados. Em 2015, a American
Statistical Association identificou o gerenciamento de banco de dados, estatísticas e
aprendizado de máquina e sistemas distribuídos e paralelos como as três comunidades
profissionais fundacionais emergentes (FAWCETT e PROVOST, 2018).
Na seção de perguntas e respostas, de seu discurso nas reuniões estatísticas conjuntas,
da Associação Estatística Americana, observou o estatístico Nate Silver, dizendo: "Acho que
cientista de dados é um termo exagerado para um estatístico; cientista de dados é um pouco
redundante de alguma forma e as pessoas não devem censurar o termo estatístico". Por outro
lado, as respostas às críticas são tão numerosas. Em um artigo do Wall Street Journal de 2014,

4
Irving Wladawsky-Berger compara o entusiasmo da ciência de dados com o surgimento da
ciência da computação. Ele argumenta que a ciência de dados, como qualquer outro campo
interdisciplinar, emprega metodologias e práticas de toda a academia e indústria, mas depois as
transforma em uma nova disciplina. Ele chama a atenção as fortes críticas da ciência da
computação, agora uma disciplina acadêmica bem respeitada, que tiveram que enfrentar uma
vez. Da mesma forma, Vasant Dhar, da NYU Stern, assim como muitos outros defensores
acadêmicos da ciência de dados, argumenta mais especificamente em dezembro de 2013 que a
ciência de dados é diferente da prática existente de análise de dados em todas as disciplinas,
que se concentra apenas na explicação dos conjuntos de dados. A ciência de dados busca um
padrão acionável e consistente para usos preditivos. Esse objetivo prático de engenharia leva a
ciência de dados além da análise tradicional. Agora, os dados nessas disciplinas e campos
aplicados que careciam de teorias sólidas, como ciências da saúde e ciências sociais, podiam ser
buscadas e utilizadas para gerar modelos preditivos poderosos.

Em um esforço semelhante ao de Dhar, o professor de Stanford, David Donoho, em


setembro de 2015, leva a proposta adiante ao rejeitar três definições simplistas e enganosas da
ciência de dados em vez de críticas. Primeiro, para Donoho, a ciência de dados não equivale a
big data, pois o tamanho do conjunto de dados não é um critério para distinguir ciência e
estatística de dados. Segundo, a ciência de dados não é definida pelas habilidades de
computação da classificação de grandes conjuntos de dados, pois essas habilidades já são
geralmente usadas para análises em todas as disciplinas. Terceiro, a ciência de dados é um
campo fortemente aplicado, onde os programas acadêmicos atualmente não preparam
suficientemente os cientistas de dados para os empregos, pois muitos programas de pós-
graduação anunciam enganosamente seu treinamento em análise e estatística como a essência
de um programa de ciência de dados. Como estatístico, Donoho, seguindo muitos em seu
campo, defende a ampliação do escopo de aprendizado na forma de ciência de dados, como
John Chambers, que pede aos estatísticos que adotem um conceito inclusivo de aprendizado
com dados ou como William Cleveland, que recomenda priorizar a extração de dados,
ferramentas preditivas aplicáveis, em vez de teorias explicativas. Juntos, esses estatísticos
imaginam um campo aplicado cada vez mais inclusivo que cresce a partir das estatísticas
tradicionais e além (FAWCETT e PROVOST, 2018).

Para o futuro da ciência de dados, a Donoho projeta um ambiente cada vez maior para a
ciência aberta, onde os conjuntos de dados usados para publicações acadêmicas são acessíveis
a todos os pesquisadores. O Instituto Nacional de Saúde dos EUA já anunciou planos para
aumentar a reprodutibilidade e a transparência dos dados de pesquisa. Outros grandes
periódicos também estão seguindo o exemplo. Dessa forma, o futuro da ciência de dados não
apenas excede os limites das teorias estatísticas em escala e metodologia, mas também
revolucionará os atuais paradigmas acadêmicos e de pesquisa. Como Donoho conclui, "o
escopo e o impacto da ciência de dados continuarão a se expandir enormemente nas próximas
décadas, à medida que dados e dados científicos sobre a própria ciência se tornarem
onipresente".

5
O Cientista de Dados

Vamos começar definindo o que é um Cientista de Dados: cientistas de dados é uma


nova geração de especialistas analíticos que têm as habilidades técnicas para resolver
problemas complexos – e a curiosidade de explorar quais são os problemas que precisam ser
resolvidos. Eles também são um sinal dos tempos modernos. Cientistas de dados não estavam
no radar há uma década, mas sua popularidade repentina reflete como as empresas agora
pensam sobre Big Data. Essa incrível massa de informações não estruturadas já não pode mais
ser ignorada e esquecida. É uma mina de ouro virtual que ajuda a aumentar receitas – contanto
que haja alguém que escave e desenterre insights empresariais que ninguém havia pensado em
procurar. Entra em cena o Cientista de Dados (FAWCETT e PROVOST, 2018).

#REFLITA#
Quais os motivos que o levam a ser um cientista de dados?
#REFLITA#

Para a comunidade em geral, um Cientista de Dados é um desses “Magos de Dados”,


que pode adquirir massas de dados de diversas fontes e então limpar, tratar, organizar e
preparar os dados; e, em seguida, explorar as suas habilidades em Matemática, Estatística e
Machine Learning para descobrir insights ocultos de negócios e gerar inteligência. Os dados
utilizados por um Cientista de Dados podem ser tanto estruturados (bancos de dados
transacionais de sistemas ERP ou CRM, por exemplo) e não estruturados (e-mails, imagens,
vídeos ou dados de redes sociais). O Cientista de Dados cria algoritmos para extrair insights
desses dados. Em seguida, cabe ao Cientista de Dados, apresentar estes dados, de forma que os
tomadores de decisão possam utilizar o resultado da análise ao definir as estratégias
empresariais ou mesmo para criar produtos, ou serviços baseados em dados.

De acordo com Anjul Bhambhri, ex Vice Presidente de Big Data da IBM e atual Vice
Presidente da Adobe, o Cientista de Dados é o profissional capaz de trazer a mudança para uma
organização através da análise de diversas fontes de dados. Anjul Bhambhri escreve:

“Um Cientista de Dados representa uma evolução do papel de Analista de Negócios ou


Analista de Dados. Estes profissionais possuem uma base sólida normalmente em ciência
da computação, aplicações, modelagem, estatísticas, análises e matemática. O que
define o Cientista de Dados é a forte visão de negócios, com a capacidade de comunicar
os resultados, tanto para os líderes de negócios quanto para seus pares, de uma forma
que influencie como uma organização posiciona-se diante dos desafios do mercado”.

Não existe uma formação que prepare Cientistas de Dados, pois esta é uma profissão
relativamente nova. Tem havido muito debate sobre isso no ambiente acadêmico
(principalmente nos EUA), pois o mercado precisa de profissionais agora e o tempo de

6
preparação de um profissional com estas habilidades, pode levar algum tempo. Por isso
formações técnicas em determinadas áreas, podem ajudar a preparar estes profissionais.

Requisitos de um Cientista de Dados

Com tantas informações sobre a profissão de Cientista de Dados e seu crescimento


exponencial nos últimos anos, é fácil se perder diante de tantos artigos e materiais com
fórmulas mágicas sobre qual caminho seguir. Aqui fica um alerta: não existe caminho fácil para
se tornar um Cientista de Dados. É preciso estudar, aprender diferentes técnicas e ter
conhecimento interdisciplinar. Por esse motivo, os Cientistas de Dados são bem remunerados e
difíceis de encontrar no mercado. A seguir, oito passos que consideramos fundamentais para a
preparação de um Cientista de Dados:

Passo 1: Faça uma auto avaliação

Este é o primeiro passo e, acredite fundamental. Você, como profissional, precisa avaliar
o momento atual da sua carreira e como pretende estar em cinco ou dez anos. Se pretender
seguir uma carreira em Analytics, seja como Cientista de Dados, Engenheiro de Dados ou
Analista, precisa compreender quais são suas habilidades atuais, onde pretende chegar, avaliar
os gaps e traçar um plano de ação. Como não existe uma formação acadêmica específica para
se tornar um Cientista de Dados, este profissional pode vir de áreas como Estatística ou Ciência
da Computação, sendo comum encontrar profissionais de outras áreas atuando como Cientistas
de Dados (Marketing, Economia, Ciências Sociais, etc..). Mas independente da área de
formação, algumas características serão comuns a todos os profissionais que trabalham com
Ciência de Dados (FAWCETT e PROVOST, 2018):

 Programação – Conhecimento de programação é necessário. Linguagens de


programação como R, Python, Julia, Scala, Java são parte do arsenal de ferramentas
utilizadas em Data Science. Mesmo outros pacotes de análise de dados, como SAS,
Matlab, Octave, SPSS e até o IBM Watson Analytics, requerem conhecimento em
programação, para se extrair o melhor de cada ferramenta. É a habilidade de
programação, que permite aos Cientistas de Dados colocarem em prática sua
criatividade e extrair dos dados respostas para perguntas que ainda não foram feitas. Se
você já tiver conhecimento em programação, isso será uma vantagem. Caso não tenha
experiência em programação, mas tenha uma boa noção dos conceitos envolvidos em
programação de computadores, isso vai ajudar muito. Avalie de forma clara seu nível de
conhecimento em programação.

 Pensamento Lógico – Cientistas de Dados usam o pensamento lógico para fazer
análises. Programação requer lógica. Se você já possui esta habilidade, isso vai acelerar
seu aprendizado em Data Science.

7
 Habilidade com Números – Matemática é a base da Ciência de Dados. Programação de
computadores envolve habilidade com números. Os algoritmos de Machine Learning,
são baseados em conceitos matemáticos. A Estatística, parte fundamental da Ciência de
Dados, requer habilidade com números. Avalie suas características e na sua auto
avaliação, verifique se esse item será um problema ou não.

 Conhecimento em Banco de Dados – Em diversas fases do processo de análise de
dados, interações com bancos de dados serão necessárias. Bancos de dados relacionais,
Data Warehouses, bancos de dados NoSQL, Hadoop, linguagem SQL. Estas tecnologias
estão diretamente ligadas ao trabalho do Cientista de Dados e pelo menos sua
compreensão será um ponto que poderá fazer diferença. Avalie se você compreende o
conceito de banco de dados, entende as diferenças entre bancos de dados relacionais e
NoSQL e como utilizar linguagem SQL para consultas.

A esta altura, talvez você já esteja se perguntando: como você pretende que eu aprenda
tudo isso? Aqui entra um dos conceitos mal interpretados sobre a profissão de Cientista de
Dados. Acredita-se que este profissional precisa conhecer todas as ferramentas. Isso não é
verdade e nem mesmo necessário. Escolha suas ferramentas e se especialize nelas. Por
exemplo: conhecimento em linguagem R e Hadoop permitirá fazer análises de grandes volumes
de dados (Big Data). Você não precisa conhecer todas as linguagens de programação, bem
como não tem que conhecer todos os bancos de dados. O mais importante é o pensamento
lógico, esse sim indispensável (e esta habilidade talvez você já tenha). A tecnologia oferece
ferramentas e nenhuma delas resolve sozinha 100% dos problemas, pois todas possuem suas
limitações.

Passo 2: Prepare seu computador

Surpreso com este passo? Esta é a etapa onde você prepara seu ambiente de testes e
não deve ser subestimada. Pode ser frustrante durante seu processo e aprendizagem, não ter o
equipamento ideal para instalar softwares ou executar operações que requerem poder
computacional. A Ciência de Dados é computacionalmente intensa (isso não deve ser uma
novidade para você). Portanto, você precisa de um computador que permita processar seus
scripts e aprender sobre análise de dados. Além disso, você vai precisar instalar ferramentas,
interpretadores, pacotes Office, etc. Para trabalhar com Ciência de Dados, um computador com
8GB de memória RAM, com um processador intel i5/i7/i9 ou equivalente é a nossa
recomendação. Naturalmente, quanto maior a capacidade do seu computador, melhor! É
possível também utilizar serviços como o Cloud9 ou Amazon AWS e montar um ambiente
virtual de trabalho.

 Sistema Operacional – A decisão por qual sistema operacional utilizar é bastante pessoal e
qualquer um dos 3 principais sistemas operacionais (Windows, MacOS e Linux) vai atender às
suas necessidades. De qualquer forma, você poderá instalar máquinas virtuais com outro
sistema operacional. Boa parte do framework de Data Science e Big Data, foi construída sobre

8
plataforma Unix. Para um servidor Hadoop ou Spark, um servidor Linux é a melhor
recomendação. Já para a parte de apresentação de dados, Microsoft Office e outras ferramentas
de visualização podem depender de um sistema Windows. Não há uma regra aqui, mas para
usuários mais avançados, um sistema Unix é recomendado. Para aqueles que se sentem mais
confortáveis com o Windows, não há problema algum. Utilize o Windows como seu sistema
operacional base e, se necessário, crie uma máquina virtual com Linux, se quiser processar
arquivos com Hadoop e/ou Spark ou realizar outros testes. Os principais fornecedores do
Hadoop (Cloudera, Hortownworks e MapR) fornecem gratuitamente máquinas virtuais com
Linux e Hadoop, prontas para uso em poucos cliques. Já o Microsoft Azure Machine Learning
pode ser utilizado online, por exemplo. É possível também fazer o download o SAS University
Edition, uma máquina virtual com Linux e SAS, que em poucos segundos permitem você utilizar
o SAS (uma das principais soluções de Analytics atualmente) para seu aprendizado e totalmente
gratuito.
 Softwares – Independente da linguagem de programação que você escolher, você vai precisar
instalar o interpretador e uma IDE (ambiente integrado de desenvolvimento). Se a sua escolha
for pela linguagem R, por exemplo, além de instalar o interpretador, você poderá instalar o
RStudio (IDE para linguagem R). O mesmo vale para outras linguagens de programação. É
possível criar seus scripts de Data Science 100% online, via browser, usando o Jupyter Notebook.
Mas nem sempre você pode estar online e ter suas ferramentas instaladas localmente vai trazer
uma série de vantagens.

 Além disso, considere instalar:
  Editores de texto: Sublime, Atom, Notepad++
  Software para Máquinas Virtuais: VirtualBox, Parallels
  Git e Github: para criar seu portfólio de projetos em Data Science
 Suite Office: Microsoft Office, Libre Office

Com exceção do Microsoft Office, as demais ferramentas são gratuitas.

Passo 3: Estatística e Matemática

Conhecimentos de Estatística e Matemática fazem parte do pacote essencial para quem


pretende trabalhar como Cientista de Dados. Modelos estatísticos e algoritmos de Machine
Learning, dependem de conhecimentos em regressão linear, regressão múltipla, clustering,
Álgebra Linear, etc. Você precisa ser especialista em Estatística ou Matemática ou mesmo ter
feito uma graduação nestas áreas? A resposta é não. Apesar de essas áreas permitirem uma
compreensão mais abrangente, é possível aprender estes conceitos e aplicá-los, ao longo da
sua jornada de aprendizagem em Data Science. Você não precisa aprender todos os tópicos
relacionados à Estatística ou Matemática (FAWCETT e PROVOST, 2018).

9
Existem muitas formas de aprender os conceitos de Estatística e Matemática aplicada e
isso leva tempo. Para qualquer aspirante a Cientista de Dados a recomendação é aprender
Estatísticas codificando, de preferência em Python ou R, de forma que você possa aplicar
imediatamente um conceito aprendido. Nada substitui uma graduação em Estatística ou
Matemática, mas você pode aprender os conceitos que serão usados no seu dia a dia em Data
Science, aplicando estes conceitos através de uma linguagem de programação. Data Science é
uma área multidisciplinar.

Passo 4: Big Data

Big Data é a matéria-prima da Ciência de Dados. A profissão de Cientista de Dados


surgiu da necessidade de criar novos métodos de análise do imenso volume de dados que vem
crescendo exponencialmente. Técnicas analíticas já existem há muitas décadas, mas nunca na
história da humanidade, geraram-se tantos dados como atualmente. Novas formas de coleta,
armazenamento e análise de dados são necessárias e o Big Data está revolucionando o mundo
atual, pois com tantos dados a nossa disposição, podemos tomar decisões em tempo real e isso
gera impacto direto na vida de todos nós. Caso não saiba o que é Big Data, confira nosso curso
gratuito: Big Data Fundamentos 2.0.

O Cientista de Dados vai consumir Big Data, ou seja, vai utilizar o Big Data como matéria-
prima, aplicar diversas técnicas e colher insights. Mas a responsabilidade por coletar e
armazenar os dados normalmente é do Engenheiro de Dados. Criação de clusters Hadoop,
streaming de dados com Spark, integração entre diferentes fontes de dados são todas
atribuições novas e normalmente exercidas por Engenheiros de Dados. Mas é importante que o
Cientista de Dados conheça bem como funciona a infraestrutura que armazena os dados que
serão analisados, pois, isso pode fazer a diferença na hora de analisar 1 trilhão de registros, por
exemplo (FAWCETT e PROVOST, 2018).

 Hadoop – O Hadoop está se tornando o coração da infraestrutura de Big Data, o que vai
revolucionar o sistema tradicional de armazenamento em bancos de dados como
conhecemos hoje. Além de gratuito, o Hadoop foi criado para ser usado em hardware
de baixo custo, uma combinação essencial para empresas que buscam reduzir seus
custos de infraestrutura de TI e ainda capitalizar os benefícios do Big Data.

 Spark – Spark é um projeto open source, mantido por uma comunidade de
desenvolvedores que foi criado em 2009 na Universidade da Califórnia, Berkeley. O
Spark foi concebido com o principal objetivo de ser veloz, tanto no processamento de
queries quanto de algoritmos, além de processamento em memória e eficiente
recuperação de falha. É atualmente um dos assuntos mais quentes em Data Science e
vem ganhando muita popularidade.

 Bancos de Dados NoSQL – Bancos de Dados tradicionais RDBMS (Relational Database
Management Systems) são foram projetados para tratar grandes quantidades de dados

10
(Big Data). Bancos de Dados tradicionais foram projetados somente para tratar
conjuntos de dados que possam ser armazenados em linhas e colunas e portanto,
possam ser consultados atravésdo uso de queries utilizando linguagem SQL (Structured
Query Language). Bancos de Dados relacionais não são capazes de tratar dados não
estruturados ou semiestruturados. Ou seja, Bancos de Dados relacionais simplesmente
não possuem funcionalidades necessárias para atender os requisitos do Big Data, dados
gerados em grande volume, alta velocidade e alta variedade. Esta é a lacuna preenchida
por Bancos de Dados NoSQL, como o MongoDB por exemplo. Bancos de Dados NoSQL,
são bancos de dados distribuídos e não relacionais, que foram projetados para atender
os requerimentos deste novo mundo de dados em que vivemos.
 Bancos de Dados Relacionais e Data Warehouses – Nas últimas décadas, todos os
dados corporativos têm sido armazenados em bancos de dados relacionais e soluções
de Business Intelligence usaram Data Warehouses para criar soluções analíticas. Estes
dados estruturados serão fonte de dados para Data Science e daí a importância do
conhecimento em linguagem SQL, a linguagem padrão para consultar estes tipos de
dados.

Como Cientista de Dados, você precisa ser especialista em todas as tecnologias? Não.
Mas parte do trabalho do Cientista de Dados será coletar dados do HDFS (Hadoop File system),
criar RDD’s no Spark, aplicar algoritmos de Machine Learning em streaming de dados, cruzar
dados não estruturados coletados de redes sociais, com bancos de dados de CRM, etc.
Portanto, o Cientista de Dados precisa estar confortável com a forma como os dados estão
armazenados e extrair da tecnologia o melhor que ela pode oferecer.

Passo 5: Linguagem de Programação e Machine Learning

Existem diversas ferramentas de análise e o número de soluções não para de crescer.


Mas a recomendação para quem está iniciando, é obter o conhecimento básico, antes de tentar
usar ferramentas de análise ou pacotes comerciais, de forma a conseguir extrair o melhor
destas ferramentas. Algumas linguagens de programação se tornaram ícones em Ciência de
Dados, como Python e R, por diversas razões: são gratuitas, contam com uma comunidade ativa
e crescente, já atravessaram o período de maturação, são amplamente utilizadas, tanto no
meio acadêmico quanto no meio empresarial e se especializaram em Data Science.

 Python – É uma linguagem de uso geral, que tem recebido nos últimos anos mais e mais
módulos e pacotes para Data Science como Pandas, Matplotlib, Scikit-Learn, Stats
Models e TensorFlow. Python é mais fácil de aprender em comparação a outras
linguagens, tem uma comunidade ativa, muita documentação disponível (inclusive em
português) e pode ser usada para outras atividades além de Data Science.

11
 Linguagem R – Linguagem estatística, que existe há mais de 30 anos. Sua capacidade de
processar estatísticas de grandes volumes de dados e criar gráficos sofisticados fez com
que gigantes do mercado de tecnologia, como Oracle e Microsoft, adotassem R como
linguagem padrão para análises estatísticas. Um dos problemas mais comuns que as
pessoas enfrentam em aprender R é a falta de um guia. As pessoas não sabem, por onde
começar, como proceder e nem que caminho seguir. Há uma sobrecarga de bons
recursos gratuitos disponíveis na Internet e isso torna o caminho de aprendizado muito
mais tortuoso.

Outras linguagens como Julia, Scala e Java também são muito utilizadas em Data
Science, mas se estiver começando, opte pelas linguagens R ou Python. Estas linguagens vão
permitir uma base sólida, fazendo com o que o profissional avance para soluções comerciais
como SAS, Microsoft Azure Machine Learning, Oracle Advanced Analytics, Microstrategy, SAP
Predictive Analytics, Tibco Analytics, entre outros. Se você já possui conhecimento em Matlab,
Octave, Stata ou Minitab, saiba que seu conhecimento já pode ser utilizado em Data Science.
Uma dica importante: não tente aprender tudo! Selecione 2 ou 3 ferramentas e se dedique ao
aprendizado delas de forma detalhada. Neste estudo, vamos ver algumas destas ferramentas
com detalhe.

E claro, não dá para falar em Data Science, sem falar em Machine Learning. Machine
Learning (ou Aprendizado de Máquina) é uma das tecnologias atuais mais fascinantes. Você
provavelmente utiliza algoritmos de aprendizado várias vezes por dia sem saber. Sempre que
você usa um site de busca como “Google” ou “Bing“, uma das razões para funcionarem tão bem
é um algoritmo de aprendizado. Um algoritmo implementado pelo “Google” aprendeu a
classificar páginas web. Toda vez que você usa o aplicativo para “marcar” pessoas nas fotos do
“Facebook” e ele reconhece as fotos de seus amigos, isto também é Machine Learning. Toda
vez que o filtro de spam do seu e-mail filtra toneladas de mensagens indesejadas, isto também
é um algoritmo de aprendizado.

Algumas razões para o crescimento Machine Learning são o crescimento da web e da


automação. Isso significa que temos conjuntos de dados maiores do que nunca. Por exemplo,
muitas empresas estão coletando dados de cliques na web, também chamados dados de
“clickstream”, e estão criando algoritmos para minerar esses dados e gerar sistemas de
recomendação, que “aprendem” sobre os usuários e oferecem produtos que muito
provavelmente eles estão buscando. O Netflix é um dos exemplos mais bem sucedidos de
aplicação de Machine Learning. Cada vez que você assiste a um filme ou faz uma avaliação, o
sistema “aprende” seu gosto e passa a oferecer filmes de forma personalizada para cada
usuário (FAWCETT e PROVOST, 2018).

Existem diversos algoritmos de aprendizagem de máquina, dependendo se a


aprendizagem é supervisionada ou não supervisionada, tais como: Linear Regression, Ordinary
Least Squares Regression (OLSR), Logistic Regression, Classification and Regression Tree (CART),
Naive Bayes, Gaussian Naive Bayes, k-Nearest Neighbour (kNN), k-Means, Bootstrapped

12
Aggregation (Bagging), Natural Language Processing (NLP), Principal Component Analysis (PCA),
Principal Component Regression (PCR), BackPropagation e muito mais. Cada algoritmo será
ideal para determinado tipo de dado e de acordo com a análise pretendida. Não há necessidade
de aprender todos os algoritmos. Mas é importante compreender os conceitos e como
programar-los.

Passo 6: Conhecimento de Negócio

Qual o objetivo da sua análise? Para que você vai coletar montanhas de dados e aplicar
modelos de análise? Que problema você pretende resolver, analisando dados? O principal
objetivo da Ciência de Dados é resolver problemas. As empresas não vão iniciar um projeto de
Data Science, se isso não for relevante para o negócio. Portanto, o Cientista de Dados deve
estar familiarizado com a área de negócio para a qual ele está iniciando um projeto, utilizando
Data Science.

Normalmente o mercado interpreta de forma equivocada este requerimento para a


profissão de Cientista de Dados, fazendo crer que o profissional precisa ser expert em
determinado segmento de negócio. Mas aqui vale fazer algumas considerações importantes.
Primeiro, os profissionais de Business Intelligence sempre tiveram este requerimento, conhecer
bem uma área de negócio, a fim de coletar os KPI’s (indicadores) e com isso prover soluções de
BI que atendessem as necessidades do cliente. Isso não mudou o que mudou foi à forma como
a análise é feita, uma vez que o Big Data entrou na equação. Em segundo, dada à amplitude de
projetos de Data Science e Big Data, dificilmente haverá um único profissional atuando e sim
uma equipe de Data Science, normalmente liderada pelo Cientista de Dados. E no Data Science
Team, diferentes perfis irão atuar, como por exemplo, especialistas em segmentos de negócio.

A dica aqui é simples. Procure compreender a área de negócio na qual você pretende
atuar como Cientista de Dados. Se vai trabalhar em uma mineradora, por exemplo, quais são os
principais indicadores? De onde vêm os dados? Que problemas a empresa precisa resolver?
Que tipos de dados devem ser analisados e correlacionados? Como técnicas de Machine
Learning podem ser empregadas para melhorar o faturamento da empresa? Como a análise de
dados permite oferecer um serviço melhor aos clientes? Cada área de negócio tem as suas
particularidades e uma compreensão ampla disso, vai permitir um trabalho que realmente gere
valor.

Passo 7: Técnicas de Apresentação e Visualização de Dados

Com a massiva quantidade de dados aumentando a cada dia, um grande desafio vem
surgindo para aqueles responsáveis por analisar, sumarizar e apresentar os dados: fazer com
que a informação gerada, possa ser facilmente compreendida. E uma das tarefas mais
importantes do trabalho do Cientista de Dados, é ser capaz de transmitir tudo aquilo que os
dados querem dizer. E às vezes os dados querem dizer coisas diferentes, para públicos

13
diferentes. Pode parecer fácil em princípio. Hoje temos à nossa disposição os mais variados
recursos para apresentação e exatamente aí que está o desafio. Nunca foi tão fácil gerar
tabelas e gráficos, com diferentes estruturas, formatos, tamanhos, cores e fontes. Os gráficos
estão deixando de ser gráficos e se tornando infográficos. Ter um volume cada vez maior de
dados à nossa disposição, não torna mais fácil a apresentação da informação gerada. Pelo
contrário, torna a tarefa mais complicada. Quase uma arte (FAWCETT e PROVOST, 2018).

Uma das tarefas do Cientista de Dados é apresentar seus resultados. Ninguém melhor
que o profissional que faz a análise, desde a coleta, limpeza e armazenamento dos dados, até a
aplicação de modelos estatísticos, para explicar seus resultados. Uma visualização efetiva de
dados pode ser a diferença entre sucesso e falha nas decisões de negócio. Provavelmente, em
breve, a capacidade de comunicar e contar as histórias dos dados será uma das características
mais valorizadas e buscadas pelas empresas. Técnicas de apresentação são um dos skills que
fará a diferença na hora de contratar um Cientista de Dados, à medida que o conhecimento
técnico estiver difundido.

O Cientista de Dados deve ser um contador de histórias e deve ser capaz de contar a
mesma história de maneiras diferentes. O profissional que for capaz de unir as habilidades
técnicas necessárias para análise de dados, com a capacidade de contar histórias, será um
profissional único. Este é o verdadeiro conceito de unicórnio, atribuído aos Cientistas de Dados.
Diversas ferramentas possuem funcionalidades avançadas para visualização de dados: Tableau,
QlikView, Microsoft Excel, Microsoft Power BI, Microstrategy, Weka, NetworkX, Gephi,
bibliotecas Java Script (D3.js, Chart.js, Dygraphs), além de visualizações alto nível que podem
ser feitas em Python ou R.

É importante não apenas estar familiarizado com uma ou mais ferramentas para
visualizar dados, mas também os princípios por trás da codificação visual de dados e
comunicação de informações.

Passo 8: Pratique

Não há outra forma de aprender qualquer que seja o assunto. É preciso praticar, testar,
experimentar, cometer erros, aprender com eles, testar novamente, interagir com a
comunidade. Erros que devem ser evitados ao longo da caminhada:

 Achar que o aprendizado é fácil e rápido – Em nenhuma profissão, o aprendizado é


rápido e fácil. Adquirir conhecimento e experiência requer tempo, esforço, investimento
e bastante dedicação. Não caia nesta armadilha de achar que é rápido e fácil. Comece
sua preparação hoje mesmo, mas esteja ciente que adquirir conhecimento leva tempo.

 Aprender muitos conceitos ao mesmo tempo – Este é o erro mais comum. Por se tratar
de uma área interdisciplinar, há normalmente a tendência em querer aprender muita
coisa ao mesmo tempo. Não foque em quantidade e sim qualidade. Aprenda um
conceito, consolide, pratique e só então avance para outra área de estudo. O começo

14
será mais difícil, mas à medida que aprende e adquire experiência, o aprendizado de
novas ferramentas fica mais fácil.

 Começar por problemas muito complexos – A solução de problemas mais complexos em
Data Science requer tempo e experiência. Não tente fazer isso no começo da sua
jornada.

 Focar apenas na programação – Data Science não é apenas programação. Outros
conceitos são tão importantes quanto. Estatística é importante. Visualização de dados e
apresentação é importante. Tenha seu foco em outras áreas e não apenas programação.

Considerações Finais

A profissão de cientista de dados é relativamente nova, cheia de desafios e


oportunidades, com profissionais muito demandados e bem remunerados. Para aproveitar esse
cenário existe uma quantidade de requisitos que um cientista de dados deve atender para
ingressar nesse fantástico mundo. Para isso, estudamos alguns aspectos gerais sobre o que é
ciência de dados, o que é um cientista de dados e quais os passos necessários para iniciar sua
jornada. Além disso, falamos sobre diversos conceitos, ferramentas e técnicas que podem ser
utilizadas para facilitar o seu trabalho. Esperamos que esse capítulo introdutório tenha sido útil
e que possa lhe dar uma visão geral do que vem a ser Data Science.

15
UNIDADE 2 – Ferramentas de Data Science

Objetivos de aprendizagem
  Entender o Jupyter Notebook
  Aprender sobre o RStudio
 Entender como ambas as ferramentas podem ser utilizadas para Ciência de Dados

Jupyter Notebook

No contexto do Jupyter, "notebook" ou "documentos notebook" denotam documentos


que contêm elementos de código e richtext, como figuras, links, equações, etc. Devido à
combinação de elementos de código e texto, esses documentos são o local ideal para reunir
uma descrição da análise, e seus resultados, bem como, eles podem ser executados, realizam a
análise dos dados em tempo real. O aplicativo Jupyter Notebook produz esses documentos. Por
enquanto, você deve saber que "Jupyter" é um acrônimo flexível que significa Julia, Python e R.
Essas linguagens de programação foram os primeiros idiomas de destino do aplicativo Jupyter,
mas atualmente a tecnologia de notebook também suporta muitos outros idiomas. E aí está: o
Notebook Jupyter.

Como um aplicativo cliente-servidor, o aplicativo Jupyter Notebook permite editar e


executar seus notebooks através de um navegador da web. O aplicativo pode ser executado em
um PC sem acesso à Internet ou pode ser instalado em um servidor remoto, onde você pode
acessá-lo através da Internet. Seus dois componentes principais são os kernels e um painel. Um
kernel é um programa que executa e interpreta o código do usuário. O aplicativo Jupyter
Notebook possui um kernel para código Python, mas também existem kernels disponíveis para
outras linguagens de programação. O painel do aplicativo não apenas mostra os documentos
do notebook que você criou e pode reabrir, mas também pode ser usado para gerenciar os
kernels: você pode saber quais estão em execução e desligá-los, se necessário.

Para entender completamente o que é o Notebook Jupyter e que funcionalidade ele


oferece, você precisa saber como ele se originou. Em 2005, Robert Kern e Fernando Pérez
tentaram construir um sistema de notebook. Infelizmente, o protótipo nunca se tornou
totalmente utilizável. Avanço rápido de dois anos: a equipe do IPython continuava trabalhando
e, em 2007, formularam outra tentativa de implementar um sistema do tipo notebook. Em
outubro de 2010, havia um protótipo de um notebook da web e, no verão de 2011, esse
protótipo foi incorporado e foi lançado com 0,12 em 21 de dezembro de 2011. Nos anos
subsequentes, a equipe recebeu prêmios, como o Avanço de Software Livre para Fernando
Pérez em 23 de março de 2013 e o Jolt Productivity Award, e financiamento das Fundações
Alfred P. Sloan, entre outros. Por fim, em 2014, o Project Jupyter começou como um projeto

16
derivado do IPython. IPython agora é o nome do back-end do Python, também conhecido como
kernel. Recentemente, a próxima geração de Notebooks Jupyter foi introduzida na
comunidade. Chama-se JupyterLab. Depois de tudo isso, você pode se perguntar de onde essa
ideia de notebooks se originou ou como surgiu para os criadores.

Uma breve pesquisa sobre a história desses notebooks descobre que Fernando Pérez e
Robert Kern estavam trabalhando em um notebook exatamente ao mesmo tempo em que o
notebook Sage era um trabalho em andamento. Como o layout do notebook Sage foi baseado
no layout dos notebooks do Google, você também pode concluir que o Google também
costumava ter um recurso de notebook nesse período. No que diz respeito à ideia do notebook,
parece que Fernando Pérez, assim como William Stein, um dos criadores do notebook Sage,
confirmaram que eram usuários ávidos dos notebooks Mathematica e das planilhas Maple. Os
notebooks Mathematica foram criados como front end ou GUI em 1988 por Theodore Gray.

O conceito de notebook, que contém texto comum, cálculo e/ou gráficos,


definitivamente não era novo. Além disso, os desenvolvedores mantiveram contato próximo e
isso, juntamente com outras tentativas fracassadas de GUIs para IPython e o uso de "AJAX" =
aplicativos da web, que não exigiam que os usuários atualizassem a página inteira toda vez que
você fazia algo, Havia outras duas motivações para a equipe de William Stein começar a
desenvolver os notebooks Sage.

Como usar os notebooks Jupyter

Vamos utilizar a versão web disponibilizada pela comunidade do Jupyter. Para isso,
aponte seu navegador para o endereço a seguir:
https://jupyter.org/try

Depois disso, clique na imagem a seguir (Figura 2.1).

Figura 2.1 – Acesso ao Jupyter Notebook com a linguagem Python

17
Depois disso, você terá acesso ao editor conforme mostrado na figura a seguir (Figura
2.2).

Figura 2.2 – Página principal do Jupyter Notebook com a linguagem Python

Vamos realizar nosso primeiro teste. Clique no ícone “+” e vai aparecer uma caixa com a
entrada de código em Python (Figura 2.3).

Figura 2.3 – Entrada de código

Digite o seguinte comando print(‘Olá Mundo!’) conforme a imagem a seguir e clique em


“Run” (Figura 2.4).

Figura 2.4 – Saída do comando executado

Pronto! Já tem o seu primeiro código em Python executando no Jupyter Notebook.


Vamos ver como criar alguns elementos a mais. Primeiramente, vamos criar uma marcação.
Clique novamente em “+” e digite # DataFrame em Python. Depois disso, clique em Cell/Cell
Type/Markdown. O resultado deve ser parecido com a figura a seguir (Figura 2.5).

18
Figura 2.5 – Resultado de uma documentação de marcação

Depois disso, vamos fazer algo mais sofisticado. Vamos importar algumas bibliotecas e
criar uma estrutura de dados. Para isso, clique em “+” e digite o seguinte comando:

import pandas as pd
import numpy as np

Clique em “Run”. Isso vai importar as bibliotecas pandas e numpy. Depois disso, clique
em “+” novamente e digite o comando.

df = pd.DataFrame(data=np.array([[1,2,3],[4,5,6]]),dtype=int,columns=['A','B','C'])
df

Clique em “Run”. O resultado deve ser parecido com a figura a seguir (Figura 2.6).

Figura 2.6 – Resultado da criação um data frame

Vamos ver como gerar um gráfico utilizando um data frame. Para isso, crie uma nova
célula de código clicando em “+”. Depois disso, digite a seguinte linha de código e clique em
“Run” (Figura 2.7):

df = pd.DataFrame({'lab':['A', 'B', 'C'], 'val':[10, 30, 20]})


ax = df.plot.bar(x='lab', y='val', rot=0)

#REFLITA#
O quanto a criação de gráficos pode ser útil ao seu trablho?
#REFLITA#

19
Figura 2.7 – Resultado da criação um gráfico

Dessa forma, aprendemos como acessar a ferramenta Jupyter, realizar imports, escrever
documentação, criar data frame e plotar gráficos. Agora que vimos como o Jupyter funciona,
vamos ver com detalhes as funcionalidades dessa ferramenta.

Estrutura de um documento

O notebook consiste em uma sequência de células. Uma célula é um campo de entrada


de texto com várias linhas e seu conteúdo pode ser executado por usando Shift-Enter ou
clicando no botão "Run" da barra de ferramentas, ou Cell, Run na barra de menus. A execução
do comportamento de uma célula é determinada pelo tipo da célula. Existem três tipos de
células: células de código, células de remarcação e matérias-primas. Cada célula começa a ser
uma célula de código, mas seu tipo pode ser alterado usando um menu suspenso na barra de
ferramentas (que será “Código”, inicialmente) ou através de atalhos de teclado.

Células de código

Uma célula de código permite editar e escrever um novo código, com realce completo
da sintaxe e conclusão da guia. A programação A linguagem usada depende do kernel, e o
kernel padrão (IPython) executa o código Python. Quando uma célula de código é executada, o
código que ela contém é enviado ao kernel associado ao notebook. Os resultados que
retornados desse cálculo são exibidos no notebook como a saída da célula. A saída não está
limitada a texto, com muitas outras formas possíveis de saída também são possíveis, incluindo
figuras matplotlib e tabelas HTML (como usado, por exemplo, no pacote de análise de dados do
pandas). Isso é conhecido como o rico recurso de exibição do IPython.

20
Células de remarcação

Você pode documentar o processo computacional de maneira alfabética, alternando


texto descritivo com código, usando richtext. No IPython, isso é feito marcando o texto com a
linguagem Markdown. As células correspondentes são chamadas Células de remarcação. A
linguagem Markdown fornece uma maneira simples de executar essa marcação de texto, ou
seja, especificar quais partes do texto deve ser enfatizado (itálico), negrito, listas de
formulários, etc. Se você deseja fornecer estrutura para o seu documento, pode usar títulos de
remarcação. Os títulos de remarcação consistem em 1 a 6 # sinais de hash # seguidos por um
espaço e o título da sua seção. O cabeçalho de remarcação será convertido em um link clicável
para uma seção do caderno. Também é usado como dica ao exportar para outros formatos de
documento, como PDF.

Quando uma célula Markdown é executada, o código Markdown é convertido no rich


text formatado correspondente. Markdown permite código HTML arbitrário para formatação.
Nas células Markdown, você também pode incluir matemática de maneira direta, usando a
notação padrão do LaTeX: $ ... $ para matemática embutida e $$ ... $$ para matemática
exibida. Quando a célula Markdown é executada, o As partes do LaTeX são renderizadas
automaticamente na saída HTML como equações com tipografia de alta qualidade. Isto é
possibilitada pelo MathJax, que suporta um grande subconjunto da funcionalidade LaTeX. Os
ambientes matemáticos padrão definidos pelo LaTeX e pelo AMS-LaTeX (o pacote amsmath)
também funcionam, como \ begin {equation} ... \ end {equation} e \ begin {align} ... \ end
{align}. Novas macros LaTeX pode ser definido usando métodos padrão, como \ newcommand,
colocando-os em qualquer lugar entre delimitadores matemáticos em uma célula Markdown.
Essas definições estão disponíveis no restante da sessão do IPython.

Células brutas

As células brutas fornecem um local no qual você pode gravar a saída diretamente. As
células brutas não são avaliadas pelo notebook. Quando passadas pelo nbconvert, as células
brutas chegam ao formato de destino sem modificação. Por exemplo, você pode digitar LaTeX
completo em uma célula bruta, que só será renderizada pelo LaTeX após a conversão pelo
nbconvert.

Fluxo de trabalho básico


O fluxo de trabalho normal em um notebook é, portanto, bastante semelhante a uma
sessão IPython padrão, com a diferença de que você pode editar células no local várias vezes
até que você obtenha os resultados desejados, em vez de precisar executar novamente scripts

21
separados com o comando% run magic. Normalmente, você trabalha em um problema
computacional em partes, organizando idéias relacionadas em células e avançando uma vez
que as peças anteriores funcionem corretamente. Isso é muito mais conveniente para a
exploração interativa do que dividir uma computação em scripts que devem ser executados
juntos, como anteriormente era necessário, especialmente se partes deles muito tempo para
correr.

Para interromper um cálculo que está demorando muito, use a opção de menu Kernel,
Interrupção ou o teclado i, i atalho. Da mesma forma, para reiniciar todo o processo
computacional, use a opção de menu Kernel, Reiniciar ou o atalho 0,0. Um bloco de notas pode
ser baixado como um arquivo.ipynb ou convertido para vários outros formatos usando a opção
de menu Arquivo, Baixar como.

Compatibilidade do navegador

O Notebook Jupyter visa oferecer suporte às versões mais recentes desses navegadores:
  Chrome
  Safari
 Firefox

As versões atualizadas do Opera e Edge também podem funcionar, mas, se não, use um
dos navegadores suportados. O uso do Safari com HTTPS e um certificado não confiável é
conhecido por não funcionar (os websockets falharão).

Navegação com o mouse

Toda a navegação e ações no Notebook estão disponíveis usando o mouse na barra de


menus e na barra de ferramentas, que são acima da área principal do Notebook (Figura 2.8):

Figura 2.8 – Menu de navegação

A primeira ideia da navegação baseada no mouse é que as células podem ser


selecionadas clicando nelas. O atualmente selecionado A célula obtém uma borda cinza ou

22
verde, dependendo do notebook estar no modo de edição ou comando. Se você clicar dentro
de um na área de edição da célula, você entrará no modo de edição. Se você clicar na área de
prompt ou saída de uma célula, digite o comando modo.

A segunda ideia da navegação baseada em mouse é que as ações das células geralmente
se aplicam à célula atualmente selecionada. Assim, se Para executar o código em uma célula,
selecione-o e clique no botão na barra de ferramentas ou no item de menu “Cell: Run”. Da
mesma forma, para copiar uma célula, selecione-a e clique no botão na barra de ferramentas
ou no item de menu "Editar: Copiar". Com esse padrão simples, você poderá fazer quase tudo
você precisa com o mouse.

As células Markdown possuem outro estado que pode ser modificado com o mouse.
Essas células podem ser renderizadas ou não renderizado. Quando eles são renderizados, você
verá uma boa representação formatada do conteúdo da célula. Quando eles não são
renderizados, você verá a fonte de texto bruto da célula. Para renderizar a célula selecionada
com o mouse, clique no botão na barra de ferramentas ou no item de menu “Cell: Run”. Para
renderizar a célula selecionada, clique duas vezes na célula.
Para testar o poder de processamento do Jupyter vamos gerar uma lista de vários
números primos. Para isso, digite o seguinte comando (Figura 2.9):

for i in range(500)
print(2**i - 1)

#ATENÇÃO#
Cuidado com a identação do código. Isso pode gerar um erro de interpretação do Python.
#ATENÇÃO#

23
Figura 2.9 – Impressão dos primeiros 500 números primos

Esse comando gerou 500 números primos partindo de 0. Note que o Jupyter gerou a
barra de rolagem de maneira automática.

RStudio IDE

O RStudio é uma interface de usuário para o software de programação estatística R.


Embora algumas operações possam ser feito apontando e clicando com o mouse, você
precisará aprender a escrever o código do programa. Isto é como aprender um novo idioma -
há sintaxe, gramática e vocabulário específicos, e levará tempo para se acostumar. Aprender R
acabará por oferecer controle total, flexibilidade e criatividade ao analisar e visualizando dados,
mas a fluência nesse novo idioma levará tempo. Seja preciso, vá devagar, copie os códigos e
seja paciente!

Dowload R e R Studio

R é um pacote de software GRATUITO para cálculos estatísticos e gráficos. Pode ser


baixado no UNIX, Sistemas operacionais Windows e Mac. Vá para http://cran.us.r-project.org/ e
siga as instruções apropriadas ao seu sistema operacional. Em teoria, você deve ser capaz de
executar o arquivo.exe (Windows) ou .pkg (Mac) uma vez baixado e ele será automatcamente
instalado. Recomenda-se usar todas as configurações padrão ao baixar o R. Depois de baixar o
R, você pode instalar o RStudio em http://www.rstudio.com/. Clique em "Baixar agora" e clique
em "Baixar RStudio Desktop". Selecione e faça o download da versão apropriado para o seu
sistema operacional.

24
R Básico

R é uma linguagem baseada em objetos - os objetos incluem matrizes, vetores, quadros


de dados (um tipo especial de matriz), e funções. Todos esses objetos flutuam no espaço de
trabalho. Existem muitas funções na "base R" - o conjunto básico de funções e outros objetos
disponíveis quando você abre RStudio pela primeira vez. Isso inclui funções para plotagem de
dados, operações matemáticas básicas e alguns procedimentos estatísticos que iremos
aprender. Funções adicionais podem ser adicionadas carregando pacotes; esses são conjuntos
de objetos compilados por outros usuários do R e disponibilizados ao público. Você também
pode escrever as suas próprias funções. Ao abrir o RStudio, você verá quatro janelas:

Script

O script é um documento para armazenar uma lista de comandos R. Esta janela pode
não aparecer quando você primeiro abra o RStudio. Para criar um script, clique em “Arquivo \
Novo \ Script R”.

Console

A saída aparece aqui. O sinal> (também chamado de "prompt") significa que R está
pronto para aceitar comandos. Você pode digitar comandos diretamente no console. No
entanto, é um bom hábito digitar na janela de script e execute comandos a partir daí. Nada no
console pode ser salvo. Você pode, no entanto, salvar seus comandos em um arquivo de script
e repetir suas análises posteriormente. Isso é especialmente útil se você está trabalhando em
um grande projeto ou se você deseja manter seu código para consultar mais tarde.

Área de trabalho

Essa janela da área de trabalho lista os objetos atualmente disponíveis para você.
Funções que fazem parte da "base R" ou os pacotes não aparecerão aqui (existem muitos para
tornar isso prático). Funções especiais que você escreve a si mesmo ou faz parte de um espaço
de trabalho salvo anteriormente aparecerá aqui.

Plot/Ajuda

A janela final possui várias guias, incluindo uma guia de ajuda com um recurso de

25
pesquisa. Quando você cria plotagens eles aparecerão nessa janela, que você pode
redimensionar para ter uma visão melhor. A guia "Arquivos" também mostra os arquivos no
seu computador como uma maneira de acessar os scripts R que você escreveu anteriormente.
Tenha cuidado ao excluir arquivos nesta janela os exclui do seu computador (Figura 2.10).

Figura 2.10 – Interface principal do RStudio

Carregando áreas de trabalho e conjuntos de dados no RStudio

Os espaços de trabalho são salvos usando a extensão de arquivo .RData. Um espaço de


trabalho é uma maneira conveniente de armazenar vários conjuntos de dados ou um conjunto
de funções que você escreveu, principalmente ao executar o código para produzir os conjuntos
de dados podem levar muito tempo. Para carregar um espaço de trabalho, clique no ícone da
pasta sob a guia "Área de trabalho" na janela superior direita do RStudio. Navegue para onde
você salvou o espaço de trabalho e abra-o. Agora você deve ver uma lista de objetos na janela
da área de trabalho, à direita. Para carregar um conjunto de dados em sua área de trabalho,
você precisa clicar no botão Importar dados e selecione “Do arquivo” ou “Do URL”, conforme
apropriado. Você pode carregar arquivos csv ou txt nos quais salvou seu computador via “Do
arquivo”. Quando os dados aparecerem como arquivos de texto online, você poderá carregá-los

26
diretamente do URL. Agora você só precisa ter certeza de que a visualização do Data Frame
parece correta (Figura 2.11).

Figura 2.11 – Interface de importação de dados

Pacotes

Embora muitas funções úteis estejam incluídas na “base R”, usuários e desenvolvedores
podem criar e enviar seus próprios pacotes complementares com funções e conjuntos de dados
especializados. O acesso a esses pacotes requer duas etapas: instalar o pacote no seu
computador (só precisa ser feito uma vez) e carregar a biblioteca no seu espaço de trabalho
(precisa ser feito toda vez que você abre o RStudio). Por exemplo, muitos especialistas As
funções de plotagem estão incluídas no ggplot2. Os pacotes podem ser instalados por ponto e
clique no RStudio. Primeiro clique em "Ferramentas" e selecione "Instalar pacotes" (Figura
2.12).

27
Figura 2.12 – Interface de importação de pacotes

Comece a digitar o nome do pacote. Você pode ver as opções de conclusão automática
aparecerão. Recomenda-se deixe a caixa "Instalar dependências” marcadas, pois isso instalará
automaticamente todos os pacotes necessários para execute o pacote desejado. Clique em
"Instalar".
Algumas mensagens de aviso podem aparecer se o pacote foi criado sob uma versão R
diferente ou se outros pacotes são instalados devido a dependências. Podem ocorrer erros
nesta etapa; leia a seção texto que aparece em vermelho. Quando o pacote for instalado com
sucesso, você verá uma mensagem no console que diz:

package ‘ggplot2’ successfully unpacked and MD5 sums checked

Para usar o pacote, você deve usar a biblioteca de funções () para carregar o pacote
desejado toda vez que reabra o RStudio. As bibliotecas não serão carregadas automaticamente
sempre que você usar o RStudio.

Exemplos básicos

R executa o código linha por linha. Ou seja, você diz uma coisa, e faz isso
imediatamente. (Às vezes, se a nossa “Linha” de código é longa, na verdade, será escrita como
várias linhas em uma página, mas R a trata como uma sentença de código muito longa). Com
números, podemos usar R como uma calculadora. A seguir, é apresentado um exemplo do que
aparece na janela do console quando digitamos 3 + 7 e pressionamos enter (Figura 2.13).

28
Figura 2.13 – Exemplo de operações em R

Também podemos armazenar objetos usando nomes. Vemos isso com mais frequência
nesta classe com quadros de dados nomeados (também conhecido como conjuntos de dados).
Também armazenaremos tabelas, saída de função ou valores únicos. Um exemplo simples é o
código a seguir:

se <- sqrt (0,75 * .25 / 200)

Este é um exemplo em que posso querer armazenar o erro padrão para uma proporção
de amostra de 0,75 com 200 observações como "se" no meu espaço de trabalho. Isso é
conveniente se eu vou usá-lo repetidamente em equações Você notará que, se você executar
esta linha de código, nenhuma saída será exibida no seu console. Mas um novo "Valor" aparece
no seu espaço de trabalho, chamado se. Você também pode usar "=" para atribuir valores ao
invés de "←". O livro tende a usar "=", mas muitos preferem usar a seta como uma convenção;
enquanto você escreve mais código, você tenderá a desenvolver seu próprio estilo. Observe
que R diferencia maiúsculas de minúsculas. O objeto se não é o mesmo que SE.

Usando funções

Duas funções que comumente utilizadas são lm e plot. A função lm é usada para
regressão linear simples e múltipla e leva muitos argumentos ou entradas possíveis, embora
normalmente usemos apenas dois: a fórmula (declaração do modelo) e o conjunto de dados.

lm (fórmula, dados)

Ao usar as funções R, você pode especificar qual argumento é qual pelo nome ou com

29
base na ordem de inserindo informações. Para entradas de função, você também pode truncar
os nomes. Ou seja, todos os seguintes darão resultados equivalentes:

lm (fórmula = y ~ x, dados = exemplo1)


lm (formulário = y ~ x, dat = exemplo1)
lm (y ~ x, dados = exemplo1)

Observe que o primeiro argumento y ~ x é assumido como a fórmula. Veja o menu de


ajuda ou preencha automaticamente dicas para a ordem esperada de argumentos. Se você usar
os nomes dos argumentos, a ordem não importa (Isso pode ser útil para evitar erros). Outro
recurso útil do RStudio é o preenchimento automático. Tente digitar apenas "l" ou "lm" na
janela de script e pressione a tecla Tab.

Uma lista de possíveis funções que começam com "l" será exibida. Informações sobre a
função selecionada aparecem à direita. Você também pode usar o preenchimento automático
quando não se lembrar dos nomes dos argumentos da função. Pressione Enter enquanto o
cursor estiver entre parênteses.

Escrevendo código na janela Script

Pode ser realmente tentador digitar tudo diretamente no console - e se você estiver
executando apenas uma ou duas linhas de uma análise que você nunca repetirá isso pode ser
bom. No entanto, ao fazer trabalhos de casa e projetos, será essencial ter uma cópia do código
que você executou. É uma boa ideia mantê-las e até adicionar comentários e anotações de sua
preferência. Vantagens de escrever código na janela de script:

  A coloração automática e o destaque entre parênteses facilitam a localização dos erros.


 Você pode salvar seu código e escrever notas para referência posterior.

 Facilita o compartilhamento do seu código com os colegas de classe ao trabalhar em
 projetos ou o compartilhamento.
 Torna sua análise repetível, fácil de editar e copiar.

Os scripts têm a extensão de arquivo ".R". Se você não possui o R instalado no seu
computador, pode ver .R arquivos usando um editor de texto como o Bloco de notas (embora
você veja apenas texto sem formatação, não cores). Texto simples arquivos (.txt) também
podem ser abertos no RStudio como arquivos de script. Uma das grandes vantagens dos
arquivos de script é a capacidade de incluir comentários. Estas são notas inseridas junto com os

30
comandos R que não serão executados em R.
Os comentários podem ocupar uma linha inteira ou o final de uma linha. Qualquer coisa
após #, mas antes que uma nova linha seja comentou e não será executado quando você
pressionar "Ctrl + Enter" ou "Ctrl + R". E se você digitar algo no console e decidir que deseja
mantê-lo como parte do seu script? Em vez de redigitar tudo, copie e cole diretamente do
console OU use o Guia "Histórico", que está no mesmo painel da guia "Área de trabalho".
Clique onde deseja inserir a linha no seu script; destaque a linha desejada na guia "Histórico" e
clique em. A linha será copiada e colado onde seu cursor clicou pela última vez em seu script.
Isso é especialmente útil se você carregar um espaço de trabalho, pacote ou dados por apontar
e clicar. O RStudio gera uma linha de código que você pode usar para repita esta ação no
futuro.

Considerações Finais

Neste estudo abordamos duas ferramentas para trabalhar com as duas linguagens mais
conhecidas para ciência de dados R e Python. Para isso, aprendemos a utilizar as ferramentas
Jupyter Notebook e RStudio para trabalhar, respectivamente, com Python e R. Ambas as
ferramentas podem ser utilizadas para a aprendizagem, tanto em sala de aula, quanto em casa
ou laboratório. Podem ser utilizadas de maneira profissional para criação de análises ou
modelos. Além disso, essas ferramentas podem ser utilizadas no ambiente acadêmico para
pesquisa, escrita de relatórios e artigos científicos.

31
UNIDADE 3 – Business Intelligence

Objetivos de aprendizagem
  Aprender sobre o Power BI
  Aprender sobre o Tableau
 Comparar as duas ferramentas

Microsoft Power BI
A Microsoft apresentou a ideia de autoatendimento Business Intelligence (BI) em 2009,
anunciando o Power Pivot para Microsoft Excel 2010. Estranhamente, naquela época, não fazia
grandes anúncios, realizar conferências ou realizar uma grande campanha de marketing para
isso. Tudo começou devagar, com alguns usuários entusiasmados adotando a nova tecnologia,
mas a vasta A maioria das pessoas nem sabia sobre o sua existência. Como parte da
comunidade de BI profissionais, ficamos muito surpresos com isso abordagem. Naquela época,
podíamos ver claramente as vantagens para os usuários começarem a adotar o Power Dinamize
como uma ferramenta para coletar informações de dados, então essa completa falta de
marketing foi um pouco decepcionante (RUSSO e FERRARI, 2019).

Assim, por vários anos nós (como comunidade) mantivemos perguntando à Microsoft o
que eles estavam esperando; qual foi o atraso na promoção do BI de autoatendimento para o
maior público de analistas de dados, dados cientistas, tomadores de decisão e entusiastas de
BI, todos sobre o planeta. Pedimos a capacidade de compartilhar relatórios com uma equipe, e
a resposta foi usar SharePoint, local ou online versão, com o primeiro lançamento do Power BI -
uma experiência que ainda não estava completamente satisfatório. Enquanto esperávamos
pela Microsoft corrigir os problemas com as versões anteriores e começar a anunciar os
produtos atuais, foi fazendo algo diferente que, com o benefício retrospectivamente, parece ter
sido a perfeita escolha. A Microsoft coletou o feedback de usuários, consideraram
cuidadosamente o que estava faltando mundo do BI do usuário final e, em seguida, criou a
versão do Power BI que está disponível para você hoje.

O Power BI é uma evolução dos suplementos anteriormente disponível no Excel: Power


Pivot, Power Consulta e Power View. Você pode usar o Power BI com ou sem o Excel - você não
está mais depende da versão do Microsoft Office instalado na sua empresa. As pessoas não
gostaram de compartilhar relatórios usando apenas o SharePoint e a Microsoft se afastou dele.
Os usuários queriam uma experiência móvel e equipe de desenvolvimento criou. Os analistas
de dados queriam poder, simplicidade, novos visualizações e tudo isso é agora disponível no
Power BI. Além disso, muitos esforços foram para a criação de uma perfeita experiência em

32
carregar dados de fontes de diferentes e construção da infraestrutura necessária para fornecer
a todos os entusiastas de BI uma estrutura com a qual eles podem crescer relatórios,
compartilhe-os com suas equipes e atualize os dados de uma maneira simples, mas eficaz.

Começando com Power BI

Vamos iniciar com algo bem simples. Vamos inserir alguns dados no Power BI e realizar
algumas análises para ver o resultado. Essa é a interface padrão do Power BI. Ela é muito
parecida com todos os produtos Microsoft Office. Com isso, a curva de aprendizagem tende a
ser menor e mais simples. Para criarmos nosso primeiro exemplo com o Power BI, vamos inserir
alguns dados para testar as funcionalidades. Para isso, clique em “Inserir Dados” (Figura 3.1).

Figura 3.1 – Interface principal do Power BI

Uma interface parecida com a seguir deve aparecer. Coloque os dados conforme
indicado na figura e clique em carregar (Figura 3.2).

33
Figura 3.2 – Interface para inserção de dados

Com isso, os dados devem aparecer na área chamada de “Campos”. Selecione as


colunas que serão enviadas para a área de transferência. Depois disso, basta clicar nas opções
de visualizações para verificar os resultados. O Power BI é muito simples com relação à criação
de gráficos e visualizações interessantes podem ser vistas com pouco esforço (Figura 3.3).

Figura 3.3 – Resultado da importação de dados

34
Podemos criar facilmente um gráfico de barras com os dados de entrada simplesmente
clicando no ícone de gráficos de barra (Figura 3.4).

Figura 3.4 – Gráfico de barra dos dados importados

Da mesma forma, podemos criar um gráfico de pizza (Figura 3.5).

Figura 3.5 – Gráfico de pizza dos dados importados

Podemos facilmente criar um dashboard com o Power BI. Para isso, basta termos os
dados relacionados e escolher a melhor visualização para esses dados (Figura 3.6).

35
Figura 3.6 – Exemplo de dashboard

Você pode adicionar medidas aos seus dados para enriquecer o seu modelo. Digamos
que você queria saber qual a media de vendas de um determinado produto. Para isso, clique
sobre a relação Vendas com o botão diretito e adicione uma medida. Na caixa de dialogo que
surgir digite o seguinte comando (Figura 3.7):

Medida = AVERAGE(Vendas[Venda])

Figura 3.7 – Criação de uma medida

36
Clique em confirmar. Adicione uma tabela ao seu dashboard e vincule essa coluna a essa
tabela conforme a figura a seguir (Figura 3.8).

Figura 3.8 – Criação de uma medida

Dessa forma, com um pouco de criatividade você pode montar os mais variados
dashboards de maneira rápida e fácil. Veja um exemplo abaixo (Figura 3.8).

Figura 3.8 – Exemplo de um dashboard

37
Claro que depois de tudo montado você vai desejar apresentar esses painéis para seus
usuários. O Power BI permite isso por meio do recurso de publicação. Para isso, clique em
Publicar. Uma janela parecida com a seguir deve aparecer (Figura 3.9).

Figura 3.9 – Interface para publicação do Power BI

Aqui você informa o seu servidor de relatórios para onde o seu dashboard será
publicado e a quaisquer alterações dos dados, as mesmas serão apresentados aos usuários
finais (RUSSO e FERRARI, 2019).

Tableau

O Tableau é uma plataforma incrível para ver, entender e tomar decisões importantes
com base nos seus dados. Com ele, você será capaz de alcançar uma incrível descoberta de
dados, análise e narração de dados. Você realizará essas tarefas e objetivos visualmente usando
uma interface projetada para um fluxo natural e contínuo de pensamento e trabalho. Para
aproveitar o poder do Tableau, você não precisa escrever scripts ou consultas complexas. Em
vez disso, você estará interagindo com seus dados em um ambiente visual onde tudo você
arrastar e soltar será traduzido nas consultas necessárias para você e depois exibido
visualmente. Você estará trabalhando em tempo real, para ver resultados imediatamente,
obter respostas o mais rápido que puder fazer perguntas e poder iterar através de dezenas de
maneiras de visualizar os dados para encontrar um insight importante ou contar uma parte da
história (SLEEPER, 2018).

38
Este capítulo apresenta os princípios fundamentais do Tableau. Vamos passar por uma série
de exemplos que introduzirão os conceitos básicos de conexão com dados, explorando e
analisando os visualmente os dados e, finalmente, reunindo tudo em um painel totalmente
interativo. Estes conceitos serão desenvolvidos muito mais extensivamente nos capítulos
subsequentes. Mas não pule isso capítulo, pois apresenta a terminologia e os conceitos-chave,
incluindo o seguinte:
  O ciclo da análise
  Conectando aos dados
  Fundamentos para criar visualizações
  Criando gráficos de barras
  Criando gráficos de linhas
  Criando visualizações geográficas
  Usando o Show Me
 Reunindo tudo através de um painel

O ciclo da análise

Como alguém que trabalha e procura entender dados, você se encontrará trabalhando
dentro do ciclo de análise. Esse ciclo pode ser ilustrado da seguinte maneira (Figura 3.10):
Descoberta
de Dados

Preparação
Storytelling Visualização dos Dados

Análise dos
Dados

Figura 3.10 – O ciclo de análise

O Tableau permite saltar para qualquer etapa do ciclo, mover-se livremente entre as etapas
e iterar através do ciclo muito rapidamente. Com o Tableau, você pode fazer o seguinte:
 Descoberta de dados: você pode explorar muito facilmente um conjunto de dados
usando o Tableau e começar a entender quais dados você possui visualmente.

 Preparação de dados: o Tableau permite conectar-se aos dados de diversas fontes e, se
necessário, crie uma estrutura que funcione melhor para sua análise. Na maioria das
vezes, isso é tão fácil quanto apontar o Tableau para um banco de dados ou abrir um

39
arquivo, mas o Tableau oferece as ferramentas para reunir mesmo complexos e
confusos dados de várias fontes.
 Análise de dados: o Tableau facilita a visualização dos dados, para que você possa ver e
entender tendências, outliers e relacionamentos. Além disso, o Tableau tem um
conjunto cada vez maior de funções analíticas que permitem mergulhar profundamente
compreensão de relacionamentos, padrões e correlações complexos nos dados.

 Contagem de histórias de dados: o Tableau permite criar painéis totalmente interativos
e histórias com suas visualizações e ideias para que você possa compartilhar a história
de dados com outros.

Tudo isso é feito visualmente. A visualização de dados é o coração do Tableau. Você pode
iterar através de inúmeras maneiras de visualizar os dados para fazer e responder perguntas,
criar perguntas e obter novas ideias. E você fará isso como um fluxo de pensamento. Vamos ver
alguns detalhes de como criar dashboards no Tableau. Para isso, vamos utilizar os mesmos
dados do exemplo do Power BI (Tabela 3.1).

Tabela 3.1 – Dados contidos na planilha do Excel


Produto UF Venda
A PR 1000
B PR 2000
C PR 3000
D SP 4000
E SP 5000

O Tableau possui diversas maneiras de aquisição de dados que vão desde arquivos
textos até bancos de dados completos. Neste caso, vamos utilizar uma planilha do Excel como
fonte de dados. Coloque esses dados em uma planilha, vá ao Tableau e clique em conectar a
um arquivo do Microsoft Excel (SLEEPER, 2018) (Figura 3.11).

#REFLITA#
Quais seriam todas as fontes de dados possíveis a serem utilizadas?
#REFLITA#

40
Figura 3.11 – Interface principal do Tableau

Depois disso, selecione o seu arquivo e o resultado deve ser como a imagem a seguir
(Figura 3.12).

Figura 3.12 – Dados importados do Excel

Note que neste momento temos algumas opções. Uma das mais interessantes é o tipo
de conexão que pode ser em tempo real (ou seja, alterações no arquivo refletem no Tableau) e
extração (ou seja, uma cópia dos dados será criada). Pronto, com isso temos nossos dados e
podemos começar nossas análises. Para isso, clique na planilha 1 conforme abaixo (Figura 3.13).

41
Figura 3.13 – Planilha para edição das análises

Ao lado esquerdo temos dois pontos importantes: as dimensões (ou seja, os


qualificadores da informação, que no nosso caso são o produto e a UF) e as medidas (ou seja,
os valores que serão apresentados). Um ponto interessante do Tableau neste ponto é: como
temos valores de UF associados aos dados, o Tableau já entendeu que isso pode ser exibido em
um mapa e associou os valores de longitude e latitude. Somente como curiosidade, vamos criar
um mapa com esses dados. Para isso, clique na dimensão UF e arraste para a parte de cima da
planilha. O resultado será algo do tipo (Figura 3.14).

Figura 3.14 – Dimensão adicionada

42
Agora clique na medida Vendas e arraste para cima da linha abaixo dos estados. O
resultado deverá ser algo do tipo (Figura 3.15):

Figura 3.15 – Medida adicionada

Perceba que ao lado direito, na guia “Mostre-me” , as funcionalidades permitidas já


foram habilitadas. Dessa forma, podemos clicar em uma delas para ver o resultado. Clique no
segundo ícone de mapa disponível. O resultado devera ser como o da figura a seguir (Figura
3.16):

Figura 3.16 – Exemplo de mapa criado com os dados da venda

43
Interessante, não? Vamos imaginar agora o seguinte, queremos mais visualizações
diferentes dos mesmos dados. Para isso, precisamos entender dois conceitos importantes: (a)
planilhas e (b) painéis (SLEEPER, 2018). As planilhas são onde construímos cada perspectiva do
dado. Por exemplo, na planilha anterior construímos uma visualização por mapa. Mas digamos
que queiramos ver um gráfico de pizza dessas vendas por estado, o resultado seria algo como a
imagem a seguir (Figura 3.17).

Figura 3.17 – Criação do gráfico de pizza

E imagine que não satisfeitos, gostáramos de um gráfico de boxplot (aqueles que são
utilizados para mostrar as cotações da bolsa de valores). Dessa forma, teríamos algo do tipo
(Figura 3.18):

44
Figura 3.18 – Criação do gráfico de boxplot

Agora, o segundo conceito, o painel serve para agrupar tudo isso. Vamos criar um
clicando em “Novo Painel”. Depois disso, vamos acomodar nossas planilhas neste painel de
acordo com nossa necessidade. O resultado deve ser algo como mostrado pela figura abaixo
(Figura 3.19).

Figura 3.19 – Edição de um exemplo de dashboard

Além disso, dispomos de um recurso de apresentação que pode ser explorado para sai
do modo edição para um modo mais limpo, destinado ao usuário final. Para isso, pressione F7.
O resultado deve ser como o da figura a seguir (Figura 3.20).

45
Figura 3.20 – Apresentação de um exemplo de dashboard

Perceba que você pode posicionar o mouse em cima de cada elemento e novas
informações serão exibidas. Tudo isso de uma maneira muito simples e direta. Agora, vamos
supor que nossos dados sejam atualizados, para digamos o mostrado na tabela abaixo (Tabela
2).

Tabela 2 – Novos dados de entrada do Excel


Produto UF Venda
A PR 1000
B PR 2000
C PR 3000
D SP 4000
E SP 5000
F SC 6000
G SC 9000

Vamos ver como o Tableau apresenta esses novos dados (Figura 3.21).

46
Figura 3.21 – Novos dados sendo apresentados no dashboard

Muito bom não? Da mesma forma que o Power BI, o Tableau possui a funcionalidade de
publicação dos painéis criados. Para isso, basta clicar em compartilhar a pasta de trabalho. Uma
janela como a seguir deve surgir (Figura 3.22):

Figura 3.22 – Publicação de um dashboard

Então basta você colocar o nome do servidor que será utilizado e o Tableau irá publicar
a análise para os demais usuários. Outro ponto importante do Tableau é a possibilidade de criar
filtros. Vamos criar uma nova planilha e adicionar uma tabela que mostre as vendas de um
produto por estado. Depois disso, adicione um filtro conforme a figura a seguir (Figura 3.23):

47
Figura 3.23 – Criação de um filtro de dados

Clique em “Ok”. Pronto, já podemos utilizar o filtro. Para isso, vá ao painel e adicione
essa planilha no mesmo conforme a figura a seguir (Figura 3.24).

48
Figura 3.24 – Edição do dashboard com o filtro de dados

Perceba o filtro ao lado direito disponível. Vamos ver ele em execução agora. Pressione
F7 e vamos para o modo apresentação. Desmarque o estado do PR no filtro e veja o resultado
(Figura 3.25).

Figura 3.25 – apresentação do dashboard com o filtro de dados

Interessante, não? Podemos agora filtrar os dados e permitir ao nosso usuário um


controle maior do que ele deseja visualizar.

49
Considerações de desempenho

Ao trabalhar com um pequeno conjunto de dados e um banco de dados eficiente,


muitas vezes você não perceberá cálculos ineficientes. Com conjuntos de dados maiores, a
eficiência de seus cálculos pode começar a fazer uma diferença bastante dramática na
velocidade em que uma exibição é renderizada. Os cálculos no nível da linha devem ser
executados para cada linha de dados. Tente minimizar a complexidade dos cálculos no nível da
linha. No entanto, se isso não for possível ou não resolver um problema, questão de
desempenho, considere a opção final. Quando você cria uma extração de dados, certos cálculos
no nível da linha são materializados. Isso significa que o cálculo é realizado uma vez, quando o
extrato é criado e os resultados são depois armazenados no extrato. Isso significa que o
mecanismo de dados não precisa executar o cálculo repetidamente. Em vez disso, o valor é
simplesmente lido no extrato. Cálculos que usam quaisquer funções ou parâmetros do usuário,
ou TODAY() ou NOW(), não serão materializados na extração, pois o valor necessariamente
muda de acordo com o usuário atual, parâmetro seleção e hora do sistema. O otimizador do
Tableau também pode determinar se deve ou não materializar certos cálculos que são
executados com mais eficiência na memória do que tendo que ler o valor armazenado
(SLEEPER, 2018).

Fazendo visualizações que tenham uma ótima aparência e funcione bem

O Tableau aplica muitas boas práticas visuais por padrão e, para análise rápida, você
provavelmente não se preocupará muito em alterar muitos desses padrões. No entanto, como
você considera como melhor comunicar a história de dados que você descobriu, convém
considerar como aproveite tudo, de fontes e texto a cores e design, para que você possa se
comunicar bem com o seu público. As opções de formatação do Tableau oferecem bastante
flexibilidade. Fontes, títulos, legendas, cores, faixas e linhas, rótulos, sombreamento, anotações
e muito mais, todos podem ser personalizado para fazer suas visualizações contarem uma
história impressionante.

O Tableau emprega boas práticas de formatação e visualização desde o início


derrubando campos nas prateleiras. Você descobrirá que as paletas discretas usam cores fáceis
de distinguir, as fontes são agradáveis, as linhas de grade são fracas, onde apropriado, e os
números e datas seguem as configurações de formato padrão definidas nos metadados. A
formatação padrão é mais que adequada para descoberta e análise. Se o seu foco é análise,
talvez você não queira gastar muito tempo ajustando a formatação até seguir em frente no
ciclo de análise. No entanto, quando você pensa em como irá comunicar os dados a outras
pessoas, considere como os ajustes na formatação podem fazer uma grande diferença em quão
bem a história dos dados é contada (SLEEPER, 2018).

Aqui estão algumas das coisas que você deve considerar:

50
 Público: quem é o público e quais são as necessidades dele?

 Objetivo: O objetivo é evocar uma resposta emocional ou expor os fatos de uma
decisão apaixonada? Você está destacando uma ação que precisa ser executada ou
simplesmente tentando gerar interesse em um tópico?

 Configuração: este é o ambiente no qual a história de dados é comunicada. É uma
reunião formal de negócios em que o formato deve refletir um alto nível de
profissionalismo? Será compartilhado em um blog informalmente?

 Modo: Como as visualizações serão apresentadas? Você quer ter certeza de linhas,
colunas, fontes e marcas são grandes o suficiente para um projetor ou compactas o
suficiente para um iPad. Se você estiver publicando no Tableau Server, Tableau Online
ou Tableau Público, então você selecionou fontes seguras para a web? Você precisará
usar o designer do dispositivo para criar versões diferentes de um painel?

 Humor: certas cores, fontes e layouts podem ser usados para definir um clima. Os dados
contam uma história que deve invocar certa resposta do seu público? O vermelho, por
exemplo, pode denotar perigo, resultados negativos ou indicam que uma ação é
necessária. No entanto, você precisará estar sensível ao seu público e ao contexto
específico. As cores têm diferentes significados em diferentes culturas e em diferentes
contextos. Em algumas culturas, vermelho pode indicar alegria ou felicidade. Além
disso, o vermelho pode não ser uma boa opção para comunicar negatividade se for a cor
do logotipo da empresa.

 Consistência: geralmente, use as mesmas fontes, cores, formas, espessura de linha e
formação de faixas em todas as visualizações. Isto é especialmente verdade quando eles
vão ser vistos juntos em um painel ou mesmo usados na mesma pasta de trabalho. Você
pode considerar também como permanecer consistente em toda a organização sem
sendo muito rígido.

Todas essas considerações informarão suas decisões de design e formatação. Como com
tudo o mais que você faz com o Tableau, pense no design como um processo iterativo. Buscar
feedback frequentemente do seu público-alvo e ajuste suas práticas conforme necessário para
garantir sua comunicação seja o mais clara e eficaz possível. Todo o objetivo da formatação é
comunicar com mais eficácia os dados.

Contando uma história de dados com Dashboards

Na descoberta e análise de dados, você provavelmente criará inúmeras visualizações de


dados. Cada um essas visualizações fornecem um instantâneo de uma história dentro dos
dados. Cada insight sobre o os dados respondem a uma ou duas perguntas. Às vezes, a fase de
descoberta e análise é suficiente para você tomar uma decisão importante e o ciclo está

51
completo. Em outros casos, você precisará trazer os instantâneos juntos para comunicar uma
história completa e convincente ao seu objetivo público (SLEEPER, 2018).

O Tableau permite reunir visualizações de dados relacionadas em um único painel. Esse


painel pode ser uma visão estática de vários aspectos dos dados ou uma interface totalmente
interativa do ambiente, permitindo aos usuários filtrar, detalhar e interagir dinamicamente com
os dados das visualizações.

Considerações Finais

Neste estudo aprendemos duas das mais conhecidas ferramentas (e linguagens) para
Data Science; O Jupyter Notebook e O RStudio. Ambas as ferramentas podem ser utilizadas de
forma profissional, acadêmica ou para fins educacionais. Todas tem versão gratuita e pagas e
podem ser utilizadas nos mais variados cenários para a ciência de dados. Além disso, essas
ferramentas são muito demandadas pelos profissionais e empresas da área.

52
UNIDADE 4 – Ferramentas de Big Data

Objetivos de aprendizagem
  Aprender sobre a análise com muitos dados
  Aprender sobre o Apache Hadoop
 Aprender sobre o DataCleaner

Apache Hadoop

Vivemos na era dos dados. Não é fácil medir o volume total de dados armazenados
eletronicamente, mas uma estimativa da IDC colocou o tamanho do "universo digital" em 0,18
zettabytes em 2006 e prevê um crescimento de dez vezes em 2020 para 1,8 zettabytes. Um
zettabyte é 1021 bytes, ou equivalente a mil exabytes, um milhão de petabytes ou um bilhão
terabyte. Essa é cerca da mesma ordem de magnitude que uma unidade de disco para cada
pessoa no mundo (WHITE, 2015).

Portanto, existem muitos dados por aí. Mas você provavelmente está se perguntando
como isso afeta você. A maioria dos dados está bloqueada nas maiores propriedades da web
(como mecanismos de pesquisa) ou instituições científicas, ou financeiras, não é? O advento do
"Big Data", como está sendo chamado, afeta organizações ou indivíduos menores? Argumento
que sim. Tirar fotos, por exemplo. O avô da minha esposa era um ávido fotógrafo e tirou
fotografias ao longo de sua vida adulta. Todo o seu corpus de médio formato, slide e filme de
35 mm, quando digitalizados em alta resolução, ocupam cerca de 10 gigabytes. Compare isso
com as fotos digitais que minha família tirou no ano passado, que ocupam cerca de 5 gigabytes
de espaço. Minha família está produzindo dados fotográficos 35 vezes a taxa do avô de minha
esposa, e a taxa está aumentando a cada ano fica mais fácil tirar mais e mais fotos.

De maneira mais geral, os fluxos digitais que os indivíduos estão produzindo estão
crescendo rapidamente. O projeto MyLifeBits da Microsoft Research oferece um vislumbre do
arquivamento de informações pessoais que podem se tornar comuns em um futuro próximo.
MyLifeBits foi um experimento onde as interações de um indivíduo - telefonemas, e-mails,
documentos - foram capturadas eletronicamente e armazenados para acesso posterior. Os
dados coletados incluíram uma foto tomada a cada minuto, o que resultou em um volume geral
de dados de um gigabyte por mês. Quando os custos de armazenamento diminuem o suficiente
para possibilitar o armazenamento contínuo áudio e vídeo, o volume de dados para um futuro
serviço MyLifeBits será muitas vezes maior (WHITE, 2015).
A tendência é que a pegada de dados de cada indivíduo aumente, mas talvez o mais
importante à quantidade de dados gerados por máquinas será ainda maior do que a gerada por

53
pessoas. Registros de máquinas, leitores RFID, redes de sensores, rastreamentos GPS de
veículos, varejo transações - tudo isso contribui para a crescente montanha de dados. O volume
de dados disponibilizados ao público também aumenta a cada ano. Organizações não precisam
mais apenas gerenciar seus próprios dados: o sucesso no futuro será ditado em grande parte
pela capacidade de extrair valor dos dados de outras organizações.

Iniciativas como conjuntas de dados públicos no Amazon Web Services, Infochimps.org


e theinfo.org existe para promover os “bens comuns da informação”, onde os dados podem ser
livremente (ou em o caso da AWS, por um preço modesto) compartilhados para qualquer um
baixar e analisar. Os mashups entre diferentes fontes de informação produzem resultados
inesperados e até então aplicações inimagináveis. Veja, por exemplo, o projeto Astrometry.net,
que assiste ao grupo Astrometry no Flickr para novas fotos do céu noturno. Ele analisa cada
imagem e identifica quais partes do céu de onde provém e quaisquer corpos celestes
interessantes, como estrelas ou galáxias.

Embora ainda seja um serviço novo e experimental, mostra o tipo de coisas que são
possíveis quando dados (neste caso, imagens fotográficas marcadas) são disponibilizados e
usado para algo (análise de imagem) que não foi antecipado pelo criador. Já foi dito que "mais
dados geralmente superam algoritmos melhores", ou seja, para alguns problemas (como
recomendar filmes ou músicas com base em preferências anteriores), Por mais diabólicos que
sejam seus algoritmos, eles podem ser derrotados simplesmente por ter mais dados (e um
algoritmo menos sofisticado). A boa notícia é que o Big Data está aqui. A má notícia é que
estamos lutando para armazenar e analisar (WHITE, 2015).

Armazenamento e Análise de Dados

O problema é simples: enquanto as capacidades de armazenamento dos discos rígidos


aumentaram enormemente ao longo dos anos, as velocidades de acesso - a taxa na qual os
dados podem ser lidos nas unidades - não acompanharam. Uma unidade típica de 1990 podia
armazenar 1370 MB de dados e tinha uma velocidade de transferência de 4,4 MB/s, para que
você possa ler todos os dados de uma unidade completa em cinco minutos. Quase 20 anos
depois, as unidades de um terabyte são a norma, mas a transferência velocidade é de cerca de
100 MB/s, por isso leva mais de duas horas e meia para ler todos os dados do disco.

É muito tempo para ler todos os dados em uma única unidade - e a gravação é ainda
mais lenta. A maneira óbvia de reduzir o tempo é ler vários discos ao mesmo tempo. Imagine se
tínhamos 100 unidades, cada uma contendo um centésimo dos dados. Trabalhando em
paralelo, poderíamos leia os dados em menos de dois minutos. Somente o uso de um
centésimo de disco pode parecer um desperdício. Mas podemos armazenar cem conjuntos de
dados, cada um com um terabyte, e fornecem acesso compartilhado a eles. Podemos imagine

54
que os usuários desse sistema ficariam felizes em compartilhar o acesso em troca de tempos de
análise mais curtos e, estatisticamente, que seus trabalhos de análise provavelmente seriam se
espalham ao longo do tempo, para que eles não interfiram demais. É possível ler e gravar dados
em paralelo para ou de vários discos. Apesar disso, o primeiro problema a ser solucionado é a
falha de hardware: assim que você começar a usar várias peças de hardware, a chance de um
fracassar é bastante alta. Uma maneira comum de evitar dados. A perda ocorre pela replicação:
cópias redundantes dos dados são mantidas pelo sistema para que em caso de falha, há outra
cópia disponível. É assim que o RAID funciona, por exemplo, embora o sistema de arquivos do
Hadoop, o Hadoop Distributed Filesystem (HDFS), adota uma abordagem um pouco diferente,
como você verá mais adiante (WHITE, 2015).

O segundo problema é que a maioria das tarefas de análise precisa ser capaz de
combinar os dados em de alguma maneira; os dados lidos de um disco podem precisar ser
combinados com os dados de qualquer dos outros 99 discos. Vários sistemas distribuídos
permitem combinar dados de várias fontes, mas fazer isso corretamente é notoriamente
desafiador. O MapReduce fornece um modelo de programação que abstrai o problema das
leituras e gravações do disco, transformando-o em uma computação sobre conjuntos de chaves
e valores. Vamos olhar para os detalhes desse modelo em capítulos posteriores, mas o ponto
importante para a presente discussão é que existem duas partes na computação, o mapa e a
redução, e é a interface entre os dois onde ocorre a "mistura". Como o HDFS, o MapReduce
tem confiabilidade embutida.
Em resumo, é isso que o Hadoop fornece: um armazenamento e análise compartilhados
confiáveis sistema. O armazenamento é fornecido pelo HDFS e a análise pelo MapReduce. Ha
outras partes para o Hadoop, mas esses recursos são seu kernel.

Uma Breve História do Hadoop


O Hadoop foi criado por Doug Cutting, criador do Apache Lucene, a amplamente
utilizada biblioteca de pesquisa de texto. O Hadoop tem sua origem no Apache Nutch, uma
pesquisa na web de código aberto motor, parte integrante do projeto Lucene. Construir um
mecanismo de pesquisa na Web a partir do zero era um objetivo ambicioso, pois não apenas
software necessário para rastrear e indexar sites complexos para escrever, mas também é um
desafio para executar sem uma equipe de operações dedicada, pois existem muitas partes
móveis. Mike Cafarella e Doug Cutting estimaram um sistema que suporta O índice de bilhões
de páginas custaria cerca de meio milhão de dólares em hardware, com uma taxa mensal custo
operacional de US $ 30.000. “No entanto, eles acreditavam que era um objetivo digno, como
seria abrir e democratizar os algoritmos dos mecanismos de pesquisa”.

55
O Nutch foi iniciado em 2002, e um sistema de rastreamento e pesquisa em
funcionamento rapidamente emergiu. No entanto, eles perceberam que sua arquitetura não
chegaria a bilhões de páginas na web. A ajuda estava à mão com a publicação de um artigo em
2003 que descrevia a arquitetura do sistema de arquivos distribuído do Google, chamado GFS,
que estava sendo usado em produção no Google. # GFS, ou algo assim, resolveria suas
necessidades de armazenamento para os arquivos muito grandes gerados como parte do
processo de indexação e rastreamento da web. Em particular, O GFS liberaria tempo gasto em
tarefas administrativas, como gerenciamento de nós de armazenamento. Em 2004, eles
começaram a escrever uma implementação de código aberto, o Sistema de arquivos
distribuídos da Nutch (NDFS) (WHITE, 2015).

Em 2004, o Google publicou o artigo que apresentou o MapReduce ao mundo. Cedo em


2005, os desenvolvedores da Nutch tiveram uma implementação de MapReduce em
funcionamento na Nutch, e até meados desse ano, todos os principais algoritmos de Nutch
foram portados para rodar usando MapReduce e NDFS. O NDFS e a implementação do
MapReduce em Nutch foram aplicáveis além do âmbito pesquisa, e em fevereiro de 2006 eles
se mudaram de Nutch para formar um subprojeto de Lucene chamado Hadoop. Na mesma
época, Doug Cutting juntou-se Yahoo!, que forneceu uma equipe dedicada e os recursos para
transformar o Hadoop em um sistema executado na escala da web (consulte a barra lateral).
Isso foi demonstrado em fevereiro de 2008 quando o Yahoo! anunciou que seu índice de
pesquisa de produção estava sendo gerado por um Cluster Hadoop de 10.000 núcleos.

Em janeiro de 2008, o Hadoop fez seu próprio projeto de nível superior no Apache,
confirmando seu sucesso e sua comunidade diversificada e ativa. Por esse timem, o Hadoop
estava sendo usado por muitas outras empresas além do Yahoo!, como Last.fm, Facebook e
Nova York Times. Em uma façanha bem divulgada, o New York Times usou a nuvem de
computação EC2 de a Amazon analisar quatro terabytes de arquivos digitalizados do papel,
convertendo-os para PDFs para a Web. O processamento levou menos de 24 horas para ser
executado usando 100 máquinas, e o projeto provavelmente não teria sido iniciado sem a
combinação do modelo de pagamento por hora da Amazon (que permitia ao NYT acessar um
grande número de máquinas por um curto período) e a programação paralela fácil de usar do
modelo Hadoop.

Em abril de 2008, o Hadoop quebrou um recorde mundial para se tornar o sistema mais
rápido a classificar um terabyte de dados. Executando em um cluster de 910 nós, o Hadoop
classificou um terabyte em 209 segundos (pouco menos de 3½ minutos), superando o vencedor
do ano anterior, de 297 segundos (descrito em detalhes em “Classificação do TeraByte no
Apache Hadoop” na página 461). Em novembro No mesmo ano, o Google informou que sua
implementação do MapReduce classificou um terabyte em 68 segundos.§ Como este livro
estava sendo publicado (maio de 2009), foi anunciado que uma equipe do Yahoo! usou o
Hadoop para classificar um terabyte em 62 segundos (WHITE, 2015).

O projeto Apache Hadoop

56
Hoje, o Hadoop é uma coleção de subprojetos relacionados que se enquadram no guarda-
chuva de infraestrutura para computação distribuída. Esses projetos são hospedados pelo
Apache Soft Foundation, que fornece suporte para uma comunidade de software de código
aberto. Embora o Hadoop seja mais conhecido pelo MapReduce e seu sistema de arquivos
distribuído (HDFS, renomeado para NDFS), os outros subprojetos fornecem serviços
complementares, ou desenvolva o núcleo para adicionar abstrações de nível superior. Os
subprojetos e onde eles na pilha de tecnologia, são mostrados a seguir e descritos brevemente
aqui (WHITE, 2015) (Figura 4.1):
 Core - Um conjunto de componentes e interfaces para sistemas de arquivos distribuídos
e E/S geral (serialização, Java RPC, estruturas de dados persistentes).

 Avro - Um sistema de serialização de dados para RPC eficiente, entre idiomas e
armazenamento de dados persistentes. (No momento da redação deste material, o Avro
havia sido criado apenas como um novo subprojeto, e nenhum outro subprojeto
Hadoop o estavam usando ainda).

 MapReduce - Um modelo de processamento de dados distribuído e ambiente de
execução que são executados em grandes aglomerados de máquinas de mercadorias.

 HDFS - Um sistema de arquivos distribuído que roda em grandes grupos de máquinas
comuns.

 Pig - Uma linguagem de fluxo de dados e ambiente de execução para explorar conjuntos
de dados muito grandes. O Pig é executado nos clusters HDFS e MapReduce.

 HBase - Um banco de dados distribuído, orientado a colunas. O HBase usa o HDFS como
base de armazenamento e suporta cálculos em estilo de lote usando MapReduce e
point consultas (leituras aleatórias).

 ZooKeeper - Um serviço de coordenação distribuído e altamente disponível. O
ZooKeeper fornece primitivas como bloqueios distribuídos que podem ser usados para
criar aplicativos distribuídos.

 Hive - Um armazém de dados distribuído. O Hive gerencia os dados armazenados no
HDFS e fornece um linguagem de consulta baseada em SQL (e traduzida pelo
mecanismo de tempo de execução para Tarefas MapReduce) para consultar os dados.

 Chukwa - Um sistema de coleta e análise de dados distribuídos. Chukwa administra
colecionadores que armazenar dados no HDFS e usa o MapReduce para produzir
relatórios. (No momento desta Ao escrever, Chukwa havia acabado de se formar
recentemente de um módulo "contrib" no Core para seu próprio subprojeto)

57
Figura 4.1 – Arquitetura do Apache Hadoop

MapReduce

MapReduce é um modelo de programação para processamento de dados. O modelo é


simples, mas não muito simples para expressar programas úteis. O Hadoop pode executar
programas MapReduce escritos em várias línguas. Neste capítulo, veremos o mesmo programa
expresso em Java, Ruby, Python e C ++. Mais importante ainda, os programas MapReduce são
inerentemente paralelos, colocando assim análises de dados em grande escala nas mãos de
qualquer pessoa com máquinas suficientes à sua disposição. O MapReduce se destaca por
grandes conjuntos de dados, então vamos começar olhando para um.

Um conjunto de dados não estruturados

Para o nosso exemplo, escreveremos um programa que extrai dados dos discursos dos
presidentes brasileiros. A coleta de dados é feita via arquivos no formato texto (TXT) que
contem, de forma integral, os discursos dos presidentes brasileiros. Nosso objetivo é identificar
a quantidade de vezes que uma determinada palavra foi utilizada nos discursos. Além da
questão computacional temos uma questão prática, entender se os discursos são parecidos.

Formato de dados
Vamos analisar um dos arquivos utilizados. A seguir temos um excerto do discurso de
posse de um dos presidentes do Brasil.
Senhor presidente do Supremo Tribunal Federal, ministro Cezar
Peluso, Senhoras e senhores chefes das missões estrangeiras,
Senhoras e senhores ministros de Estado, Senhoras e senhores
governadores, Senhoras e senhores senadores, Senhoras e senhores
deputados federais, Senhoras e senhores representantes da

58
imprensa, Meus queridos brasileiros e brasileiras, Pela decisão
soberana do povo, hoje será a primeira vez que a faixa
residencial cingirá o ombro de uma mulher.
Passos para o processamento

O primeiro passo é obter o arquivo discurso.txt (ele está em seu material). Depois disso,
com o Apache Hadoop corretamente instalado e configurado, vamos criar os diretórios para
processamento. Assumindo que o seu diretório de instalação seja o C:\hadoop-3.2.1, crie um
diretório conforme abaixo:

C:\hadoop-3.2.1\data\dfs

Depois disso, crie dois diretórios para o sistema de arquivos do Hadoop.

mkdir namenode
mkdir datanode

Depois disso, vamos formatar o sistema de arquivos para permitir a leitura e escrita para
o processamento. O comando para a formatação é:

hdfs namenode –format

Feito isso, o sistema de arquivos está pronto para ser utilizado. Agora vamos iniciar o
ambiente do Hadoop para iniciar o processamento.

cd C:\hadoop-3.2.1\etc
.\hadoop\hadoop-env.cmd

Agora vamos iniciar o nó para o mapeamento e a redução da seguinte forma:

cd C:\hadoop-3.2.1\sbin
.\start-dfs.cmd

Depois disso, vamos iniciar o gerenciador Yarn para permitir a visualização dos dados
processados e os eventuais logs de processamento.

.\start-yarn.cmd

Pronto! Nosso ambiente está configurado e pronto para a execução. Para isso, vamos
criar um diretório para a entrada de dados da seguinte forma:

hdfs dfs -mkdir -p input

Depois disso, copie o arquivo discurso.txt para o diretório input da seguinte forma:

hdfs dfs -put C:/Users/Everton/Downloads/discurso.txt input

59
Agora vem a parte mais legal de todas: vamos analisar o discurso e identificar quais são
as palavras mais utilizadas. O mapeamento se encarrega de identificar as palavras utilizadas
enquanto a redução em contar a quantidade de vezes. Isso é feito pelo comando a seguir:

hadoop jar C:/hadoop-3.2.1/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.1.jar


wordcount input output

Figura 4.2 – Resultado do processo de mapeamento e redução (autor)

Para visualizar o resultado, vamos verificar o que foi gerado no sistema de arquivos da
seguinte forma:
hdfs dfs -ls output
Agora podemos verificar o conteúdo de um dos arquivos gerados da seguinte forma:
hdfs dfs -cat output/part-r-00000

#ATENÇÃO#
Todos os comandos devem ser executados com permissão de administrador.
#ATENÇÃO#

Fluxo de dados

Primeiro alguma terminologia. Um trabalho MapReduce é uma unidade de trabalho que


o cliente deseja que seja realizado: consiste nos dados de entrada, no programa MapReduce e

60
na configuração em formação. O Hadoop executa o trabalho dividindo-o em tarefas, das quais
existem dois tipos: mapeie tarefas e reduza tarefas.

Existem dois tipos de nós que controlam o processo de execução do trabalho: um


rastreador de trabalho e um número de gerenciadores de tarefas. O rastreador de tarefas
coordena todos os trabalhos executados no sistema agendamento de tarefas para execução em
rastreadores de tarefas. Os rastreadores de tarefas executam tarefas e enviam relatórios de
progresso ao gerenciador de tarefas, que mantém um registro do progresso geral de cada
tarefa. Se um Se as tarefas falharem, o rastreador de tarefas pode reagendá-lo em um
rastreador de tarefas diferente.

O Hadoop divide a entrada em uma tarefa MapReduce em partes de tamanho fixo


chamadas entrada dividida. O Hadoop cria uma tarefa de mapa para cada divisão, que executa
as definições definidas pelo usuário função de mapa para cada registro na divisão. Ter muitas
divisões significa que o tempo necessário para processar cada divisão é pequeno comparado ao
tempo para processar toda a entrada. Então, se estamos processando as divisões em paralelo, o
processamento é mais bem balanceado por carga se as divisões forem pequenas, pois uma
máquina mais rápida poderá processar proporcionalmente mais divisões ao longo do trabalho
do que uma máquina mais lenta.

Mesmo se as máquinas forem idênticas, processos com falha ou outros trabalhos sendo
executados simultaneamente tornar desejável o balanceamento de carga, e a qualidade do
balanceamento de carga aumenta à medida que as divisões se tornam mais refinadas. Por
outro lado, se as divisões forem muito pequenas, a sobrecarga de gerenciar as divisões e A
criação da tarefa de mapa começa a dominar o tempo total de execução da tarefa. Para a
maioria dos trabalhos, um bom tamanho de divisão tende a ser o tamanho de um bloco HDFS,
64 MB por padrão, embora isso possa ser alterado para o cluster (para todos os arquivos
criados recentemente) ou especificado quando cada arquivo é criado (WHITE, 2015).
O Hadoop faz o possível para executar a tarefa de mapeamento em um nó no qual os
dados de entrada residem HDFS. Isso é chamado de otimização da localidade dos dados. Agora
deve ficar claro porque o tamanho ideal de divisão é igual ao tamanho do bloco: é o maior

61
tamanho de entrada que pode ser garantido para ser armazenado em um único nó. Se a divisão
tivesse dois blocos, seriam improvável que qualquer nó do HDFS tenha armazenado os dois
blocos, portanto, parte da divisão teria que ser transferido pela rede para o nó que executa a
tarefa de mapa, que é claramente menos eficiente do que executar toda a tarefa do mapa
usando dados locais (WHITE, 2015).

As tarefas de mapa gravam sua saída no disco local, não no HDFS. Por que é isso? A
saída do mapa é saída intermediária: é processada reduzindo tarefas para produzir a saída final
e, uma vez concluídas o trabalho, a saída do mapa pode ser descartada. Então, armazená-lo no
HDFS, com replicação, seria um exagero. Se o nó que está executando a tarefa de mapa falhar
antes da saída do mapa foi consumido pela tarefa de redução, o Hadoop automaticamente
execute novamente a tarefa de mapa em outro nó para recriar a saída do mapa. Reduzir tarefas
não tem a vantagem da localização dos dados - a entrada para uma única redução tarefa é
normalmente a saída de todos os mapeadores. No presente exemplo, temos um único reduza a
tarefa alimentada por todas as tarefas do mapa. Portanto, as saídas do mapa classificado têm
para ser transferido pela rede para o nó em que a tarefa de redução está em execução, em que
eles são mesclados e depois passados para a função de redução definida pelo usuário. A saída
da redução é normalmente armazenada no HDFS para maior confiabilidade. Assim, escrever a
saída reduzida faz consomem largura de banda da rede, mas apenas o pipeline de gravação
HDFS normal consome. Todo o fluxo de dados com uma única tarefa de redução é ilustrado na
Figura 2-2. O pontilhado caixas indica nós, as setas leves mostram transferências de dados em
um nó e as setas mostram transferências de dados entre nós. O número de tarefas de redução
não é controlado pelo tamanho da entrada, mas é especificado independentemente (Figura
4.3).

Figura 4.3 – Processo de escalonamento de execução do Apache Hadoop (WHITE, 2015)

62
Quando existem vários redutores, as tarefas de mapeamento particionam sua saída,
cada uma criando uma partição para cada tarefa de redução. Pode haver muitas chaves (e seus
valores associados) em cada partição, mas os registros para cada chave estão todos em uma
única partição. O particionamento pode ser controlado por uma função de particionamento
definida pelo usuário, mas normalmente o particionador padrão - que agrupa chaves usando
uma função hash - funciona muito bem.

O fluxo de dados para o caso geral de várias tarefas de redução é ilustrado na Figura 2-3.
Este diagrama deixa claro por que o fluxo de dados entre mapear e reduzir tarefas é
coloquialmente conhecido como "a reprodução aleatória", pois cada tarefa de redução é
alimentada por muitas tarefas de mapa. O embaralhamento é mais complicado do que este
diagrama sugere, e ajustá-lo pode ter um grande impacto no tempo de execução da tarefa. Por
fim, também é possível ter zero reduzir tarefas. Isso pode ser apropriado quando você não é
necessário embaralhar, pois o processamento pode ser realizado totalmente em paralelo.
Nesse caso, o único A transferência de dados fora do nó ocorre quando as tarefas do mapa são
gravadas no HDFS (WHITE, 2015).

DataCleaner

Data Quality (DQ) é um conceito e um termo comercial que cobre a qualidade dos dados
utilizados para uma finalidade específica. Muitas vezes, o termo DQ é aplicado à qualidade dos
dados usados nas decisões de negócios, mas também pode se referir à qualidade dos dados
usados em pesquisas, campanhas, processos e muito mais. Trabalhar com a qualidade dos
dados normalmente varia muito de projeto para projeto, assim como os problemas na
qualidade dos dados variam muito. Exemplos de problemas de qualidade de dados incluem:

  Dados completos
  Correção de dados
  Duplicação de dados
 Uniformidade / padronização de dados

Uma definição menos técnica de dados de alta qualidade é que esses dados são de alta
qualidade "se forem adequados para os usos pretendidos em operações, tomada de decisão e
planejamento" (WHITE, 2015).

63
A análise da qualidade dos dados (DQA) é o processo (humano) de examinar a qualidade
dos dados para um processo ou organização específico. O DQA inclui elementos técnicos e não
técnicos. Por exemplo, para fazer um bom DQA, você provavelmente precisará conversar com
usuários, pessoas de negócios, organizações parceiras e talvez clientes. Isso é necessário para
avaliar qual deve ser o objetivo do DQA. Do ponto de vista técnico, a principal tarefa em um
DQA é a atividade de criação de perfil de dados, que o ajudará a descobrir e medir o estado
atual dos dados.

O que é criação de perfil de dados?

A criação de perfil de dados é a atividade de investigar um armazenamento de dados


para criar um 'perfil' dele. Com um perfil do seu armazenamento de dados, você estará muito
melhor equipado para realmente usá-lo e melhorá-lo.

A maneira como você cria os perfis geralmente dependem se você já tem algumas ideias
sobre a qualidade dos dados ou se não tem experiência com o armazenamento de dados
disponível. De qualquer maneira, recomendamos uma abordagem exploratória, porque,
embora você ache que há apenas certa quantidade de problemas que precisa procurar, é a
nossa experiência (e o raciocínio por trás de muitos dos recursos do DataCleaner) que é tão
importante quanto verifique esses itens nos dados que você acha que estão corretos!
Normalmente, é barato incluir um pouco mais de dados em sua análise e os resultados podem
surpreendê-lo e poupar tempo! O DataCleaner compreende (entre outros aspectos) um
aplicativo de desktop para criar perfis de dados em praticamente qualquer tipo de
armazenamento de dados (WHITE, 2015).

O que é um armazenamento de dados?

Um armazenamento de dados é o local em que os dados são armazenados. Geralmente,


os dados corporativos residem em bancos de dados relacionais, mas existem inúmeras
exceções a essa regra. Para compreender diferentes fontes de dados, como bancos de dados,
planilhas, arquivos XML e até aplicativos comerciais padrão, empregamos o termo abrangente
armazenamento de dados. O DataCleaner é capaz de recuperar dados de uma ampla variedade
de armazenamentos de dados. Além disso, o DataCleaner também pode atualizar os dados da
maioria desses armazenamentos de dados.

Um armazenamento de dados pode ser criado na interface do usuário ou através do


arquivo de configuração. Você pode criar um armazenamento de dados a partir de qualquer
tipo de fonte, como: CSV, Excel, banco de dados Oracle, MySQL, etc (Figura 4.4).

64
Figura 4.4 – Acessos a dados

Armazenamento de dados composto

Um armazenamento de dados composto contém vários armazenamentos de dados. A


principal vantagem de um armazenamento de dados composto é que ele permite analisar e
processar dados de várias fontes no mesmo trabalho.

O que é monitoramento de dados?

Argumentamos que a criação de perfil de dados é idealmente uma atividade


exploratória. O monitoramento de dados normalmente não é! As medidas que você faz durante
a criação de perfil muitas vezes precisam ser verificadas continuamente para que suas
melhorias sejam aplicadas com o tempo. É disso que trata o monitoramento de dados.
As soluções de monitoramento de dados são fornecidas em diferentes formas e
tamanhos. Você pode configurar seu próprio volume de trabalhos agendados que são
executados todas as noites. Você pode criar alerta em torno dele que enviam e-mails se uma

65
medida específica ultrapassar os limites permitidos ou, em alguns casos, você pode tentar
descartar o problema completamente aplicando os princípios FTR (First-Time-Right-Right) que
validam dados no momento da entrada. Por exemplo, em formulários de registro de dados e
muito mais.

A partir da versão 3, o DataCleaner agora também inclui um aplicativo da web de


monitoramento, apelidado de "monitor DataCleaner". O monitor é um aplicativo de servidor
que oferece suporte à orquestração e agendamento de tarefas, além de expor métricas por
meio de serviços da Web e por cronogramas e relatórios interativos. Ele também suporta o
processo de configuração e criação de tarefas por meio de assistentes e páginas de
gerenciamento para todos os componentes da solução. Como tal, gostamos de dizer que o
monitor DataCleaner fornece uma boa base para a infraestrutura necessária em um hub de
gerenciamento de dados mestre.

O que é gerenciamento de dados mestre (MDM)?

O gerenciamento de dados mestre (MDM) é um termo muito amplo e é visto


materializado de várias maneiras. Para o escopo deste documento, ele serve mais como um
contexto de qualidade dos dados do que como uma atividade que realmente direcionamos com
o DataCleaner.

Os objetivos gerais do MDM são gerenciar os dados importantes de uma organização.


Por "dados mestre" nos referimos a "uma única versão da verdade", não os dados de um
sistema específico, mas, por exemplo, todos os dados de clientes ou produtos de uma empresa.
Normalmente, esses dados são dispersos por vários armazenamentos de dados; portanto, uma
parte importante do MDM é o processo de unificar os dados em um único modelo (WHITE,
2015).

Obviamente, outra das questões muito importantes a serem tratadas no MDM é a


qualidade dos dados. Se você simplesmente reunir, por exemplo. "todos os dados do cliente"
de todos os sistemas de uma organização, você provavelmente verá muitos problemas de
qualidade dos dados. Haverá muitas entradas duplicadas, haverá variações na maneira como os
dados do cliente são preenchidos, haverá identificadores diferentes e até níveis diferentes de
granularidade para definir "o que é um cliente?". No contexto do MDM, o DataCleaner pode
servir como o mecanismo para limpar, transformar e unificar dados de vários datastores na
visualização única dos dados mestres.

A Ferramenta DataCleaner

66
Vamos iniciar o trabalho com a ferramenta. Para isso, realize o download na pagina do
fabricante faca a instalação em seu computador. AO iniciar a aliccao você devera ter uma tela
parecida com a seguir (Figura 4.5).

Figura 4.5 – Interface principal da ferramenta

Depois disso, clique em um dos exemplos prontos chamado Customers. Ele vai trazer
um conjunto de dados para analisarmos. O resultado deve ser como o da figura a seguir (Figura
4.6).

67
Figura 4.6 – Dados utilizados para análise

Feito isso, clique em cima desse conjunto de dados para ver sua estrutura. A figura deve
ser algo com a seguir (Figura 4.7).

Figura 4.7 – Estrutura dos dados

68
Agora, vamos realizar uma das mais variadas análises disponíveis dentro da ferramenta.
Para isso, expanda o meu Analyzer (Figura 4.8).

Figura 4.9 – O menu analyzer

Selecione a funcionalidade “Characters set distributiuon” e arraste para dentro da área


principal. Conecte-a, via botão direito, com o conjunto de dados e cliente em Execute (Figura
4.10).

69
Figura 4.10 – A conexão entre o conjunto de dados e a funcionalidade

Após a execução, você deve ter um resultado parecido com esse que mostra a
distribuição de caracteres dentro das colunas do conjunto de dados (Figura 4.11).

Figura 4.11 – A distribuição de caracteres

70
Vamos realizar outra análise. Selecione a funcionalidade Value distribution, conecte-a e
ciente em executar (Figura 4.12).

Figura 4.13 – A distribuição de valores

Você deve ter um resultado parecido com o da figura a seguir (Figura 4.14).

Figura 4.14 – A distribuição de valores

71
O DataCleaner permite o entendimento dos dados antes de iniciar propriamente a
analise, criação de modelos, etc. É uma ferramenta de grande utilidade e deve estar em sua
caixa de ferramenta como cientista de dados.

#REFLITA#
O quão importante é analisar os dados antes de iniciar projetos de ciência de
dados?
#REFLITA#

Considerações Finais

Neste estudo aprendemos sobre duas ferramentas para lidar com grandes quantidades
de dados; o Apache Hadoop e o DataCleaner. Ambas devem ser consideradas em projetos que
envolvam muitos dados para permitir o processamento e o tratamento das informações
coletadas.

72
UNIDADE 5 – Gerenciamento

Objetivos de aprendizagem

  Entender como colocar as ferramentas para funcionar


  Entender os cenários de utilização
 Entender como evoluir nos assuntos

Colocando tudo junto

Todas as ferramentas que vimos devem fazer parte do seu conjunto de ferramentas.
Cada uma delas é aplicada a um cenário especifico e resolvem problemas focados. Entretanto,
elas desempenham um papel importante juntas e devem ser consideradas. Por exemplo,
quando falamos em tratamento de dados, utilizamos o DataCleaner. Quando falamos de
processamento massivo de dados, Apache Hadoop. Quando falamos da criação de Dashboards,
Tableau e Power BI. Quando falamos em ciência de dados, Jupyter e RStudio. Cada uma é
destinada a um tipo de aplicação.

Cenários comuns de gerenciamento

A seguir, vamos listar alguns cenários comuns de cada uma das ferramentas que
estudamos. A ordem neste momento não é importante.

 RStudio
o Análise de dados, criação de modelos, criação de gráficos em R
  Jupyter Notebook
o Análise de dados, criação de modelos, criação de gráficos em Python
 Apache Hadoop

o Mapeamento e redução, processamento em paralelo, fluxo de trabalho para grandes
volumes de dados
  DataCleaner
o Entendimento dos dados, análise, limpeza, transformação e correção
  Power BI
o Criação de dashboards, análises, publicações para usuários finais
  Tableau
o Criação de dashboards, análises, publicações para usuários finais

73
Cenários comuns de gerenciamento

Uma das formas de gerenciar esse conjunto de ferramentas é coloca-las em um


processo. Uma sugestão que deixamos para você é o seguinte (Figura 5.1):

DataCleaner Apache Hadoop RStudio e Jupyter Power BI e


Tableau

• Análise • Processamento • Criação de • Criação de


• Limpeza • Fluxos de modelos Dashboards
• Correação trabalho • Criação de
gráficos

Figura 5.1 – Processo de gerenciamento de ferramentas

Esse processo pode ser adaptado ou usado parcialmente conforme a necessidade de


cada cenário e problemas.

#REFLITA#
Processos e métodos são importantes para um cientista de dados?
#REFLITA#

Considerações Finais

Nesse estudo aprendemos sobre coo gerenciar esse conjunto de ferramentas e como
colocá-las em uma forma ordenada para que cada uma realize o seu trabalho. Ao longo de todo
o nosso estudo vimos muitas ferramentas e conceitos para a ciência de dados. Esperamos que
isso tenha sido útil para você e que permita aprofundar nos estudos.

74
Referências

WHITE, Tom; Hadoop: The Definitive Guide: Storage and Analysis at Internet Scale 4th Edição,
O'Reilly Media, 2015

RUSSO, Marco; FERRARI, Alberto; The Definitive Guide to DAX: Business intelligence for
Microsoft Power BI, SQL Server Analysis Services, and Excel 2nd Edição, Microsoft Press; Edição:
2, 2019

SLEEPER, Ryan; Practical Tableau: 100 Tips, Tutorials, and Strategies from a Tableau Zen Master
1st Edição, Editora: O'Reilly Media; Edição: 1, 2018

FAWCETT, Tom; PROVOST, Foster; Data Science para Negócios: O que você precisa saber sobre
mineração de dados e pensamento analítico de dados, Alta Books, 2018.

75
Recursos

Blogs:
Data Science Central: http://www.datasciencecentral.com
KDD Nuggets: http://www.kdnuggets.com
Artigos sobre R: http://www.r-bloggers.com
Python Brasil: http://python.org.br
Ciência e Dados: http://www.cienciaedados.com

Estatística:
Statistics: http://www.statistics.com
Simply Statistics: http://simplystatistics.org

Machine Learning:
Deep Learning Book: http://deeplearning.net/
Deep Learning Book Brasil: http://www.deeplearningbook.com.br

76

Você também pode gostar