Apostila Completa
Aula 4
Aprenda a criar modelos de previsão usando
Ciência de Dados.
Impressionador do absoluto zero!
Parte 1
Introdução
Introdução
O que vamos aprender
NaterceiraauladaSemanadoPythonvocêvaiaprenderacriarumcódigodeciênciadedadosparacriaçãodeummodelode
previsãodoabsolutozero.Paraisso,vamospassarporconceitoscomo:
Apóstodosessesconhecimentos,seremoscapazesde
transformarumatabelacheiadeinformações,nemum
poucofáceisdesereminterpretadas...
...emummodelodeprevisãodeVendasutilizandoInteligência
Artificial
JupyterNotebook
Etapas de um
projeto de Ciência
de Dados
Gráficos usando
Python
Uso de bibliotecas
Modelos de
Inteligência Artificial
2
Asinformaçõesquevãoalimentaronossocódigo,serãodados
dosinvestimentosempropagandaemdiferentescanaiseas
vendasdecorrentesdessesinvestimentos.
Aimagemaolado,mostrabase“crua”.Apesardenãoestar
formatadadeumaformaquenosajudaavisualização,podemos
perceberqueexistem4colunas(indicadasabaixo)separadaspor
vírgula:
3
Portanto,paraummelhorentendimento,naprimeiralinha
temosos3meiosdecomunicaçãoqueaHashtagusapara
vender(TV,Radio,Jornal)eoúltimoitem(Vendas)representaa
quantidadeemvendasresultantedessescanais:
Usandoasegundalinhacomoexemplotemosqueinvestindo
230,1kBRLnoCanalTV,37,8kBRLnoCanalRadio,69,2kBRL
noCanalJornalfoigeradaumaVendade22,1MBRL.
Comovocêpodever,temosmuitasinformaçõesdevendasnessa
tabela,equalquerinterpretaçãodessesdadosnãoéumatarefa
fácil,oqueéumproblema.
TV Jornal Radio
Introdução
Entendendo a base de dados
Vendas
Nossoobjetivoécriarummodelodeprevisãode
vendasapartirdohistóricodevendase
investimentoemmarketing.
Paraisso,usaremosalgunsconhecimentosde
CiênciadeDados.
Ouseja,baseadanessemodelo,poderemos
projetar(comalgumgraudeincerteza)a
quantidadeemvendasbaseadanosvalores
investidos.
Então,vamoscomeçar!
4
Introdução
Entendendo a solução final
Parte 2
O que é um projeto de
Ciência de Dados
P
y
t
h
o
n
OconceitodeCiênciadeDadoscadadiapassaasermais
difundidonasempresas.Essencialmente,esseconceito,tem
porobjetivogerarconclusões,Modelos,apartirdegrande
quantidadededados.
Atravésdeconhecimentos estatísticosalinhadosao
conhecimento donegócio,aCiênciadedadospermite
“enxergar”alémdasuperfície.
Paraqueissoaconteça,émuitointeressanteseguiralguns
passosdesseprocessos.
Preparamosumdiagramasimplesparavocê☺
6
O que é um projeto de Ciência de dados
1. Entendimento do Desafio
2. Entendimento da Empresa/Área
3. Extração/Obtenção de Dados
4. Ajustes de Dados(Limpeza de Dados)
5. Análise Exploratória
6. Modelagem + Algoritmos
7. Interpretação do Resultado
8. Deploy/Produção
Parte 3
Jupyter
Notebooks
8
JupyterNotebook
O que é? Como acesso?
OscódigosemPythonprecisamdeuma
plataformaparaseremescritos.
Essasplataformas naprogramação são
chamadasdeIDEs.Existemvárias:VisualStudio,
PyCharm,Atom,GoogleColab,etc...
Todaspodemserutilizadaspraprogramaçãoe
execuçãodoscódigos,usaremosoJupyter
Notebookqueéumaferramentagratuitaque
existedentrodoAnaconda(umaespéciede
grandecaixadeferramentasdoPython).
ParausarmosoJupyterNotebook,iremos
instalaroAnaconda(link).
aAspróximaspáginasdessecapítulosãotodos
ospassosparainstalaçãocorretadoJupyterm
mascasovocêprefira,podeacessarnossovídeo
noYoutubeexplicandoessemesmo passoa
passo:
InstalandooJupyter-PacoteAnacondapara
ProgramaçãoemPython
9)MaisumNext
13
JupyterNotebook
Instalação
10)CliqueemFinishparafinalizarainstalação
Pronto! Anaconda instalado. Agora vamos ver se está tudo OK para
começarmos!
ParainicializarmosoJupyter,bastadigitar
JupyterNotebook nomenuiniciardoseu
computador.
Umanovajanelaseráabertanoseunavegador
padrãodeinternet.
14
JupyterNotebook
Inicializando o Jupyter
Ao clicar no ícone do Jupyterseu navegador
padrão deverá abrir o JupyterNotebook como
no print 2.
Além disso, uma janela preta com o símbolo
do Jupyterirá abrir. Não feche esta janela!
Ela é o JupyterNotebook sendo rodado pelo
seu computador.
ATENÇÃO!
16
JupyterNotebook
Entendendo a interface
Nome do arquivo.
Formato ipynb.
Célula onde deve ser escrito o código
Região de Output
Cria nova célula
Executa o código
Parte 5
Extração/Obtenção dos
dados
Parâmetro opcional.
Quando utilizado,
permite alterar a forma
como a biblioteca será
acionada.
Comovimosnonossodiagrama,aspartes1e2
donossoprocessodeCiênciadeDadosé
realizadaFORAdoPython.Deformabem
simples,sãoasinformaçõesqueintroduzimosno
Capítulo1dessaapostila.
AgoravamosparaaprimeiraetapaDENTROdo
Python.Adeobtençãodedadosdefontes
externas.
Apesardeagoraterumnomemaisbonito,é
algoquejávimosnasaulas1e2daSemanado
Python.UsandooPANDAS podemosrealizar
essaimportaçãodosdadosdoarquivoCSVe
leva-losparaoJupyterNotebook.
Pararealizaressaetapa,iremosusaralinhade
códigoabaixo:
Importpandas as pd
CasovocêaindanãoconheçaoPandas,
sugerimosdarumaolhadinhanasapostilasdas
aulas1e2☺.
18
Extração/Obtenção dos dados
Importando o Pandas
Indica que
importaremos uma
biblioteca/módulo para
ser utilizado no nosso
código
Biblioteca que está
sendo importada. Ela
poderá ser usado em
todas as linhas de código
deste arquivo
Ao invés de ser acionado
como PANDAS, será
acionado como pd.
Funciona como um
“apelido”.
Comovimosnonossodiagrama,aspartes1e2
donossoprocessodeCiênciadeDadosé
realizadaFORAdoPython.Deformabem
simples,sãoasinformaçõesqueintroduzimosno
Capítulo1dessaapostila.
AgoravamosparaaprimeiraetapaDENTROdo
Python.Adeobtençãodedadosdefontes
externas.
Apesardeagoraterumnomemaisbonito,é
algoquejávimosnasaulas1e2naSemanado
Python.UsandooPANDAS podemosrealizar
essaimportaçãodosdadosdoarquivoCSVe
leva-losparaoJupyterNotebook.
Pararealizaressaetapa,iremosusaralinhade
códigoabaixo:
Importpandas as pd
CasovocêaindanãoconheçaoPandas,
sugerimosdarumaolhadinhanasapostilasdas
aulas1e2☺.
19
Extração/Obtenção dos dados
Importando os dados de um arquivo .csv
dfé uma
variável criada
para receber os
valores
importados pelo
Pandas
pd“ativa”
a
biblioteca
Pandas
Método
que nos
permite
ler um
arquivo
.csv
Nome do arquivo que
queremos importar. Perceba
que não indicamos a pasta que
ele se encontra. Isso só é
possível pois o arquivo está na
MESMA PASTA que o arquivo
que estamos trabalhando.
Feitaaimportação,todososdadosqueexistiam
noarquivoadvertising.csvagoraforam
armazenadosnavariáveldf.
Paravisualizarmosessainformação,basta
usarmosodisplay(df).
Percebanoexemplo aolado,queao
executarmosocódigoopróprioPandas/Python,
nostrouxeumaplanilhaformatada,auxiliando
naanálisepreliminardosdados.
20
Extração/Obtenção dos dados
Visualização inicial dos dados
Dados importados
automaticamente
Informações
adicionais sobre o
dataframe‘df’.
200 linhas
4 colunas
Parte 6
Ajustes de Dados
(Limpeza de Dados)
Essaéumadasfasesmaisoperacionaisemenos
“divertidas”doprocessodeCiênciadeDados.
Oqueestamosbuscandoaquideformageral
são:
•Dadosfaltantes;
•Dadoscomvalor0(ZERO)quandodeveriam
servalorescoerentes;
•Outliersquenãorepresentam bemo
históricoelogonãoajudamacriaçãodo
modelo;
•Errosnabase;
•Errosdeimportação;
•Etc...
Umaferramentaquepodenosajudarateruma
visãobemgeraldosdadoséométodo.info().
Comopodemos veraolado,nossosdados
parecemcoerentes.Portanto,noslivramosde
fazerotratamentomaispesado.
Sevocêacompanhou aaula2daSemanado
Python,sabedoqueestamosfalando.Senão,dá
umaolhadinhanaapostila☺.
22
Ajustes de Dados (Limpeza de Dados)
Tá ruim? Arruma! Tá Bom? Deixa do jeito que tá!
Todos os dados são
“não-nulos”
Todos os dados são
numéricos como
deveriam ser
Parte 7
Análise Exploratória
Seaparteanterioreraumadasmais
operacionaisebraçais,essaéumadasmais
divertidas☺.
ComousodoPythonedoPandas,vamospoder
gerarumasériedeanálisesestatísticas/gráficas
quenospermitaentendermelhorcomoesses
dadossecomportam.
Paraisso,vamosimportar2bibliotecasquenos
auxiliamacriargráficos:
•Seaborn(link);
•Matplotlib(link);
Assimcomofizemosnaaula2comoPlotlypara
utilizarmosessasbibliotecas,énecessário
importa-lasparanossocódigo.Paraisso
usaremososcomandosaolado.
24
Análise Exploratória dos dados
Importando as bibliotecas gráficas
Indica importação de
uma biblioteca
Nome da
Biblioteca
Nome da
Biblioteca
Indica que a
biblioteca receberá
um “apelido”
Método
pyplot
permite
plotar
gráficos
“Apelido” do
matplotlib.
Sempre que
ativado, será
utilizado
esse nome
“Apelido” do
seaborn.
Sempre que
ativado, será
utilizado
esse nome
Indica que a
biblioteca receberá
um “apelido”
Talveztenhaficadoadúvida:
“Masparaqueusarmos2bibliotecasdistintas
paracriaçãodegráficos?Umanãoésuficiente?”
OqueaconteceaquiéqueoPandas/Python,já
possuemumaintegraçãocomoMatplotib.No
entanto,seusgráficossãoumpoucomais
simplesemtermosvisuais.
Vamosunirabeleza/complexidadedoseaborn
comaintegraçãooferecidapeloMatplotlib.
Paraisso,vamoscriarumgráficoviaSeaborne
exibi-loviamatplotlib.
Essasetapasestãoapresentadasnaimagemao
lado.
Nopróximoslide,vamosentenderumpouco
melhorsobreográficoqueacabamosdegerar.
25
Análise Exploratória dos dados
Análises Gráficas (1/4)
Indica o tipo de
gráfico da biblioteca
seabornque será
utilizado. Os dados
base serão utilizados,
são os do nosso
dataframedf.
Exibe o gráfico criado
Achouestranhocomapenas2linhasgeraroque
parecemser16gráficosdiferentes?
Legalné?
Aquiusamosumgráficodedispersãoparacada
umadascombinaçõesdecolunaspossíveis.Isso
nospermiteperceberseexistemalgumarelação
entreelas.
Algunscasos,serãoúteis,outros,não.Alguns
nemsentidofarão.Saberdiferenciarissoe
entenderoqueestáacontecendoéumapeça
chaveparaumbomresultadonofimdo
processo.
Lembre-seporenquantoestamosemuma
ANÁLISE EXPLORATÓRIA! Estamos mais
buscandocaminhosdoquegrandesconclusões
☺.
Vamospegar2dos16gráficosparaentende-los
umpoucomelhor.
26
Análise Exploratória dos dados
Análises Gráficas (2/4)
Antesdaanálisevamosentenderoquesãoos
pontosdográfico.
Aqui,temosoresultadoemvendas(eixoy)pelo
investimentonocanal(eixox).
Sódeolharconseguimosverumadiferença
gritantenoformatodográfico.
NográficoTVXVENDAS,podemosperceberque
existeumaproporcionalidadenoinvestimentoe
oaumentodasvendas.
Ouseja,quandoinvistoemanúnciosdeTV,
tendoavendermais.
JánográficoRADIO XVENDAS,essa
proporcionalidadenãoéclara.Naverdade,nãoé
muitoobviaarelaçãoentreelas.
Ouseja,asvendastendemaexistircomaltoou
baixoinvestimentonosanúnciosderádio.
27
Análise Exploratória dos dados
Análises Gráficas (3/4)
Baixo investimento
vsBaixa Venda
Aumento do
investimento vs
Aumento da Venda
Baixíssimo investimento vs
Amplitude dos dados de
venda muito grande
Tivemosalgunsdirecionadoresdoquepode
estaracontecendo,masnãofazmuitosentido
ficarmosavaliandoospontos1a1noolho...
Vamosusaroutrométododabibliotecaseaborn
paraconseguirmosavaliarmelhoressesdados.
Estemétodoéoheatmap().
Aqui,vamosusaralgunsargumentosdentrodo
método.Argumentos sãoessencialmente
configuraçõesqueométododeveráseguirao
serexecutado.
Vamosentende-losumpoucomelhor:
•df.corr()->esseargumentoindicaoqueestá
sendoplotado.Nessecaso,df.corr()indica
queserácalculadoaCORRELAÇÃO *entreos
dadosdodataframedf.queéuma
•cmap=‘Wistia’->indicaapaletadecoresa
serutilizadanográfico;
•annot=Escrevedentrodosquadradosovalor
*medidaestatísticaquepodevariarde-1(inversamenteproporcional)
a1(diretamenteproporcional);
28
Análise Exploratória dos dados
Análises Gráficas (4/4)
1º argumento: calcula
a correlação e indica
que esse é o valor a
ser usado no mapa
de calor
A vírgula separa os
argumentos do método
2º argumento: Indica
a paleta de cores a
serem usadas no
gráfico
3º argumento: True
significa que os
números devem
aparecer dentro dos
quadrados do gráfico
Perceba que assim como
vimos no slide anterior, a
correlação entre TV e
VENDAS é altíssima
(quase o valor
máximo[1]), enquanto o
rádio possui alguma
relação, mas muito baixa
para ser considerada
relevante.
Parte 8
Modelagem + Algoritmos
Vamosagoraparafasedecriaçãodeummodelo.
Oqueprecisamosidentificarsão:
•Osinputsdomodelo(eixoX);
•Osoutputsdomodelo(eixoY);
Lembrandoquenossoobjetivoécriarummodelode
previsãodevendasbaseado nosdadosde
investimentonosdiferentescanais(TV,radio,jornais).
Ouseja,nossosinputssãovalordoinvestimentonos
diferentescanaisenossooutputseráavendaprevista
dadoosinputsinformados.
Vamosiniciaresteblocodecódigoinformando
exatamenteisso.Usaremosparaessaetapaumanova
biblioteca.Ecomosempre,vamosprecisarimporta-las.
sklearn.model_selection
30
Modelagem + Algoritmos
Criando base de dados para modelo (1/4)
Esta é outra forma de importar uma biblioteca. Ao invés de
importarmos toda a biblioteca, indicamos apenas a parte dela
que temos interesse. Como se definissimosa biblioteca e qual
dos livros vamos pegar.
Ex: Da(from) biblioteca nacional(sklearn.model_selection)
pegue(import) Dom Casmurro (train_test_split)
Receberá os valores
que irão compor o
eixo X (inputs)
Indica que todo o dataframecom
exceção da coluna ‘Vendas’ irão
compor os valore de X (inputs)
Receberá os valores
que irão compor o
eixo X (inputs)
Receberá os valores que irão
compor o eixo X (inputs)
AgoratemosclaronasnossasvariáveisXeYquaissãoosInputse
quaissãoosOutputs.
Paracriarmosummodelodeprevisãousandointeligência
artificialvamosprecisardedadospara:
1)Treinaromodelo;
2)Testaromodelo.
Sabemosquetemos200pontosnãonulosnanossabase
(informaçãodadapelométodoinfonafasedelimpeza),temos
algumasopções:
1)Usar200pontosparatreinoe0paratestar;
2)Usar0pontosparatreinoe200paratestar;
3)Dividirumaquantidadeparatreinoeoutraparateste.
Imaginoquevocêescolheuaopção3...Masvamosentenderpor
quênãoasopções1e2:
1)Écomofazer200questõesdeMatemática,nuncafazerum
simuladodoENEMeirparaprova.Podefuncionar,masoriscoé
grande;
2)Écomonuncaterfeitoumexercícioefazertodosossimulados
doENEM.Oquevocêsabe?Emteoria,nada...
31
Modelagem + Algoritmos
Criando base de dados para modelo (2/4)
Variável que
receberá os
dados de
TREINO de X
Variável que
receberá os
dados de
TESTE de X
Variável que
receberá os
dados de
TREINO de Y
Variável que
receberá os
dados de
TESTE de Y
Método que permite a
divisão dos dados entre
Treino e teste
Valores de x
e y indicados
nas linhas
anteriores
Definição da
proporção de
dados em teste
e treino. Nesse
caso 30% serão
teste
Valor
seeddo
aleatório
Iniciamospornovasimportaçõesdedados.Aqui
usaremosdoismétodosdistintosderegressão:
•RegressãoLinear;
•RandomForestRegressor;
Alémdisso,usaremosonumpyqueéumabiblioteca
muitoutilizadaparagrandevolumedecálculos.
Nocódigoressaltadoaolado,vejaqueiniciamos
realizandoonossoTREINOdainteligênciaartificial.
PrimeirocomaregressãoLinearedepoiscomo
RandomForest.
Percebaquenessafaseusaremosapenasasvariáveis
dotipo_train.
33
Modelagem + Algoritmos
Criando base de dados para modelo (3/4)
Utilização apenas das
variáveis de TREINO( ‘_train’)
Feitootreino,agoraprecisamosiniciarostestes.
Percebaqueagora,sãoutilizadasasvariáveisfinais
‘_test’enãomaisas‘_train’
Mascomosaberseotestefoibomounão?Existem2
indicadoresquedescrevembemosresultadosquese
conseguiu.
Essesindicadoressão:
•R²
•RSME
Sementraremdetalhesestatísticoselesdescrevema
qualidadedasuaregressão.
Seolharmosoprintdonossocódigo,veremosqueo
valordeR²doRandomForestéMAIORqueovalorda
regressãolinear(Essevalorvariaentre0e1).
Alémdisso,aovermosquetemos0,96comoresultado,
podemosinferirquetemosummodeloconfiável(Varia
deindústria,masparaessecasoéummodelo
aceitável).
34
Modelagem + Algoritmos
Criando base de dados para modelo (4/4)
Parte 9
Interpretação do
Resultado
Ográficoaoladomostratodosos60*pontosdeteste
quesãodadosreaisextraídosdanossabaseaolado
dasduascurvasgeradaspelosnossosmodelos.
Alinhaazulrepresentaosdadosreaisdeteste;
Alinhatracejadalaranjarepresentaosdadosde
previsãocalculadospelomodelodeRandomForest
Alinhaverdetracejadarepresentaosdadosde
previsãocalculadospelomodelodeRegressãoLinear.
Percebaqueapósaelaboraçãodostestes,utilizamos
novamenteoPandasparacriarumdataframeapenas
comosresultadoscalculadoseosdadosdeteste.
*lembrando que tínhamos 200 pontos e definimos 30%
para teste, logo 0,3X200 = 60
36
Interpretação dos resultados
Análise Gráfica