Please enable JavaScript.
Coggle requires JavaScript to display documents.
Power BI para Data Science DSA Data Science Academy - Coggle Diagram
Power BI para Data Science
Data Science Academy
1. Introdução
Dados x
Informação x
Conhecimento x
Inteligência
1. Dado
Por si só não tem valor
Representação de símbolos ou caracteres
2. Informação
Dado com valor
Transformar, trabalhar e entregar a informação
Dados processados e analisados na busca de resolução de problemas
3. Conhecimento
Chave para desenvolver a inteligência
4. Inteligência
Está acima de conhecimento
Alguns chamam de sabedoria
Capacidade de resolver problemas, usando conhecimentos, através das informações disponíveis, usando adaptações, comparações, analogias, etc.
Nosso objetivo é começar com os
dados (1)
, transformá-los em
informações (2)
e
conhecimento (3)
e permitir que tomadores de decisão usem sua
inteligência (4)
para resolver problemas, a partir do conhecimento adquirido.:!:
Business Intelligence (BI)
ou Inteligência de Negócios
Todas as atividades necessárias para que uma empresa t
ransforme dados brutos em conhecimento
Esforços da empresa para
entender o que sabe
e o que não sabe de sua própria existência e operações
Ser capaz de
aumentar os lucros e aprimorar sua vantagem competitiva
Os softwares de BI têm sido fundamentais nesta progressão constante para um conhecimento mais aprofundado sobre negócios, concorrentes, clientes, indústria, mercado e fornecedores, para citar apenas alguns possíveis objetivos métricos.
Mas à medida que as empresas crescem e o
volume de dados aumenta, a captura, o armazenamento e a organização de informações tornam-se muito mais complexas para serem totalmente tratados por seres humanos
. Exatamente
aí que entra Machine Learning e Inteligência Artificial.
:!:
Software de BI x
Soluções de Big Data Analytics
O software de BI
lida com os dados de tamanho típico, encontrados na maioria das empresas sejam elas grandes ou pequenas
Aplicações de
Big Data Analytics
processam análise de dados para conjuntos de dados muito grandes, medidos em petabytes (PBs) e esse
grande volume de dados
permite realizar
análise preditiva com precisão cada vez maior
.
Essa é uma das principais diferenças entre o
BI tradicional
e
Data Science
Business Intelligence x
Data Science
:green_cross:
Análise:!:
Descritiva :pencil2:
:
O que
aconteceu? (BI Tradicional)
Preditiva :pencil2:
: O que acontecerá? (Ciência de Dados). Onde entra o Machine Learning
Diagnóstica
:
Por que
aconteceu? (BI Tradicional)
Prescritiva
: O que deve ser feito? (Ciência de Dados)
Para cada problema de negócio utilizo uma ou mais das análises
Big Data Analytics x
Machine Learning
:green_cross:
Subáreas da Ciência de Dados
Big Data Analytics:
Extrair conhecimento a partir dos dados (Big Data) aplicando técnicas de análise (Data Science). ANÁLISE DESCRITIVA.
Machine Learning:
Treinar algoritmos para encontrar os padrões nos dados de forma automática e então fazer previsões. ANÁLISE PREDITIVA.
2. Primeiros
Passos
Power BI
Desktop
Workflow
Definição do Problema de Negócio:
"
Se você não sabe para onde vai, qualquer caminho serve.
"
Para escolher o procedimento e as ferramentas adequadas preciso saber o problema que espero resolver.
Se estou vendo o
passado
, irei utilizar o
BI
(
análise descritiva
).
Se quero trabalhar com
previsão
, começo a trabalhar com
Data Science
(
análise preditiva
)
Preparação dos Dados (Query Editor)
Modelagem dos Dados (Relationship View, Data View)
Visualização dos Dados (Report View)
3. Business
Intelligence
no Power BI
Você é pago para resolver problemas :!:
Resolver problemas de negócio, entregar soluções e ajudar a empresa ou cliente a alcançar seus objetivos e estratégias
"Você não ganha para trabalhar, você ganha para resolver problemas, criar soluções e encantar clientes. O trabalho é o meio, não o fim". (Ricardo Amorim)
Power BI é o meio. É apenas uma ferramenta que ajuda a resolver problemas. :warning:
Dicas
para
resolver problemas
Quando se deparar com mensagens de erro, analise!
Quando se deparar com mensagens de erro, pesquise!
Não sabe? Aprenda!
Viver em modo de aprendizagem
Desenvolva habilidades com foco na solução de problemas
Observe as perguntas que uma pessoa faz! Elas dizem muito mais do que as respostas! Saber fazer as perguntas certas. Buscar a sensibilidade do que a empresa precisa.
BI é um termo criado por Gartner definido como "um termo genérico que inclui aplicações, infraestrutura, ferramentas e melhores práticas que permite o acesso e análise de informações para melhorar e otimizar decisões e desempenho". :star:
BI é um conceito!
É um conjunto de
técnicas
e
ferramentas
que permite que a organização utilize a análise das informações para o suporte a tomada de decisão. :pencil2:
Envolve
técnicas
,
ferramentas
e
procedimentos
para transformar dados brutos em informação e conhecimento para os tomadores de decisão
Não se apaixonar pelas ferramentas. É importante estar próximo das áreas de negócio.
Modelo de
Organização dos
Dados no BI
Definir o Modelo
Criar o Modelo
Carrega os Dados
Organiza primeiro os
dados e carrega depois (
ETL
)
Modelo de
Organização dos
Dados em
Data Science
Carrega os Dados
Organiza depois
Com Big Data Analytics (
ELT
)
Precisamos carregar os dados de uma forma que facilite a extração de relatórios e a entrega dos resultados aos tomadores de decisão :!:
Precisamos de um modelo de organização dos dados :!:
Para trabalhar de forma eficiente e profissional com o Power BI, pode ser necessário criar um modelo de organização dos dados. Esse modelo permite realizar análises por diferentes ângulos, sob demanda e orientada à solução dos problemas de negócio
Ex:
Uma tabela dimensão com tudo de LOJAS, outra dimensão só com VENDEDOR, outra dimensão com PRODUTOS, outra dimensão só com TEMPO. Todas as
DIMENSÕES
para alimentar a tabela
FATO
VENDAS
Posso ter mais de uma tabela FATO
Ajudar a analisar na granularidade. Consigo subir ou descer de nível. DRILL-UP e DRILL-DOWN
Qual o melhor
modelo de
organização
dos dados :!?:
Compreender o processo de negócio
Fazer muitas perguntas. Saber explicar o processo.
Ex:
Venda de produtos eletrônicos
Definir o
nível de detalhamento
(granularidade)
Dia, Mês, Hora, Segundo?
Ex:
Total de produtos mais vendidos por dia
Identificar as
dimensões necessárias
Ex:
Fabricante, Produto, Loja, Tempo
Criar o Schema
É o modelo implementado no banco de dados
Ex:
Modelo criado no DW (Data Warehouse) ou no Power BI (mais simples)
Modelos
1. Star Schema
Tabelas DIM são as
dimensões
que representam as entidades em nosso problema de negócio e que
classificam os dados
!
O analista que define as dimensões, mas antes necessita realizar a interpretação do problema de negócio. Ex: Produto, funcionário, etc.
Tabela
FATO
representa um fato, um detalhe, por exemplo, uma venda. Cada fato acontece a partir da junção das dimensões.
2. Snowflake
O curso de
Design e Implementação de Data Warehouses
na DSA oferece um programa completo de criação de DW em nuvem e localmente, para extração de dados e
posterior análise.
Livro recomendado: The Data Warehouse Toolkit (Ralph Kimball)
O objetivo é
criar uma estrutura de organização, que facilite a compreensão dos dados
Normalmente o modelo de dados é criado em um Data Warehouse (DW), um banco de dados que serve de fonte para processos de BI.
As empresas extraem dados de sistemas transacionais, como CRM ou ERP, consolidam os dados e carregam no DW seguindo o modelo adotado. As ferramentas de BI podem conectar no DW e extrair os dados para análise
:red_flag:
Ferramentas de
Modelagem
erwin
Archi
: :!:
Gratuíto, profissional, utilizado no curso arquiteto de dados da DSA
SqlDBM
(SLQ Database Modeler): Uma das mais completas do mercado
Toad
pgModeler
:
Gratuíta
Enterprise Data Modeling
IBM InfoShere Data Architect
: :!:
Proprietária, utilizada no curso arquiteto de dados DSA. Trial por 90 dias.
MODELANDO :check:
1.Criar as tabelas
DIM
(dimensão)
1.1.Duplicar a tabela principal para gerar as tabelas DIM;
1.2.Cada tabela DIM com suas características;
1.3.Criar um grupo (pasta) para separar as tabelas DIM (botão direito onde tem as tabelas no Power Query | Criar grupo)
Criar a tabela
FATO
2.1.Deixar os campos com fato (vendas por exemplo)
2.2. Deixar os campos (chaves) que irão se relacionar com as tabelas DIM
4. Modelagem,
Relacionamento e
DAX
DAX:
Data Analytics Expressions
:warning: Cardinalidade
Muitos
para
Muitos
Criar tabela intermediária (middle man) para fazer o relacionamento, pois é mais seguro do que fazer o relacionamento muitos para muitos diretamente entre duas tabelas.
Fazer o relacionamento de forma manual
Em direção de filtros selecionar "Ambas", realizando o filtro cruzado.
Filtro cruzado (Cross Filter Direction) na tabela do meio
Na tabela do meio (tabela dimensão para as outras duas) fazer o relacionamento cruzado (ambas) nas duas relações.
Coluna
Calculada
Operação que se faz em cada linha de uma tabela
Medida
Visão resumida, sumarizada
4 fases do
aprendizado
1.Incompetência | Inconsciente
Você não sabe o que não sabe!
Nunca ouviu falar sobre um determinado assunto
2. Incompetência | Consciente
Você sabe o que não sabe!
3. Competência | Consciente
Você sabe o que sabe!
Pode levar meses ou anos.
4. Competência | Inconsciente
Você sabe de forma inconsciente!
5. Limpeza,
Transformação
Não consigo utilizar a transformação preencher para baixo se não tiver nada nas linhas inferiores. Sendo assim, antes de usar a função é necessário substituir o valor vazio por qualquer valor (null, por exemplo)
Na dúvida do que fazer com um registro errado, elimine a linha. É mais prudente.
6. Gráficos e Mapas
Bons profissionais criam gráficos visualmente atraentes
Ótimos profissionais criam gráficos precisos
Excelentes profissionais criam gráficos visualmente atraentes, precisos e eficientes, capazes de mostrar de forma sumarizada em uma única visualização aquilo que os dados querem dizer e assim ajudar os tomadores de decisão!
Data
Visualization
Framework
Gráficos
criados
em camadas
Data Layer
Mapping Layer
Graphics Layer
O que devemos nos preocupar na construção de um gráfico:
1.Tipo;
2.Formatação;
3.Precisão;
4.Se está utilizando o framework;
5.Se está trabalhando com dados numéricos ou não numéricos.
Não é o tipo de dado que define o gráfico a ser utilizado, mas o que vou entregar para minha audiência, como vou apresentar os dados.
O que você
quer mostrar :question:
Comparação
Por item
Por tempo
Distribuição
Número de variáveis
Composição
Varia ao longo do tempo
Estática
Relação
Duas variáveis
Três variáveis
Gráfico de Dispersão
: para apresentar a relação entre duas variáveis
Sempre que for incluir um gráfico ou dashboard gerar uma nova versão, podendo ser em outra aba do Power BI. Colocar "Versão 1.0: Título do Gráfico"
Ferramentas para
criação de protótipos
wireframe.cc
mockuptiger.com
moqups.com
também pode ser utilizado o Visio
7. Dashboards (Painel)
Interativos
Gráficos e Mapas em uma
única visualização
chama-se Dashboard
Dashboard é uma exibição visual das informações mais importantes necessárias para alcançar um ou mais objetivos, consolidado e organizado em uma única tela para que as informações possam ser monitoradas e/ou analisadas ao mesmo tempo.
Dashboard é uma ferramenta de gestão e visualização de informações que é usado para monitorar indicadores de desempenho (KPI), métricas e outros pontos de dados relevantes para o negócio, departamento ou projeto.
Com o uso de visualização de dados (gráficos, mapas, tabelas e elementos visuais), o Dashboard simplifica o complexo processo de análise e provê ao usuário uma visão clara do que já ocorreu, da situação atual ou eventuais previsões.
Melhores práticas no
design de Dashboards
O Dashboard deve se encaixar em uma tela, mas pode haver barras de rolagem para tabelas com muitas linhas ou gráficos com muitos pontos de dados
Idealmente,o Dashboard deve ser interativo e pode fornecer funcionalidades como filtragem e drill-down
Pode ser usado para encontrar correlações, tendências, outliers (anomalias), padrões e condições de negócios em dados
Os dados usados em uma ferramenta de análise visual são geralmente dados históricos (Business Intelligence). No entanto, é possível construir Dashboards para visualização de dados em tempo real ou mesmo previsões
Evite colocar diferentes dimensões de tempo no mesmo Dashboard
O Dashboard deve ajudar a identificar e monitorar indicadores chave de desempenho (KPI’s)
Não use muitos gráficos e evite gráficos que sejam complexos e/ou dificultam a interpretação
Deve haver harmonia entre as cores dos gráficos e a mesma informação deve, idealmente, ser representada pela mesma cor
Use a mesma fonte em todos os textos
Os gráficos devem estar alinhados na vertical e horizontal
Use legendas somente se for realmente necessário para interpretação do gráfico
Menos é mais! Transmita a informação de forma simples e objetiva
O Power BI Desktop não permite criar Dashboards :!?:
São criados
relatórios
no Power BI Desktop.
Dashboards
são criados na versão online. Diferenciação de nomenclaturas pela Microsoft por questões comerciais.
Se a base não contém as informações quer permitam responder aos questionamentos dos tomadores de decisão, então é necessário informar aos tomadores de decisão que algumas das perguntas não podem ser respondidas e buscar como responder através de outras fontes de dados.
Caso não saiba do que se trata uma determinada coluna, não a utilize, não suponha, caso contrário você estará assumindo um risco de apresentar uma informação incorreta para os tomadores de decisão. Na dúvida não utilize o campo e busque a informação com os especialistas. :warning:
Divisão em grupos
no Power BI :check:
1.Vai no menu dados na esquerda da tela
2.Seleciona a coluna que deseja utilizar para gerar os grupos de dados
4.Selecionar "novos grupos de dados" no menu
5.Nomeia o grupo. Ex: Faixa etária
6.Em tipo de grupo seleciona "lista"
7.Selecionando os grupos de dados e nomeando os grupos
OBS:
Posso utilzar a fórmula "QUARTIL.INC" do Excel para gerar o quartil dos grupos
3.Seleciona "ferramentas de coluna"
Alteração na estrutura dos dados diferente do Power Query quando é realizada a alteração nos dados
8. Power BI Mobile
É possível ter acesso ao
Power BI Service
, que é a
versão online
para quem tem conta de empresa e estudante. É a versão paga do Power BI.
Power BI for HoloLens 2 (óculos para realidade aumentada) e Realidade Aumentada. Exemplo de telas virtuais na frente de elevadores indicando o status de manutenção dos mesmos, sendo visualizado pelo HoloLens.
Caso não tenha o smartphone no qual quer testar o APP, é possível instalar um emulador.
Precisa de conta para logar na microsoft
9. Power BI e Google Analytics
1.Obter dados;
Serviços online;
Google Analytics.
Google Analytics é uma plataforma gratuita que coleta e compila todo tipo de dados relacionados aos visitantes do site, e transforma esse compilado em relatórios completos e fáceis de entender
10. Visualização de dados de
banco de dados relacionais
O que são banco de dados relacionais :question:
É um tipo de banco de dados que armazena e fornece acesso a ponto de dados relacionados entre si.
Para garantir que os dados sejam sempre precisos e acessíveis, os bancos de dados relacionais seguem determinadas regras de integridade.
Exemplo:
Especificar que linhas duplicadas não são permitidas em uma tabela para eliminar o potencial de informações errôneas que entram no banco de dados.
Bancos de dados relacionais são baseados no modelo relacional, uma maneira intuitiva e direta de representar dados em tabelas.
Em um banco de dados relacional, cada linha na tabela é um registro com uma
ID exclusiva chamada chave
. As colunas da tabela contém atributos dos dados e cada registro geralmente tem um valor para cada atributo, facilitando o estabelecimento das relações entre os pontos de dados.
Modelo Lógico (design) x
Model Físico (como estão na máquina)
O modelo relacional significa que as estruturas de dados lógicas: tabelas de dados, views e índices são separadas das estruturas de armazenamento físico.
Essa separação significa que os Administradores de Banco de Dados ( DBA - Database Administrators ) podem gerenciar o armazenamento de dados físicos sem afetar o acesso a esses dados como uma estrutura lógica. Por exemplo, a renomeação de um arquivo de banco de dados não renomeia as tabelas armazenadas nele.
Banco de Dados x
Sistemas Gerenciadores de Banco de Dados
SGBDs (Sistemas Gerenciadores de Banco de Dados):
SQL Server, Oracle, PostegreSQL, MySQL, Sybase, IBM DB2.
Cada SGBD pode gerenciar um ou mais banco de dados
Banco de dados é um arquivo físico, armazenado em computador em formato binário.
SGBD faz a conversão entre modelo lógico e físico. Temos as interfaces no SGBD que são traduzidas do modelo físico para nossa melhor compreensão.
Bancos de Dados Relacionais x
Bancos de Dados Não-Relacionais x
Data Stores
Existe curso na DSA no curso de arquiteto de dados
Relacionais já existe há pelo menos 4 décadas.
SGBD de
Bancos de Dados Relacionais
. Para dados que tem relação:
Oracle, SQL Server, PostegreSQL, MySQL
SGBD de
Bancos de Dados Não-Relacionais
. Consulta veloz dos dados. Não estou preocupado na relação dos dados. Posso por exemplo armazenar os currículos em formato original ao invés de tabelas:
MongoDB
, Apach Cassandra, Apache Hbase, Amazon DynamoDB.
Data Stores para armazenar grande volume de dados:
Apache Hadoop
, Amazon S3, Cassandra File System, GlusterFS, Lustre.
Por que Cientistas de Dados Devem
Conhecer o Hadoop?
Hadoop é um framework composto de uma camada de sistemas de arquivos distribuído
(HDFS)
e uma camada de programação em paralelo, o
MapReduce
. Embora no fim das contas as duas tecnologias sirvam para
armazenar e processar dados,
fazem isso de formas bem diferentes e com propósitos diferentes
Bancos de dados relacionais (
RDBMS
– Relational Database Management Systems).
Em um banco de dados relacional todos os dados são guardados em tabelas. Estas por sua vez são um conjunto de linhas e colunas. São os relacionamentos entre as tabelas que as tornam “relacionais”.
Com o surgimento do Big Data e esta imensa quantidade de dados de diferentes categorias, gerados em diferentes
velocidades, volumes e formatos
, novos modelos de gestão de dados começaram a surgir. Isto levou ao crescimento por exemplo de
soluções NoSQL, bancos de dados não relacionais
. Muita dessa evolução se deve ao crescimento do Big Data
ACID
(o conjunto de
propriedades
que garante que as transações de banco de dados sejam processadas de forma confiável).
A
tomicidade |
C
onsistência |
I
solamento |
D
urabilidade.
Se você tiver aplicações que lidam com uma grande quantidade de consultas complexas, transações de banco de dados e análise de dados de rotina, você provavelmente vai preferir utilizar um banco de dados relacional
Hadoop
é uma solução
open-source
de processamento de dados e tem como principal objetivo o processamento de dados com alto volume e variedade por meio de computação de larga escala
Hadoop
pode ser uma ótima alternativa para tratar, processar e agrupar grandes volumes de dados estruturados, semiestruturados e não-estruturados. Como o Hadoop pode receber dados em praticamente qualquer formato
O
Hadoop
utiliza clusters para armazenar os dados, através de nodes que oferecem alta capacidade de computação quando combinados em distribuição paralela. Este tipo de solução reduz dramaticamente os custos envolvidos no armazenamento de Big Data
O
Hadoop
é o local para armazenar grandes volumes de dados, normalmente não estruturados (embora ele possa armazenar dados estruturados) que podem vir de dados gerados em tempo real ou mesmo de processo em batch vindos de bancos de dados relacionais
10 argumentos
para ajudá-lo na decisão
de aprender ou não Hadoop
1- Hadoop é open source.
2- Hadoop oferece o framework mais completo para armazenamento e processamento de Big Data.
3- A líder mundial em bancos de dados relacionais, a Oracle, oferece soluções de Big Data Analytics com Hadoop.
4- A líder mundial em sistemas operacionais, a Microsoft, oferece soluções corporativas em nuvem, com Hadoop.
5- O Hadoop é mantido pela Apache Foundation, mas recebe contribuição de empresas como Google, Yahoo e Facebook.
6- Um Cientista de Dados deve conhecer bem o paradigma de processamento MapReduce, uma das essências do Hadoop.
7- Hadoop normalmente aparece como um dos skills mais procurados em um Cientista de Dados.
8- Por se tratar de uma tecnologia avançada, faltam profissionais de Hadoop no mercado.
9- Hadoop é usado por algumas das maiores empresas do mundo.
10- O Big Data ainda está na sua infância. Onde vamos armazenar todos esses dados?
11. Estatística Fundamental
para Data Science
DAX PATTERNS
Estatística x Data Science
Matemática e Estatística
Ciência da Computação
Conhecimento das Áreas de Negócio
O que é Estatística :question:
Conjunto de
métodos usados para analisar dados
, podendo ser aplicada em todas as áreas do conhecimento humano. Auxilia na
compreensão dos eventos
que nos cercam, aprimorando nosso processo de
tomadas de decisões
em ambientes de incertezas e variações.
Pode ser pensada como a ciência de aprendizagem a partir dos dados.
Estatística e a Quarta
Revolução Industrial
1.0 Revolução Agrícula
2.0 Revolução Industrial
3.0 Revolução da Tecnologia
4.0 Revolução Digital
Dados
são a matéria-prima
E o que precisamos para obter informação, conhecimento e inteligência a partir dos dados :question:
Técnicas de análise de dados,
como as que são fornecidas pela Estatística :!:
Principais áreas
da Estatística
1. Probabilidade
Estudo da Aleatoriedade e da Incerteza
.
Modelos de machine learning utilizam.
2. Estatística Descritiva
Utiliza métodos para
coleta, organização, apresentação, análise e síntese de dados
obtidos em uma população ou amostra.
Usado no início de um projeto de ciência de dados.
3. Estatística Inferencial
Processo de
estimar informações
sobre uma população a partir dos resultados observados em uma amostra.
Pesquisa eleitoral. Machine Learning.
Big Data Analytics
é o termo que se refere a
análise estatística de grandes quantidades de dados
, para que se possa extrair informação relevante para a compreensão da situação atual e a tomada de decisões.
População e Amostra
Sempre que você se deparar com um conjunto de dados, uma das primeiras perguntas a ser feita é:
Qual é minha população e qual a minha amostra :question:
População representa todos os elementos distintos
Amostra é uma parte da população
Ex:
Preparo de Sopa
. Quando vou provando enquanto preparo estou colhendo amostras, que são partes representativas da população.
Como garantir que a amostra representa
fielmente a população :question:
Randomização
.
"Mexer a sopa" para extrair uma nova amostra
Técnicas de
Amostragem
Amostragem
usa a coleta, organização, apresentação e análise dos dados como meio de estudar os parâmetros de uma população
Censo
é a técnica que seleciona e avalia
todos os elementos da população
quando se realiza uma pesquisa. Utilizado com menor frequência quando comparado com amostragem. Caro demais e leva muito tempo.
Os dados devem ser tratados
com muito cuidado, de modo
que as conclusões
reflitam a realidade :!:
Coletar a Amostra
Tamanho da Amostra
Randomização dos dados que irão compor a Amostra
Amostra
Probabilística x
Não Probabilística
Probabilística
Elementos são selecionados de forma aleatória
Amostragem Simples ao Acaso,
Amostragem Sistemática,
Amostragem por Conglomerado,
Amostragem Estratificada,
Reamostragem (Boostrap)
Não Probabilística
Amostragem a Esmo,
Amostragem Intencional,
Amostragem por Voluntários
Conveniência
Parâmetro x Estatística
Parâmetro
Característica da população
Valores calculados usando dados da população
Média da população, desvio médio
Estatística
Característica sobre a amostra
Valores calculados usando dados da amostra
Estatística Inferencial
Realiza deduções e conclusões sobre a população, baseadas nos resultados obtidos da análise da amostra.
AMOSTRA usada para calcular
ESTATÍSTICA
(% da
AMOSTRA
que prefere a marca de sapatos X), usado para estimar
PARÂMETRO
(% da
POPULAÇÃO
que prefere a marca de sapatos X) usado para compreender a POPULAÇÃO.
Dados Primários x
Dados Secundários
Dados
Valores coletados através de observação e mediação
Não fazem sentido se não forem colocados em um contexto
Obtidos de 2 (duas)
fontes principais
1. Dados Primários
Coletados por que quem faz a análise
Confiáveis
Possuem maior controle
Vantagens:
Confiabilidade
Qualidade
Controle das informações
Acertabilidade dos resultados
Dados atualizados
Desvantagens:
Alto custo
Demanda maior tempo
Equipe grande
2. Dados Secundários
Coletados por terceiros
Não confiáveis
Não possuem muito controle
Vantagens:
Baixo custo
Rapidez
Existência de diversas fontes
Diversidade de informações para quantificação de questões
Desvantagens:
Falta de controle
Dados inadequados
Diversidade na classificação dos dados
Dados desatualizados
Fontes não confiáveis
Dificuldade de reproduzir um estudo obtendo os mesmos resultados
Utilizado na maior parte dos casos
Informação
Dados que são transformados em fatos relevantes e usados para um propósito específico
Transformado em conhecimento
Observações x
Variáveis
Observação
:
Registro, Ocorrência de evento, Instância ou
Linha em uma tabela
Variáveis
:
Atributo, Característica ou
Coluna em uma tabela
Tipos de
Variáveis
Qualitativas
:
Utilizam termos
descritivos
para descrever algo de interesse.
Ex
: cor dos olhos, estado civil, religião, etc
Nominais
:
Profissão, Sexo, Religião
Ordinais
:
Escolaridade, Classe Social, Fila
Quantitativas
:
Representadas por valores numéricos que podem ser
contatos
ou
medidos
. Ex: número de crianças em uma sala de aula, peso, idade.
Discretas
:
Número de filhos, Número de carros, Número de acessos
Contínuas
:
Altura, Peso, Salário
Atenção :!:
Idade
pode ser
quantitativo
.
Ex
: 11, 15, 21, 54 anos
Idade
pode ser
qualitativo
(ordinal):
Ex
: 0 - 5 anos, 6 - 12 anos, 13 - 18 anos, 19 - 28 anos
É muito importante classificar os dados de forma correta, pois isso permitirá a você escolher o melhor teste estatístico a ser utilizado na análise de dados :!:
Medidas de Posição
Valores que
representam a tendência de concentração dos dados observados
. As mais importantes são as
medidas de tendência central.
As 3 medidas de tendência central mais utilizadas são:
média aritmética, moda e mediana
Média
: soma de todos os registros de uma variável dividido pelo número de registros. Cuidado com os
outliers
que podem afetar a média.
Função Power BI: AVERAGE
:check: Média = AVERAGE(VendaCarros[ValorVenda])
:check: MediaTop20% = CALCULATE(AVERAGE(VendaCarros[ValorVenda]),FILTER(VendaCarros,VendaCarros[ValorVenda]>=PERCENTILE.EXC(VendaCarros[ValorVenda],0.80)))
Mediana
de um conjunto de dados como valor que divide um conjunto de dados (ordenados) em duas partes com a mesma quantidade de dados.
Nº elementos par: (n/2)+1
Nº elementos ímpar: (n+1)/2
Função Power BI: MEDIAN
:check: Mediana = MEDIAN(VendaCarros[ValorVenda])
Moda
: valor de maior frequência na amostra, ou seja, o que aparece mais frequentemente no conjunto de dados. Posso ter mais de uma moda.
Se média, mediana e moda iguais, então a distribuição é normal.
Medidas de Dispersão
Descrevem a amplitude dos dados, ou seja,
quão espalhados os dados estão dentro de um conjunto
2 Principais Medidas:
Variância
e
Desvio Padrão
Variância
: mede a amplitude (variabilidade) dos dados em relação à média. O quão distantes estão em relação a média.
:check: Variancia= VAR.S(VendaCarros[ValorVenda])
Desvio Padrão:
é usado para medir a variabilidade entre os números em um conjunto de dados. Assim como o nome sugere, o desvio padrão é um padrão de desvio (distância) da média.
Variação média de 45 mil para mais ou para menos em relação a média. Os carros são vendidos 45mil em média acima ou abaixo da média.
Power BI:
:check: Desvio padrao = STDEV.S(VendaCarros[ValorVenda])
Coeficiente de Variação (CV)
mede o
desvio padrão em termos de percentuais da média
. :fire:
Um CV alto indica alta variabilidade dos dados, ou seja, menos consistência dos dados.
Um
CV menor indica mais consistência dentro do conjunto de dados.
:check:
CV = (S/X) x 100. S=Desvio padrão | X=média
Ex: Investidor analisando ações da NIKE e ADIDAS percebe que apesar do desvio padrão ser maior na NIKE, CV dela é menor que ADIDAS, concluindo que a ação da NIKE é mais segura, pois o preço da ação tem uma variação menor, podendo assim evitar perdas e permitindo ao investidor ter um investimento mais seguro. :warning:
Se a gente quiser saber a variação dos dados. Ou seja, o quanto cada dado está variando da média. A gente pode usar a
variância
.
Mas, em algumas situações, apenas o cálculo da variância pode não ser suficiente, pois essa é uma medida de dispersão
muito influenciada por valores que estão muito distantes da média
. Além disso, o fato de a variância ser calculada ao quadrado causa uma certa camuflagem dos valores (pois aumenta a divergencia), dificultando um pouco o entendimento. Uma alternativa para solucionar esse problema é o
desvio padrão
.
Na realidade, dependendo do caso, você quer que a discrepancia entre os dados aumente para que seja mais perceptivel (variância). As vezes, como no nosso exemplo, você não quer essa discrepancia (desvio padrão) :red_flag:
Medidas de Posição Relativa
Os dados podem ser medidos em termos de posição relativa, que compara a posição de um valor, em relação a outro dentro do conjunto de dados.
Percentil e Quartil
são as mais comuns
Percentil x
Porcentagem
Porcentagem:
Proporção calculada em relação a uma grandeza de 100 unidades. Pode ser encontrada multiplicando o valor numérico por 100.
Percentil:
É o ponto da distribuição dos resultados ordenados da amostra (por ordem crescente dos dados) em 100 partes de igual amplitude. Por exemplo, um resultado no percentil 90 significa que 90% dos resultados se situam nesse ponto ou abaixo dele.
Exemplo
: Aluno conseguiu nota 36, cujo valor máximo era 45.
Porcentagem
= (36/45)x100 = 80% de aproveitamento.
Percentil
= 97º percentil. Aluno foi melhor que 97% dos outros alunos.
Quartil
Fundamental para interpretar um
Box Plot
, que é um gráfico utilizado na fase de análise exploratória.
São valores que dividem uma tabela de dados em 4 partes iguais:
Primeiro quartil é o valor que constitui 25% percentil
:check: Quartil25= PERCENTILE.INC(VendaCarros[ValorVenda],0.25),
Segundo quartil é o valor que constitui 50% percentil,
Terceiro quartil é o valor que constitui 75% percentil,
Quarto quartil é o valor que constitui 100% percentil.
O segundo quartil (50º percentil) é a mediana
Exemplo Vendas Carros
80% dos carros são vendidos até 112 mil
:check: Percentil80 = PERCENTILE.INC(VendaCarros[ValorVenda],0.8)
25% dos carros são vendidos até 39mil
Tabela de Frequência
A Tabela de Frequência indica a frequência observada, ou seja, mostra a frequência com que cada observação aparece nos dados
Para descrevermos um conjunto de dados, definimos o que são classes de frequência, isto é, intervalos da variável de interesse, e verificaremos o número de dados neste intervalo. Isso nos dá a Distribuição de Frequência, que é a associação das frequências aos valores obtidos correspondentes, o que nos permite ter uma representação gráfica da amostra
Histograma
O histograma se parece com um gráfico de barras, mas possui algumas diferenças. O objetivo é
visualizar de que forma os dados se distribuem pelos diversos valores diferentes observados
Para desenhar um histograma, primeiramente marcamos as classes no eixo horizontal e as frequências (ou frequências relativas, ou porcentagens) no eixo vertical.
O histograma é uma ótima forma de visualizar a densidade dos dados
Um histograma pode assumir qualquer formato dentre um grande número de formatos:
Simétrico
Assimétrico
Uniforme ou retangular
A distribuição normal será a que você usualmente irá trabalhar com mais frequência. Vários algoritmos de Machine Learning requerem que os dados apresentem uma distribuição normal e se não apresentarem, precisaremos converter os dados antes da modelagem preditiva :!:
Gráfico de Dispersão ou
Scatter Plot
Mostra a relação entre duas variáveis quantitativas. Cada par observado de duas variáveis (x, y) é marcado como um ponto a partir de suas coordenadas
Boxplot
O Boxplot (também chamado de whisker plot) exibe a distribuição de dados com base no resumo de cinco números: mínimo, primeiro quartil, mediana, terceiro quartil e máximo. Embora o Box plot forneça informação sobre localização e dispersão, seu verdadeiro valor está na informação que fornece sobre a cauda da distribuição. Pontos extremos (Outliers) podem afetar
de forma adversa as decisões a serem tomadas a partir da análise dos dados se não forem devidamente considerados. O Box Plot é uma ferramenta gráfica que ajuda a identificar a
existência de possíveis outliers no conjunto de dados.
IQR
Diferença entre Q3 e Q1
Variação Interquartil
Concluímos que 50% dos elementos do meio da amostra, estão contidos num intervalo com aquela amplitude. Será tanto maior quanto maior for a variabilidade nos dados
Sempre ao iniciar a análise dos dados é necessário verificar as estatísticas básicas.
12.Linguagem R e
Power BI para
análise estatística
Galeria Gráficos em R
setwd - configure work diretory - diretório de trabalho
getwd - nesse segundo comando ele mostra o diretório de trabalho definido.
É um teste para checar se o diretório de trabalho foi definido corretamente.
:check: setwd :("C:/Users/Plínio/Downloads/DSA Cap12")
:check: getwd()
Carregando o dataset
Arquivo com 106 obs.|observações|linhas e 9 variáveis|colunas
:check: vendas <- read.csv("Vendas.csv",fileEncoding = "windows-1252")
Resumo do dataset
:check: View(vendas)
:check: str(vendas)
:check: summary(vendas$Valor)
Medidas de
Posição
Média
:check: mean(vendas$Valor)
Média Ponderada
Média ponderada do valor com base na coluna custo. :check: weighted.mean(vendas$Valor,w=vendas$Custo)
Mediana
:check: median(vendas$Valor)
Ao rodar o comando com a interrogação na frente aparece a função ajuda da função
:check: ?mean
Medidas de
Dispersão
Variancia
:check: var (vendas$valor)
Desvio Padrao
:check: sd(vendas$valor
Medidas de
Posição
Relativa
Instalação
Interpretador | R-4.0.3-win
rtools40v2-x86_64
IDE | Ambiente Integrado de Desenvolvimento
| Integrated Development Enviroment | RStudio-1.4.1717
Poderosa para análise estatística de dados
:warning:
Mini-Projeto 2
Limpeza e Transformação de Dados com Power Query e Linguagem R no Power BI:
Tarefa 1
- Sumarizar os dados com as médias de cada colunade um dataset;
Tarefa 2
- Extrair o valor inteiro de uma das colunas decimais;
Tarefa 3
– Construir um gráfico mostrando a relação de duas variáveis numéricas para as 3 categorias de uma variável categórica
install.packages("
dplyr
") # para
manipulação de dados
install.packages("
data.table
") # para
transformação de dados
install.packages("
ggplot2
") # para construção de
gráficos
13. Linguagem Python e Power BI para manipulação de dados
Linguagem Python x
Linguagem R x
DAX
O
Power BI
oferece funcionalidades básicas de manipulação de dados e criação de gráficos
Ao usar o
DAX
, conseguimos customizar o processo de análise de dados e criar regras de negócio avançadas
Com
linguagem R
trazemos para o Power BI uma poderosa plataforma de análise estatística, além de gráficos avançados
Com a
linguagem Python
temos manipulação de dados, modelos de Machine Learning e IA e gráficos avançados
Bibliotecas Python para visualização e manipulação de dados:
Matplotlib
(bastante usado durante a fase de análise);
Seaborn
(muito bom para gráficos estatísticos);
Pandas
(Excel para o Python. Consegue trabalhar com grandes quantidades de dados);
Numpy
(para manipulação matemática de dados)
Mini-Projeto 3
:warning:
Dashboard de Recursos Humanos com Power BI e Python
Para utilizar os
gráficos de Python
Selecionar o gráfico em Python e habilitar;
Em "opções", acessada pela engrenagem existente onde coloca o código, configurar "Scripts do Python";
Selecionar as variáveis que serão utilizadas;
Colocar o código em Python, lembrando de importar as bibliotecas;
Apertar o play, na área de código, para executar o script e mostrar o gráfico.
14. Power BI e Apach Spark
para processamento de Big Data
Por que precisamos
do Apach Spark?
Um cluster de computadores permite usar de forma conjunta a capacidade computacional de diversas máquinas aumentando o poder de armazenamento e processsamento.
Como gerenciar o armazenamento e processamento distribuído através de diversos computadores?
Para gerenciar o armazenamento distribuído podemos usar o
Apache Hadoop HDFS
(Hadoop Distributed File System)
Para gerenciar o processamento distribuído podemos usar o
Apache Spark
. Vai gerenciar a memória RAM de vários computadores ao mesmo tempo.
O que é o
Apach Spark?
É um framework para
processamento distribuído
que possui diversos módulos para diferentes tarefas em Ciência de Dados
Se precisamos processar grandes volumes de dados, de forma distribuída através de um cluster de computadores e com alta velocidade, o Apach Spark tem se mostrado uma das melhores opções.
É open-source
Apache Spark é um sistema de análise de dados distribuído e altamente escalável que permite processamento em memória, e o desenvolvimento de aplicações em Java, Scala e Python, assim como linguagem R
É atualmente um dos principais projetos da Apache Foundation
O
Spark estende as funcionalidades do MapReduce
, suportando tarefas mais eficientes de computação como queries iterativas e processamento de streams de dados
Apache Spark é um framework open-source para processamento de Big Data construído para ser veloz, fácil de usar e para análises sofisticadas
O Spark é escrito na linguagem Scala e executa em uma máquina virtual Java. Atualmente, suporta como linguagens para o desenvolvimento de aplicativos, as linguagens:Scala, Java, Python e R
Além da API do Spark, existem bibliotecas adicionais que fazem parte do seu ecossistema e fornecem capacidades adicionais para as áreas de análise de Big Data e aprendizado de máquina
Apach Spark
Framework
Framework
é um conjunto de bibliotecas e ferramentas que trabalham de maneira interligada
Spark Core
é o "coração", motor de execução do Apach Spark
API, as bibliotecas
:
SparkSQL
para processamento de dados estruturados.;
Streaming
para processamento de dados em tempo real;
MLlib
para processamento de Machine Learning;
GraphX
para computação de grafos.
No
Spark Core API
temos as linguagens de programação que são suportadas pelo Apach Spark:
R, SQL, Python, Scala, Java.
Engine
:
Spark Core :check:
Bibliotecas
:
Spark SQL, MLlib, GraphX, Streaming :check:
Spark não é para armazenamento de dados, é para processamento de dados. :warning:
Armazenamento:
Local, HDFS, RDBMS, NoSQL, S3.
Gerenciamento:
Para gerenciar a conexão entre o local de armazenamento e Apack Spark.
Spark Scheduler, YARN, Mesos
Programação:
Python, R, Scala, Java, Tools
Apache Spark
e Big Data
Segundo estimativas, cerca de 80% dos dados gerados pela humanidade são não estruturados.
Para tratar esses dados não estruturados, utilizamos processos de ETL para coleta, transformação e carga de dados, para que possamos disponibilizar os dados para análise. Ou ainda utilizamos estruturas de
Enterprise Data Hub para armazenar
todo esse
volume de dados
, gerado em alta velocidade e com alta variedade, as propriedades do Big Data
Como armazenar e processar todos esses dados, se o volume aumenta de forma exponencial :question:
É praticamente impossível armazenar todos essesdados em apenas uma máquina, em apenas um servidor
Por esse motivo, utilizamos cada vez mais
clusters
, que são conjuntos de computadores (servidores) conectados, que executam como se fossem um único sistema
Cada computador no cluster é chamado
node
e cada node realiza a mesma tarefa, sendo
controlado por software
.
Velocidade é importante quando processamos grandes conjuntos de dados e uma das principais características do Spark é exatamente sua velocidade, permitindo o processamento de dados em memória e ainda é bastante eficiente quando precisa processar dados em disco
A exemplo do Hadoop, o Spark pode ser integrado a diversas outras ferramentas, permitindo a criação de uma poderosa e gratuita solução para processamento de Big Data
Spark x Hadoop
O Spark utiliza a memória distribuída através de diversos computadores, os nodes de um cluster. O preço da memória dos computadores vem caindo ano após ano e como o processamento em memória é muito mais rápido que o processamento em disco, o Spark é uma tecnologia realmente promissora.
Enquanto o Hadoop armazena os resultados intermediários do processamento, em disco, o
Spark armazena os resultados intermediários em memória. Esse é basicamente o grande diferencial do Spark
:explode:
Links
Big Data Real-Time Analytics Com Python e Spark
Engenharia de Dados com Hadoop e Spark
Machine Learning e IA em Ambientes Distribuídos
Power BI
Apache Spark
Amazon EMR
Azure HDInisght
Databricks
Azure Databricks
15. Análise de Dados e
Machine Learning
Mini-Projeto 3
:
Prevendo a Inadimplência de
Clientes com Machine Learning
e Power BI :warning:
Construir um modelo de Machine Learning completo do início ao fim para prever a inadimplência de clientes de uma instituição financeira
O projeto será desenvolvido em Linguagem R e usaremos o Power BI Online para publicação do modelo
Definição do Problema:
O setor de cobranças entrou em contato com você, Cientista de Dados, pois deseja prever quais clientes podem não pagar a fatura do cartão e drédito no próximo mês;
O objetivo é tomar ações pró-ativas como limitar as compras feitas com o cartão ou não aprovar compras acima de um determinado limite;
O setor de cobranças possui dados históricos de clientes que pagaram ou não a fatura nos meses anteriores.
Fonte dos dados
Seu trabalho é prever a inadimplência de clientes de cartão de crédito! Para isso você deve construir e publicar um modelo de Machine Learning para realizar as previsões
Por que precisamos de Machine Learning:question:
Não há uma formulação matemática pronta que explique a relação entre os dados. Preciso gerar uma função aproximada (um modelo) para gerar as previsões. Essa função será aprendida pelo algoritmo através dos dados históricos
. :warning:
Variáveis Preditoras
ou recursos, atributos, características, variáveis independentes.
Variável Alvo
ou target, variável dependente.
Cada linha
de uma tabela é uma
observação
Tipos de Aprendizado
em Machine Learning
1.Definição do problema
;
Ciclos a seguir
:
Posso fazer várias passadas até encontrar o melhor modelo:
2.Dados
obtidos pelo engenheiro de dados:
3.Algoritmo de Machine Learning
; escolhido pelo Cientista de dados. A escolha depende de diversos fatores. É necessário conhecer as alternativas para escolher o melhor para cada projeto.
4.Treinamento com dados de treino
. Separação dados de treino e de teste. O treinamento pode durar pouco ou muito tempo;
5.Modelo criado
;
6.Avaliação do modelo com dados de teste
, para checar se o modelo está com uma boa performance de previsão.
Aprendizado
Supervisionado
Regressão
Prever valor numérico. ex: previsão de vendas.
Apresento variáveis preditoras e variáveis target, com os dados históricos
Classificação
Quero prever um "sim" ou "não". ex: se o cliente vai pagar ou não o cartão de crédito.
Aprendizado
Não Supervisionado
Quando não tenho a variável alvo
Clusterização
ex: equipe de marketing pede para fazer segmentação de clientes. Agrupando os clientes por similaridade.
Aprendizado
Por Reforço
Famoso tentativa e erro.
ex: quando se está aprendendo a andar.
ex:
robôs investidores
, utilizados na área financeira.
:warning:
Curso
: Inteligência artificial aplicada a finanças, da formação Engenheiro Blockchain.
Instalar o
RStudio
, que é o
interpretador
que fará a intermediação da comunicação entre o computador e o usuário. O RStudio será utilizado para esse projeto.
Por que dividimos os dados
em treino e teste :question:
Em Machine Learning teremos que treinar o modelo e depois de treinado teremos que testá-lo
Podemos treinar e testar com os mesmos dados? Não.
Não treinamos o modelo para funcionar apenas com os dados de treino, mas sim com novos dados que serão apresentados ao modelo para resolver o problema de negócio.
Ao testar o modelo devemos apresentar dados que o modelo não recebeu durante o treinamento, exatamente para avaliar sua performance.
Por essa razão fazemos a divisão dos dados em treino e teste. Por exemplo: se tivermos um dataset com 1000 linhas, podemos reservar 800 linhas para treinar o modelo e 200 linhas para testar o modelo, fazendo a divisão com uma proporção 80/20. Não existe proporção ideal, sendo essa mais uma decisão do Cientista de Dados.
Modelo
confusionMatrix
Quando o meu valor real (Reference) foi igual a "0", meu modelo (Prediction) previu "0" 5.443 vezes (BOM); :check:
Quando o meu valor real (Reference) foi igual a "0", meu modelo (Prediction) previu "1" 318 vezes (RUIM); :red_cross:
Quando o meu valor real (Reference) foi igual a "1", meu modelo (Prediction) previu "0" 1.055 vezes (RUIM); :red_cross:
Quando o meu valor real (Reference) foi igual a "1", meu modelo (Prediction) previu "1" 597 vezes (BOM); :check:
:warning: Preciso aumentar a quantidade de vezes em que a previsão (Predicton) foi igual ao valor real - dados de teste (Reference)
Modelo
Acurácia
Acurácia de 81%, isto é, a cada 100 previsões, se acerta 81. A partir de 70% é uma boa acurácia.
Considerada uma métrica global. Uma métrica geral para o modelo.
Métricas de avaliação
do modelo preditivo.
Métricas locais.
Precision
Recall
F1-Score
Versão 2 do modelo depois de realizado o
balanceamento dos dados
de treino com o SMOTE (Synthetic Minority Over-sampling Technique), com o objetivo de apresentar para o treino a mesma quantidade de classes do tipo 0 e 1, para que o modelo não aprenda mais uma classe do que outra e gere uma previsão tendensiosa.
A acurácia dessa versão do modelo foi menor que a primeira versão, mas a acurácia não diz tudo do modelo. Observamos nessa confusionMatrix que os acertos estão maiores que na primeira versão.
Variáveis
Preditoras
Para as versões 1 e 2 utilizamos todas as variáveis preditoras para o treino do modelo, através do ". " no algoritmo a seguir.
No entanto todas as variáveis são relevantes para o aprendizado do modelo :question:
Temos de fato que utilizar todas as variáveis :question:
Do lado esquerdo do ~ temos a variável TARGET. O (.) do lado direito representa todas as variáveis preditoras.
modelo_v1 <- randomForest(inadiplente ~ .,data = dados_treino)
Melhoria dos
modelos
Manipulação de dados
Balanceamento dos dados de treino,
Utilização apenas das variáveis mais importantes.
Otimização de hiperparâmetros
Validação cruzada
Padronização dos dados
Salvando o modelo
em disco
Para utilizar com dados reais
Para colocar no Power BI, por exemplo
saveRDS(modelo_v3, file = "modelo/modelo_v3.rds")
O número de variáveis preditoras que serão apresentadas para o modelo gerar a previsão deve ser o mesmo que o número utilizado na aprendizagem do modelo.
Publicar um modelo de Machine Learning significa usar o modelo para resolver o problema para o qual ele foi criado. Se o objetivo do modelo é prever o valor de casas(por exemplo), alimentamos o modelo com novos dados de entrada e o modelo gera as saídas, ou seja, as previsões
A criação do
modelo de Machine Learning
é trabalho do
Cientista de Dados
.
A criação do
pipeline de dados
é trabalho do
Engenheiro de Dados
.
Eo
deploy (publicação do modelo)
é trabalho do
Engenheiro de Machine Learning
17. Power
Automate
Microsoft Power Platform:
Power BI,
Power Apps,
Power Automate,
Power Virtual Agents.
Automação Robótica
de Processos
Robotics Process Automation (RPA) é um conjunto de ações cujo objetivo é automatizar processos de negócio
Robotic
Um software que executa ações reproduzindo tarefas executadas por seres humanos
Process
Sequência de passos de uma atividade ou tarefa
Automation
Ação que ocorre de forma automatizada sem intervenção humana
Automatizar fluxos de processos
É uma plataforma de desenvolvimento de "baixo código" (low code) para a construção de fluxos de trabalho automatizados
O desenvolvimento é conduzido por uma interface de usuário gráfica simples e intuitiva que vem com centenas de conectores pré-construídos e milhares de modelos (templates) prontos para uso.
Esses conectores, ações e modelos permitem que o desenvolvedor cidadão (Citizen Developer) se conecte facilmente a aplicativos e serviços populares durante o processo de desenvolvimento do fluxo de trabalho automatizado.
Mini-Projeto 4 :warning:
Integrando alertas do Power BI com o Power Automate
18. Power Virtual Agents
ChatBots
O que é um ChatBot?
Um programa de computador projetado para simular conversas com usuários humanos, especialmente pela internet.
É um assistente que se comunica conosco por meio de mensagens de texto, um agente virtual que se integra a web sites, aplicativos ou mensageiros instantâneos e ajudas os empresários a se aproximarem dos clientes. O chatbot é um sistema automatizado de comunicação com os usuários.
Mini-Projeto 5 :warning:
Integrando o Power Virtual Agent com o Power BI
Integrar um Chatbot criado com Power Virtual Agent no Dashboard Analítico criado com Power BI.
19. Power
Apps
Desenvolvimento de aplicações corporativas sem necessidade ou com baixa programação, utilizando o conceiro de Low code
Business Applications
Low Code é realmente vantajoso para uma empresa :question:
Para pequenas e algumas médias empresas o uso de soluções baseado em low code pode sim trazer benefícios, principalmente em termos de velocidade e redução de custos.
Para algumas médias e grandes empresas o uso de soluções low code ainda não seria capaz de atender os requerimentos e complexidade dos processos de negócio, além de questões de compliance e segurança.
:check:
Vantagens Low Code
1.Velocidade.
2.Agilidade.
3.Desenvolvimento "Multiexperience". Posso experimentar as aplicações mais rápido, pois são desenvolvidas mais rapidamente.
4.Inovação.
5.Redução do envolvimento da área de TI.
:red_cross:
Desvantagens Low Code
1.Dificuldade em atender requerimento de negócio.
2.Não pode ser usado em aplicações mais complexas.
3.Limitado em termos de segurança e flexibilidade. Fica na nuvem da Microsoft.
4.Menor controle sob a execução das apps.
5.Apps simples e menos sofisticadas.
:warning: Lab 4 - Integrando Power App no Dashboard do Power BI
20. Projeto Final, Data Lake, Dremio e Power BI para Análise de Vendas
Nosso objetivo será carregar um grande volume de dados em um Data Lake. Os dados serão armazenados sem limpeza prévia em seu estado bruto após a coleta.
Na sequência vamos filtrar os dados e criar um pipeline no Dremio, realizando as otimizações necessárias
Usaremos o Power BI Desktop para análise de dados e extração de insights, entregando os resultados para os tomadores de decisão
Softwares
utilizados
Apache Hadoop
Usaremos o HDFS do Hadoop para a construção de um DataLake
Dremio
Middleware. Para construção de pipeline de dados. Permite a conexão entre o Power BI e o Data Lake. Consigo processar grande volume de daods e alta velocidade. Construir pipelines (consultas otimizadas aos dados) otimizando o tempo de execução. Cria uma Virtual Dataset.
Power BI
O que é um
Data Lake:question:
Modelo Tradicional com ETL (Extract, Transform, Load)
Modelo mais atual com ELT (Extract, Load, Transform)
Por que precisamos
do Dremio:question:
16. SQL Analytics
SQL
: Structured Query Language
(Linguagem de Consulta Estruturada).
Linguagem para manipulação de dados vindos normalmente de bancos de dados relacionais
É a utilização de linguagem SQL para manipulação, transformação e análise de dados.
Introdução à
linguagem SQL
Instruções
DQL
(Data
Query
Language)
Linguagem de
consulta
de dados.
Select
.
Instruções
DML
(Data
Manipulation
Language)
Insert
(inserir registros em uma tabela),
Update
(Atualizar registros que já foram inseridos),
Delete
(Remover registros)
Instruções
DDL
(Data
Definition
Language)
Para criar
objetos
(ex: tabela) no banco de dados.
Create
(criar uma tabela),
Alter
(alterar a tabela criada),
Drop
(remover a tabela)
Instruções
DCL
(Data
Control
Language)
Grant
(conceder privilégio de acesso a uma tabela),
Revoke
(retirar o acesso a uma determinada tabela)
Instruções
DTL
(Data
Transaction
Language)
Para garantir a integridade do bando de dados.
Commit
(para gravar os dados na tabela),
Rollback
(volta ao ponto onde estava antes de inserir os registros, caso dê problema na inserção dos registros)
Estudo de Caso 4
:warning:
(Construindo um
DataWarehouse
de Vendas)
Banco de dados
transacional
Para sistemas e aplicações de cadastros e registros em geral.
Ex: site de compra online. Busca de livros. Maioria dos sistemas. Tendem a aumentar de tamanho. Não é ideal para relatório e visualizações. Posso conectar o Power BI, mas não é o ideal, pois tem campos que não irei utilizar, pegar informações de várias tabelas. Fica registrando as transações. Posso ter muitas conexões e o Power BI ficará concorrendo pela conexão, que não é ideal. Posso ter muitas tabelas com segurança, por exemplo.
Banco de dados
consolidado ou dimensional
Para relatórios e acompanhamentos de indicadores
. Pega dados de bancos de dados transacionais e sumariza (consolida) para depois usar a ferramenta Power BI Desktop, por exemplo, para extrair as informações e apresentar as informações para os tomadores de decisão. (
Data Warehouse
)
Etapas
Etapa 1: Definir o Problema
Etapa 2: Modelo Lógico.
Relacionamento entre as entidades.
Compreender a visão geral do meu modelo.
Tabelas Dimensão e Tabela Fato.
Arquiteto de dados, Analista de sistemas.
Etapa 3: Modelo Físico.
Voltado para implementação no banco de dados.
Objetivo de compreender os tipos de dados e relacionamentos entre as tabelas.
Nome das tabelas, tipos de dados das colunas (conceito de volumetria). Informar chave primária, para que não permita que eu cadastre a mesma informação 2 vezes.
Administrador de Banco de Dados (DBA), Engenheiro de Dados.
Etapa 4: Implementação do DW.
Criar as tabelas. Definir colunas. Tipos de dados.
Etapa 5: ETL (Extract, Transform, Load).
Carregar os dados para o DW para que possamos extrair com o Power BI Desktop.
Etapa 6: Visualizações e Relatórios.
Observações
:
Primeiro carregamos as tabelas Dimensão para depois carregar a tabela Fato.
Quando eu
Importo
eu trago dos dados da tabela para o Power BI, no entanto o Power BI tem uma limitação de 1GB. Recomendado quando é baixo o volume de dados.
Quando faço o
Directy
faço a conexão direta com a tabela, no entanto baixo a performance de carregamento dos gráficos. Recomendado para uma uma quantidade maior de dados.
Tanto para importação, quanto para a conexão direta posso utilizar
Instrução SQL
para fazer consulta para as informações desejadas.
As palavras reservadas na linguagem SQL não são case sensitive.
Os objetos (ex: tabela) na consulta precisam estar entre aspas.
Valores nulos
são ausência de informação. Ex: NA, null, espaço (qualquer coisa que não corresponda ao campo e que precisa ser tratado). Precisa ser transformado para valor nulo usando a instrução SQL DML
UPDATE
.
Posso criar
VIEWS
, que tem como vantagem o filtro de informações e colunas que de fato preciso para o meu projeto, sem a necessidade de gerar uma QUERY extensa, pois ela já se encontra na
VIEW
.
Além disso, a VIEW é apresentada quando faço a conexão com a base de dados, sem a necessidade de utilizar instrução SQL.
Exemplos
Consultas
SELECT
FROM cap16."TB_FUNC"
LIMIT
10 =
SELECT
FROM cap16."TB_FUNC" FETCH FIRST 10 ROWS ONLY
SELECT DISTINCT
numero_filhos
FROM cap16."TB_FUNC" LIMIT 10
SELECT
DISTINCT *
FROM cap16."TB_FUNC"
WHERE
IDADE = 30
SELECT
DISTINCT *
FROM cap16."TB_FUNC"
WHERE
IDADE = 30
Contar todas as linhas da tabela:
SELECT
COUNT
(*) FROM cap16."TB_FUNC"
Igual a 40 anos:
SELECT
COUNT
(*) FROM cap16."TB_FUNC" WHERE IDADE = 40
Diferente de 40 anos:
SELECT COUNT(*) FROM cap16."TB_FUNC" WHERE IDADE != 40
SELECT COUNT(*) FROM cap16."TB_FUNC" WHERE IDADE < 30 AND estado_civil = 'casado'
SELECT COUNT(*) FROM cap16."TB_FUNC" WHERE IDADE < 30 OR estado_civil = 'casado'
Exclusive ( não considera o 30 e 35 ):
SELECT COUNT(*) FROM cap16."TB_FUNC" WHERE IDADE > 30 AND IDADE < 35
Inclusive ( considera o 30 e 35 ):
SELECT COUNT(*) FROM cap16."TB_FUNC" WHERE IDADE BETWEEN 30 AND 35
contém o registro 'medio' na informação, independente do que venha antes ou depois. Utilização de % (caracter coringa):
SELECT
DISTINCT
* FROM cap16."TB_FUNC" WHERE grau_instrucao LIKE '%medio%'
SELECT * FROM cap16."TB_FUNC" WHERE idade IN (20,30,40,50)
Substituindo 'NA' por null e depois salvando com a instrução commit:
update
cap16."TB_FUNC"
set
numero_filhos = null
where
numero_filhos = 'NA';
commit
;
SELECT * FROM cap16."TB_FUNC" WHERE numero_filhos IS null
Para limpar tabela. APENAS EM AMBIENTE DE TESTE :!:
Instrução
TRUNCATE
Deletando as linhas com 'NA' e salvando (commit):
DELETE
FROM cap16."TB_FUNC"
WHERE numero_filhos = 'NA';
commit;
INSERT INTO
cap16."TB_FUNC"(
"ID", estado_civil, grau_instrucao, numero_filhos, salario_hora,
idade, reg_procedencia)
VALUES (38, 'casado', 'ensino medio', 3, 4.50, 30, 'capital');
SELECT
FROM cap16."TB_FUNC"
*ORDER BY
salario_hora
SELECT * FROM cap16."TB_FUNC" ORDER BY salario_hora DESC
SELECT * FROM cap16."TB_FUNC" ORDER BY salario_hora DESC, reg_procedencia DESC
SELECT
MIN
(salario_hora),
MAX
(salario_hora),
AVG
(salario_hora),
COUNT
(
),
*SUM
(salario_hora) FROM
cap16."TB_FUNC"
SELECT ROUND(AVG (salario_hora)), reg_procedencia
FROM cap16."TB_FUNC"
GROUP BY
reg_procedencia
Exercício 1 :warning:
Utilizando
subquery
Crie uma instrução SQL que retorne a média de idade, número de filhos e grau de instrução dos funcionários
cujo salario_hora estiver acima da média de todos os funcionários
.
Retorne os dados somente de funcionários da capital e estado civil casado, com ordem decrescente da média de idade.
Utilização de
subquery
em uma das condições :!:
Semelhante a função
DAX ALL
para os filtros no Power BI.
SELECT ROUND(AVG(idade)), numero_filhos, grau_instrucao
FROM cap16."TB_FUNC"
WHERE reg_procedencia = 'capital'
AND estado_civil = 'casado'
AND salario_hora > (SELECT AVG(salario_hora) FROM
cap16."TB_FUNC") :!:
GROUP BY numero_filhos, grau_instrucao
ORDER BY ROUND(AVG(idade)) DESC
Links úteis :warning:
Introdução à Linguagem SQL
SQL Course
Formação arquiteto de dados
Power BI Gateway
Exercício 3 :warning:
Usando
JOIN
Retorne a média de salário hora por estado
Utilização de 2 tabelas
SELECT ROUND(AVG(f.salario_hora)), e.estado
FROM cap16."TB_FUNC" f, cap16."TB_ENDERECO" e
WHERE f."ID" = e.id_func
GROUP BY e.estado
Exercício 2 :warning:
Utilizando a função
CAST
Retorne todos os registros dos funcionários com 2 filhos
Nessa situação o campo número de filhos é uma string. :!:
Existem 2 soluções.
A 2º solução é a melhor, já que faço a conversão do dado para inteiro. Solução mais completa.
SELECT * FROM cap16."TB_FUNC"
WHERE CAST(numero_filhos AS integer) = 2