Data Science For Dummies from
a Dummy
Eduardo Bonet
TDC 2016 - São Paulo
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
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
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
O que é um Cientista de Dados?
5
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
Cientista de Dados:
Um estatístico que usa Mac
7
Ninguém Sabe!
8
Autor: Halan Harris
9
O que um Cientista de Dados faz?
10
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
Encontrar um problema
É possível estimar um aluguel em
Florianópolis?
12/50
Dia a dia exemplificado
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
Limpar dados
Corrigir localidades com coordenadas incorretas
Remover entradas com valores estranhos
14
Dia a dia exemplificado
Explorar Dados
Verificar distribuições de preços
Estudar possíveis correlações
15
Dia a dia exemplificado
Explorar Dados
Verificar distribuições de preços
Estudar possíveis correlações
16
Dia a dia exemplificado
Explorar Dados
Verificar distribuições de preços
Estudar possíveis correlações
17
Dia a dia exemplificado
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
Testar Hipótese (e falhar miseravelmente)
19
Dia a dia exemplificado
R² deveria ser perto de 1
Comunicar Resultados
20
Dia a dia exemplificado
O código está disponível em github.com/ebonet/pythonandr/
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
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)
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
Quais são as habilidades de um
Cientista de Dados?
E onde consigo encontrá-las?
24
http://drewconway.com/zia/2013/3/26/the-data-science-venn-diagram25
Diagrama de Venn de Drew Conway
Habilidades
Programação
26
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
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
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
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
Bancos de Dados
Grande disponibilidade de DBMS
PostreSQL, MongoDB, MySQL, ….
SQL vs NoSQL
31
Programação
Databases | SQL Tutorial
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
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
Machine Learning
Permite criar modelos extramente complexos e poderosos
Sistemas Recomendadores, Busca, Aprendizado Dinâmico
Redes Neurais, KNN, Máquinas de Vetor Suporte
34
Intro to Machine Learning, Supervised ML, Unsupervised ML, Reinforcement Learning
Machine Learning Specialization
Machine Learning (parcialmente traduzido)
Programação
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
Habilidades
Estatística & Matemática
36
Operações Matriciais
Multiplicação
Fatoração matricial
Autovalores e Autovetores
37
Coursera - Coding the Matrix | MIT- Linear Algebra
Matemática / Estatística
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
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
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)
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
Testes A/B
Permite comparar resultados de duas
ou mais modificações
42
Udacity - A/B Testing
Matemática / Estatística
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
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
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
Links Diversos
Quora Data Science FAQ
DataCamp - Cursos bons, alguns gratuitos
Open Datasets
Kaggle
Coursera - Lista de Cursos
Tips and Tricks
47
Jupyter
Código + Texto
Python, R, Julia, Go …..
48
Correlação não é Causalidade
49
Cuidado com erro muito baixo
50
51
Faço graduação, como ter tempo?
Adapte seu currículo!
Método Científico significa que resultados
devem ser reproduzíveis!
52
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
Obrigado!
ebonet.me 54

TDC2016SP - Trilha Data Science

  • 1.
    Data Science ForDummies from a Dummy Eduardo Bonet TDC 2016 - São Paulo
  • 2.
    Bio Bonet Engenharia de Controlee 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 essapalestra 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 essapalestra 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
  • 5.
    O que éum Cientista de Dados? 5
  • 6.
    Cientista de Dados: Umapessoa que é melhor em estatística do que qualquer Engenheiro de Software e melhor em engenharia de software que qualquer estatísto. 6
  • 7.
    Cientista de Dados: Umestatístico que usa Mac 7
  • 8.
  • 9.
  • 10.
    O que umCientista de Dados faz? 10
  • 11.
    Dia a diade 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
  • 14.
    Limpar dados Corrigir localidadescom coordenadas incorretas Remover entradas com valores estranhos 14 Dia a dia exemplificado
  • 15.
    Explorar Dados Verificar distribuiçõesde preços Estudar possíveis correlações 15 Dia a dia exemplificado
  • 16.
    Explorar Dados Verificar distribuiçõesde preços Estudar possíveis correlações 16 Dia a dia exemplificado
  • 17.
    Explorar Dados Verificar distribuiçõesde preços Estudar possíveis correlações 17 Dia a dia exemplificado
  • 18.
    Elaborar Hipótese ouProposta 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 (efalhar miseravelmente) 19 Dia a dia exemplificado R² deveria ser perto de 1
  • 20.
    Comunicar Resultados 20 Dia adia exemplificado O código está disponível em github.com/ebonet/pythonandr/
  • 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 gabaritosde 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 ● Umcientista 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 ashabilidades de um Cientista de Dados? E onde consigo encontrá-las? 24
  • 25.
  • 26.
  • 27.
    Linguagens Linguagem feita paraestatí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ácilde 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. LinguagemFuncional, 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 AprendendoR 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 Grandedisponibilidade 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 Limpezade 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
  • 34.
    Machine Learning Permite criarmodelos extramente complexos e poderosos Sistemas Recomendadores, Busca, Aprendizado Dinâmico Redes Neurais, KNN, Máquinas de Vetor Suporte 34 Intro to Machine Learning, Supervised ML, Unsupervised ML, Reinforcement Learning Machine Learning Specialization Machine Learning (parcialmente traduzido) Programação
  • 35.
    Programação - Algoritmos Eficiênciafaz 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
  • 36.
  • 37.
    Operações Matriciais Multiplicação Fatoração matricial Autovalorese Autovetores 37 Coursera - Coding the Matrix | MIT- Linear Algebra Matemática / Estatística
  • 38.
    Cálculo Multivariável Matrizes Jacobianae 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 minimizaruma 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 - Processamentode 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 Testesde 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 compararresultados de duas ou mais modificações 42 Udacity - A/B Testing Matemática / Estatística
  • 43.
    Visualização de dados Comunicaçãode 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 MercadoFinanceiro E-commerce Biologia Ecologia Psicologia Personalização Política Otimização de Processos Marketing Logística Esportes Saúde
  • 45.
    Cursos sobre Ciênciade Dados Udacity - Intro to Data Science edX - Data Science Ethics John Hopkins - Data Science Especialization Big Data University 45
  • 46.
    46 Links Diversos Quora DataScience FAQ DataCamp - Cursos bons, alguns gratuitos Open Datasets Kaggle Coursera - Lista de Cursos
  • 47.
  • 48.
    Jupyter Código + Texto Python,R, Julia, Go ….. 48
  • 49.
    Correlação não éCausalidade 49
  • 50.
    Cuidado com erromuito baixo 50
  • 51.
    51 Faço graduação, comoter tempo? Adapte seu currículo!
  • 52.
    Método Científico significaque resultados devem ser reproduzíveis! 52
  • 53.
    Concluindo Um cientista dedados é 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
  • 54.