O documento discute as habilidades necessárias para um cientista de dados e onde encontrá-las. Ele descreve o trabalho diário de um cientista de dados, incluindo encontrar problemas, coletar e limpar dados, estabelecer hipóteses, testá-las e comunicar resultados. Também lista habilidades como programação, bancos de dados, machine learning, estatística e matemática, e sugere recursos para aprendê-las.
1. Data Science For Dummies from
a Dummy
Eduardo Bonet
TDC 2016 - São Paulo
2. Bio
Bonet
Engenharia de Controle e Automação
Mestrando em Ciência da Computação
Full Stack, Mobile, Data Science
Coorganizador Floripa Data Science Meetup
Github | LinkedIn | Blog
2/50
3. O que essa palestra NÃO vai ser
● Não será uma palestra técnica
● Não será uma palestra motivacional
● Você não vai sair daqui um Cientista de Dados
3
4. O que essa palestra vai ser
● O que um Cientista de Dados faz
● As habilidades esperadas de um Cientista de Dados.
● Onde procurar recursos para ir em busca dessas habilidades.
Os slides estarão disponíveis em ebonet.me/talks
4
6. Cientista de Dados:
Uma pessoa que é melhor em estatística do que
qualquer Engenheiro de Software e melhor em
engenharia de software que qualquer estatísto.
6
11. Dia a dia de Ciência de Dados, exemplificado
11
Encontrar Problema Buscar Dados
Limpar e Explorar
Dados
Estabelecer
Hipótese
Validar Hipótese
Comunicar
Resultados
Hipótese
Incorreta
Hipótese
Correta
12. Encontrar um problema
É possível estimar um aluguel em
Florianópolis?
12/50
Dia a dia exemplificado
13. Coletar Dados
Viva Real: site com listagem de imóveis. http:
//api.vivareal.com:80/api/1.0/api-docs
Retorna informações como (Exemplo).
● Bairro
● Latitude, Longitude
● Preço
● Número de banheiro, quartos, garagens, etc…
● Preço de condomínio
13
Dia a dia exemplificado
18. Elaborar Hipótese ou Proposta de solução
O preço do aluguel pode ser calculado com um modelo linear em cima das
seguintes variáveis:
Área
Número de quartos
Número de banheiros
Latitude
Longitude
Número de garagens
18
Dia a dia exemplificado
19. Testar Hipótese (e falhar miseravelmente)
19
Dia a dia exemplificado
R² deveria ser perto de 1
21. Encontrar nova hipótese
● Usar bairro em vez de latitude / longitude
● Cruzar entradas com banco de dados de crimes
● Banco de dados de tráfego
● Usar métodos estatísticos e algébricos para descobrir as variáveis que mais
influenciam no preço
Implementar, testar … e continuar falhando miseravelmente
21
22. 22
Solução: Coletar gabaritos de alunos, estimar notas usando a mesma
metodologia do Inep, atualizar notas conforme mais alunos entrarem
Problema 1: Inep solta os resultados em 3 meses para os alunos, em 1 ano
para download
Problema 2: Como calcular a nota do ENEM (não é trivial)
23. Alguns aspectos
23
● Um cientista de dados é um generalista, não um especialista
● CIÊNCIA de dados = Método Científico
● Um bom cientista é quase um unicórnio: precisa ter perfil acadêmico e de
mercado, ter noção de visualização, saber garimpar dados, como armazenar
esses dados, achar maneira de processar tudo isso, gerar insights e trazer
esses insights para produção
● É possível encontrar vagas com graduação, mas muitos pedem pelo menos
mestrado
24. Quais são as habilidades de um
Cientista de Dados?
E onde consigo encontrá-las?
24
27. Linguagens
Linguagem feita para estatísticos.
Amplamente usada no meio acadêmico.
Tem entrado forte no mercado, recebendo grandes investimentos.
Diversas bibliotecas estatísticas prontas, facilita parte de análise.
27
Programação
R
28. Linguagens
Versátil e fácil de aprender
Comunidade muito forte de bibliotecas gerais
Análise (porém não tão bem quanto R) e produção (porém não tão bem quanto
Scala)
28
Programação
Python
29. Linguagens
Baseado na JVM.
Linguagem Funcional, facilita paralelização de algoritmos.
Curva de aprendizado alta.
Escolha comum para algoritmos em produção.
29
Programação
Scala
30. Linguagens - Recursos
30
Programação
Aprendendo R com R | Udacity + Facebook - Data analysis with R | R-bloggers
DataCamp - Intro to R | Coursera - R Programming | R-Cookbook
Especialização Python (University of Michigan) | Python (CodeAcademy) |
Python Class (Google) | Codewars, Codility, Hackerrank
Especialização Scala | Documentação
R
Python
Scala
31. Bancos de Dados
Grande disponibilidade de DBMS
PostreSQL, MongoDB, MySQL, ….
SQL vs NoSQL
31
Programação
Databases | SQL Tutorial
32. Computação Distribuída
Muitas vezes, um computador apenas não dá conta
MapReduce, Apache Spark, Hadoop, etc …
32
MapReduce e Hadoop | Intro to Parallel Programming | Data Science and Engineering with Apache Spark
Programação
33. Aquisição e Limpeza de Dados
80% do processo é gasto entre aquisição e
limpeza de dados
Inconsistência de dados é algo comum
Sem dados não há Ciência de Dados
33
Model Building and Validation | Cleaning Data in R (pago)
Data Mining
Programação
35. Programação - Algoritmos
Eficiência faz diferença!
Saber implementar algoritmos paralelizáveis
35
Algoritmos Parte I e II (Princenton)
Algoritmos I e II (Stanford)
Especialização (UC San Diego)
Programação
38. Cálculo Multivariável
Matrizes Jacobiana e Hessiana
Base para Modelos Estatísticos,
Otimização e Aprendizado de Máquina.
38
Berkeley - Multivariate Calculus | MIT - Multivariate Calculus - 2007 | MIT - Multivariate Calculus - 2010
Matemática / Estatística
39. Otimização
Métodos para minimizar uma função específica
Base para a maioria dos algoritmos de Aprendizado
de Máquina e Regressões Estatísticas
39
Stanford - Convex Optimization (Avançado) | Cursos de Cálculo Multivariável | Coursera - Linear
Programming
Matemática / Estatística
40. Matemática - Processamento de Sinais
Detectar peridiocidade em eventos (Fourier)
Wavelet Transformation
Remover ruído nos dados
40
Matemática / Estatística
Digital Signal Processing | DSP (MIT - Oppenheim)
41. Estatística - Distribuições
Testes de Hipóteses
Saber qual distribuição melhor
representa o problema
Teorema Bayesiano
Lidar com amostras enviesadas
41
Intro to Statistics | Intro to Descriptive Statistics | Intro to Inferential
Statistics
Matemática / Estatística
42. Testes A/B
Permite comparar resultados de duas
ou mais modificações
42
Udacity - A/B Testing
Matemática / Estatística
43. Visualização de dados
Comunicação de Resultados
Representar mais do que duas dimensões
Representação de diferentes variáveis
43
Udacity - Data Visualization and D3.js | https://plot.ly | Flowing Data | Edward Turfte - Envisioning
Information
Matemática / Estatística
44. Conhecimento de Domínio
44
Mercado Financeiro
E-commerce
Biologia
Ecologia
Psicologia
Personalização
Política
Otimização de Processos
Marketing
Logística
Esportes
Saúde
45. Cursos sobre Ciência de Dados
Udacity - Intro to Data Science
edX - Data Science Ethics
John Hopkins - Data Science Especialization
Big Data University
45
46. 46
Links Diversos
Quora Data Science FAQ
DataCamp - Cursos bons, alguns gratuitos
Open Datasets
Kaggle
Coursera - Lista de Cursos
53. Concluindo
Um cientista de dados é um generalista, não um especialista
Muitas habilidades não triviais para se estudar
Inúmeras oportunidades de criar impacto
Extremamente desafiador, mas muito divertido
A graduação não é suficiente, é preciso ir além!
53