Data Science do Zero
Copyright © 2016 da Starlin Alta Editora e Consultoria Eireli. ISBN: 978-85-7608-998-8
Translatedfrom original Data Science from Scratch by Joel Grus. Copyright © 2015 by O'Reilly Media. ISBN 978-1-491-90142-7. lhÍJ translation is published and sold by permirsion ofO'Reilly Media, Inc., the owner ofall rights to publish and sell the same. PORTUGUESE
~
-....
language edition published by Starlin Alta Editora e Consultoria Eireli, Copyright © 2016 by Starlin Alta Editora e Consultoria Eírelí.Todos os direitos estão reservados e protegidos por Lei. Nenhuma parte deste livro, sem autorização prévia por escrito da editora, poderá ser reproduzida ou transmitida. A violação dos Direitos Autorais é crime estabelecido na Lei nO 9.610/98 e com punição de acordo com o artigo 184 do Código Penal.
A editora náo se responsabiliza pelo conteúdo da obra, formulada exclusivamente pelo(s) autor(es).
Marcas Registradas: Todos os termos mencionados e reconhecidos como Marca Registrada e/ou Comercial são de responsabilidade de seus proprietários. A editora informa não estar associada a nenhum produto e/ou fornecedor apresentado no livro.
Impresso no Brasil-l' Ediçáo, 2016 - Edição revisada conforme o Acordo Ortográfico da Língua Portuguesa de 2009.
Obra disponível para venda corporativa e/ou personalizada. Para mais informações, fale com projetos@altabooks.com.br
Produção Editorial Gerência Editorial Marketing Editorial Gerência de Captação e Vendas Atacado e Varejo Editora Alta Books Anderson Vieira Silas Amaro Contratação de Obras Daniele Fonseca
markeeing@aleabooks.com.br J. A. Rugeri Viviane Paiva Produtor Editorial Supervisão de aucoria@altabooks.com.br comercial@altabooks.com .br
Claudia Braga Qualidade Editorial Ouvidoria
Data Science do Zero
ouvidoria@altabooks.com.br
ThiêAlves Sergio de Souza Produtor Editorial Assistente Editorial (Design) Carolina Giannini Aurélio Corrêa
Bianca Teodoro Izabelli Carvalho Juliana de Oliveira Equipe Editorial Christian Danniel Jessica Carvalho Renan Castro
Tradução Copidesque Revisão Gramatical Revisão Técnica Diagramação
Welington Nascimento Vivian Sbravani Ana Paula da Fonseca Ronaldo d'Avila Roenick Cláudio Frota
Engenheiro de FJerrônica pelo Insriruto Militar de Engenharia (IME)
Erratu e arquivo. de apoiol No site da editora relatamos, com a devida correção, qualquer erro encontrado em nossos livros, bem como disponibilizamos arquivos de apoio se aplicáveis à obra em questão.
~o liu www.altabooks.com.br e procllre pelo título do livro desejado para ter acesso às erratas, aos arquivos de apoio e/ou
....~'fPf!ç,ve~ l obra.
!í:.~...a-
A..
6 colDCl'dallzada aaforma em que está, sem direito a suporte técnico ou orientação pessoal/exclusivaloel Grus
DMoIIDlenadotllll de CltalopçtO .1 Publkaçlo (CIP) VqMI' Rodolfo CRB-8/9410
... z..o /Joe1 Grua ; Induzido por Welington f.:-:"'-1V~
- --
~.~":"l... 17...
'-Iro: ~ Alta Boob, 2016.CDD 005. 13 CDU 004.655.3
ALTA BOOKS
A
E D I T O R A
Rio de Janeiro, 2016
Sumário
~
--.
Prefácio ... xi 1. Introdução ...1
A Ascensão dos Dados O Que É Data Science?
Motivação Hipotética: DataSciencester 2
Encontrando Conectores-Chave 3
Cientistas de Dados Que Você Talvez Conheça 6
Salários e Experiência 8
Contas Pagas 11
Tópicos de Interesse 11
Em Diante 13
2.
(urso Relâmpago de Python ...15O Básico 15
Iniciando em Python 15
Python Zen 16
Formatação de Espaço em Branco 16
Módulos 17
Aritmética 18
Funções 18
Strings (cadeias de caracteres) 19
Exceções 19
Listas 20
Tuplas 21
Dicionários 21
Conjuntos 24
Controle de Fluxo 25
I v
~
...
Veracidade 25 Não Tão Básico 26
Ordenação 27
Com preensões de Lista 27
Geradores e Iteradores 28
Aleatoriedade 29
Expressões Regulares 30
Programação Orientada a Objeto 30
Ferramentas Funcionais 31
Enumeração (enumerate) 32
Descompactação de Zip e Argumentos 33
args e kwargs 34
Bem-vindo à DataSciencester! 35 Para Mais Esclarecimentos 35
3. Visualizando Dados ...37
matplotlib 37
Gráficos de Barra 39 Gráficos de Linhas 43
Gráficos de Dispersão 44
Para Mais Esclarecimentos 47
4. Álgebra linear...49
Vetores 49
Matrizes 53
Para Mais Esclarecimentos 55
5. Estatística ...57
Descrevendo um Conjunto Único de Dados 57
Tendências Centrais 59
Dispersão 61
Correlação 62
Paradoxo de Simpson 65
Alguns Outros Pontos de Atenção sobre Correlação 66
Correlação e Causalidade 67
Para Mais Esclarecimentos 68
6. Probabilidade ...69
Dependência e Independência 69
Probabilidade Condicional 70
Teorema de Bayes 72
Variáveis Aleatórias 73
vi I Sumário
Distribuições Contínuas 74
A Distribuição Normal 75
O Teorema do Limite Central 78
Para Mais Esclarecimentos 80
7. Hipótese eInferência...81
Teste Estatístico de Hipótese 81
Exemplo: Lançar Uma Moeda 81
p-values 84
Intervalos de Confiança 85
P-Hacking 86
Exemplo: Executando um Teste A/B 87
Inferência Bayesiana 88
Para Mais Esclarecimentos 92
8. Gradiente Descendente ...93
A Ideia Por Trás do Gradiente Descendente 93
Estimando o Gradiente 94
Usando o Gradiente 97
Escolhendo o Tamanho do Próximo Passo 97
Juntando Tudo 98
Gradiente Descendente Estocástico 99
Para Mais Esclarecimentos 100
9. Obtendo Dados...103
stdin e stdout 103
Lendo Arquivos 105
O Básico de Arquivos Texto 105
Arquivos delimitados 106
Extraindo Dados da Internet 108
HTML e Sua Subsequente Pesquisa 108
Exemplo: Livros O'Rei1ly Sobre Dados 110
Usando APls 114
JSON (e XML) 114
Usando Uma API Não Autenticada 115
Encontrando APls 116
Exemplo: Usando as APls do Twitter 117
Obtendo Credenciais 117
Para Mais Esclarecimentos 120
10. Trabalhando com Dados ...121
Explorando Seus Dados 121
Explorando Dados Unidimensionais 121
Sumário I vii
Veracidade 25 Não Tão Básico 26
Ordenação 27
Compreensões de Lista 27 Geradores e Iteradores 28 Aleatoriedade 29
Expressões Regulares 30
Programação Orientada a Objeto 30 Ferramentas Funcionais 31
Enumeração (en umerate) 32
Descompactação de Zip e Argumentos 33 args e kwargs 34
Bem-vindo à DataSciencester! 35 Para Mais Esclarecimentos 35
3. Visualizando Dados ...•..•....••..•...•...•...•..•...•.••..••.••.•••••.••.••.•••.•..•..••.•••••.••..•..•37 matplotlib 37
Gráficos de Barra Gráficos de Linhas
39 43 Gráficos de Dispersão 44
Para Mais Esclarecimentos 47
4. Álgebra Linear...49
Vetores 49
Matrizes 53
Para Mais Esclarecimentos 55
5. Estatística ...57
Descrevendo um Conjunto Único de Dados 57
Tendências Centrais 59 Dispersão 61
Correlação 62
Paradoxo de Simpson 65
Alguns Outros Pontos de Atenção sobre Correlação 66 Correlação e Causalidade 67
Para Mais Esclarecimentos 68
6. Probabilidade ...69 Dependência e Independência 69
Probabilidade Condicional 70
Teorema de Bayes 72
Variáveis Aleatórias 73
vi I Sumário
Distribuições Contínuas 74
A Distribuição Normal 75
O Teorema do Limite Central 78
Para Mais Esclarecimentos 80
7. Hipótese eInferência...81
Teste Estatístico de Hipótese 81
Exemplo: Lançar Uma Moeda 81
p-values 84
Intervalos de Confiança 85
P-Hacking 86
Exemplo: Executando um Teste A/B 87
Inferência Bayesiana 88
Para Mais Esclarecimentos 92
8. Gradiente Descendente ...93
A Ideia Por Trás do Gradiente Descendente 93
Estimando o Gradiente 94
Usando o Gradiente 97
Escolhendo o Tamanho do Próximo Passo 97
Juntando Tudo 98
Gradiente Descendente Estocástico 99
Para Mais Esclarecimentos 100
9. Obtendo Dados...103
stdin e stdout 103
Lendo Arquivos 105
O Básico de Arquivos Texto 105
Arquivos delimitados 106
Extraindo Dados da Internet 108
HTML e Sua Subsequente Pesquisa 108
Exemplo: Livros O'Reilly Sobre Dados 110
Usando APls 114
JSON (e XML) 114
Usando Uma API Não Autenticada 115
Encontrando APls 116
Exemplo: Usando as APls do Twitter 117
Obtendo Credenciais 117
Para Mais Esclarecimentos 120
10. Trabalhando com Dados ...121
Explorando Seus Dados 121
Explorando Dados Unidimensionais 121
Sumário I vii
123
Muitas Dimensões 125
Limpando e Transformando 127
Manipulando Dados 129
Redimensionando l32
Redução da Dimensionalidade l34
Para Mais Esclarecimentos 139
Duas Dimensões
11. Aprendizado de Máquina ...141
Modelagem 141
O Que É Aprendizado de Máquina? 142
Sobreajuste e Sub- Ajuste 142
Precisão 145
Compromisso entre Polarização e Variância 147
Recursos Extração e Seleção de Característica 148
Para Mais Esclarecimentos 150
12. K-Vizinhos Mais Próximos ...151
O Modelo 151
Exemplo: Linguagens Favoritas 153
A Maldição da Dimensionalidade 156
Para Mais Esclarecimentos 163
13. Naive Bayes...165
Um Filtro de Spam Muito Estúpido 165
Um Filtro de Spam Mais Sofisticado 166
Implementação 168
Testando Nosso Modelo 169
Para Mais Esclarecimentos 172
14. Regressão linear Simples ...173
O Modelo 173
Usando o Gradiente Descendente 176
Estimativa Máxima da Probabilidade 177
Para Mais Esclarecimentos 177
15. Regressão Múltipla...179
O Modelo 179
Mais Suposições do Modelo dos Mínimos Quadrados 180
Ajustando o Modelo 181
Interpretando o Modelo 182
O Benefício do Ajuste 183
viii I Sumário
Digressão: A Inicialização 183
Erros Padrões de Coeficientes de Regressão 184
Regularização 186
Para Mais Esclarecimentos 188
16. Regressão logística ...189
O Problema 189
A Função Logística 192
Aplicando o Modelo 194
O Benefício do Ajuste 195
Máquina de Vetor de Suporte 196
Para Mais Esclarecimentos 200
17. Árvores de Decisão ...201
O Que É uma Árvore de Decisão? 201
Entropia 203
A Entropia de uma Partição 205
Criando uma Árvore de Decisão 206
Juntando Tudo 208
FI~restas Aleatórias 211
Para Maiores Esclarecimentos 212
18. Redes Neurais ...213
Perceptrons 213
Redes Neurais Feed-Forward 215
Backpropagation 218
Exemplo: Derrotando um CAPTCHA 219
Para Mais Esclarecimentos 224
19. Agrupamento...225
Aldeia 225
O Modelo 226
Exemplo: Encontros 227
Escolhendo k 230
Exemplo: Agrupando Cores 231
Agrupamento Hierárquico Bottom-up 233
Para Mais Esclarecimentos 238
20. Processamento de linguagem Natural ...239
Nuvens de Palavras 239
Modelos n-gramas 241
Gramáticas 244
Sumário I ix
Duas Dimensões 123
Muitas Dimensões 125
Limpando e Transformando 127
Manipulando Dados 129
Redimensionando 132
Redução da Dimensionalidade 134
Para Mais Esclarecimentos 139
11. Aprendizado de Máquina ...141
Modelagem 141
O Que É Aprendizado de Máquina? 142
Sobreajuste e Sub-Ajuste 142
Precisão 145
Compromisso entre Polarização e Variância 147
Recursos Extração e Seleção de Característica 148
Para Mais Esclarecimentos 150
12. K-Vizinhos Mais Próximos ...151
O Modelo 151
Exemplo: Linguagens Favoritas 153
A Maldição da Dimensionalidade 156
Para Mais Esclarecimentos 163
13. Naive Bayes...165
Um Filtro de Spam Muito Estúpido 165
Um Filtro de Spam Mais Sofisticado 166
Implementação 168
Testando Nosso Modelo 169
Para Mais Esclarecimentos 172
14. Regressão linear Simples ...173
O Modelo 173
Usando o Gradiente Descendente 176
Estimativa Máxima da Probabilidade 177
Para Mais Esclarecimentos 177
15. Regressão Múltipla...179
O Modelo 179
Mais Suposições do Modelo dos Mínimos Quadrados 180
Ajustando o Modelo 181
Interpretando o Modelo 182
O Benefício do Ajuste 183
viii I Sumário
Digressão: A Inicialização 183
Erros Padrões de Coeficientes de Regressão 184
Regularização 186
Para Mais Esclarecimentos 188
16. Regressão logística ...189
o
Problema 189A Função Logística 192
Aplicando o Modelo 194
O Benefício do Ajuste 195
Máquina de Vetor de Suporte 196
Para Mais Esclarecimentos 200
17. Arvores de Decisão ...201
O Que É uma Árvore de Decisão? 201
Entropia 203
A Entropia de uma Partição 205
Criando uma Árvore de Decisão 206
Juntando Tudo 208
Fl~restas Aleatórias 211
Para Maiores Esclarecimentos 212
18. Redes Neurais ...213
Perceptrons 213
Redes Neurais Feed -Forward 215
Backpropagation 218
Exemplo: Derrotando um CAPTCHA 219
Para Mais Esclarecimentos 224
19. Agrupamento...225
Aldeia 225
O Modelo 226
Exemplo: Encontros 227
Escolhendo k 230
Exemplo: Agrupando Cores 231
Agrupamento Hierárquico Bottom-up 233
Para Mais Esclarecimentos 238
20. Processamento de linguagem Natural ...239
Nuvens de Palavras 239
Modelos n-gramas 241
Gramáticas 244
Sumário ix
Um Adendo: Amostragem de Gibbs 246
Modelagem de Tópicos 247
Para Mais Esclarecimentos 253
21. Análise de Rede ...255
Centralidade de Intermediação 255
Centralidade de Vetor Próprio 260
Multiplicação de Matrizes 260
Centralidade 262
Gráficos Direcionados e PageRank 264
Para Mais Esclarecimentos 266
22. Sistemas Recomendadores ...267
Curadoria Manual 268
Recomendando O Que é Popular 268
Filtragem Colaborativa Baseada no Usuário 269
Filtragem Colaborativa Baseada em Itens 272
Para Mais Esclarecimentos 274
23. Bases de Dados eSQL ...275
CREATE TABLE e INSERT 275
UPDATE 277
DELETE 278
SELECT 278
GROUPBY 280
ORDERBY 282
JOIN 283
Subconsultas 285
Índices 285
Otimização de Consulta 286
NoSQL 287
Para Mais Esclarecimentos 287
24. MapReduce ...289
Exemplo: Contagem de Palavras 289
Por que MapReduce? 291
MapReduce Mais Generalizado 292
Exemplo: Analisando Atualizações de Status 293
Exemplo: Multiplicação de Matriz 294
Um Adendo: Combinadores 296
Para Mais Esclarecimentos 296
x I Sumário
25. Vá em Frente ePratique Data Science ...299
IPython 299
Matemática 300
Não Do Zero 300
NumPy 301
pandas 301
scikit -learn 301
Visualização 301
R 302
Encontre Dados 302
Pratique Data Science 303
HackerNews 303
Carros de Bombeiros 303
Camisetas 304
E Você? 304
26. índice...305
Sumário I xi
Um Adendo: Amostragem de Gibbs 246
Modelagem de Tópicos 247
Para Mais Esclarecimentos 253
21. Análise de Rede ...255
Centralidade de Intermediação 255
Centralidade de Vetor Próprio 260
Multiplicação de Matrizes 260
Centralidade 262
Gráficos Direcionados e PageRank 264
Para Mais Esclarecimentos 266
22. Sistemas Recomendadores ...267
Curadoria Manual 268
Recomendando O Que é Popular 268
Filtragem Colaborativa Baseada no Usuário 269
Filtragem Colaborativa Baseada em Itens 272
Para Mais Esclarecimentos 274
23. Bases de Dados eSQL ...275
CREATE TABLE e INSERT 275
UPDATE 277
DELETE 278
SELECT 278
GROUPBY 280
ORDERBY 282
JOIN 283
Subconsultas 285
Índices 285
Otimização de Consulta 286
NoSQL 287
Para Mais Esclarecimentos 287
24. MapReduce ...289
Exemplo: Contagem de Palavras 289
Por que MapReduce? 291
MapReduce Mais Generalizado 292
Exemplo: Analisando Atualizações de Status 293
Exemplo: Multiplicação de Matriz 294
Um Adendo: Combinadores 296
Para Mais Esclarecimentos 296
x I Sumário
25. Vá em Frente ePratique Data Science ••.••.••.••..•.•••.•.•••..•...•..•....••.••.••.•..••...•..••.••.••.299
IPython 299
Matemática 300
Não Do Zero 300
NumPy 301
pandas 301
scikit-Iearn 301
Visualização 301
R 302
Encontre Dados 302
Pratique Data Science 303
Hacker News 303
Carros de Bombeiros 303
Camisetas 304
E Você? 304
26. índice...305
Sumário I xi