SlideShare une entreprise Scribd logo
1  sur  17
Télécharger pour lire hors ligne
Primeiros passos Machine Learning
no PostgreSQL
Dickson S. Guedes
twitter: guediz / github: guedes
Apresentação Pessoal
• as pessoas me chamam de Guedes
• costumo usar
• PostgreSQL, Elasticsearch
• Python, Rust, Elixir, Ruby, R
• Emacs, Jupyter
• Ansible, Docker, Zabbix, Grafana, Logstash
• meetups
• Python Floripa, Devops, DBFloripa
• eventos
• FISL, PGBR, DBA Brasil 1.0, TDC
O que você vai ver hoje?
• introdução Machine Learning (ML)
• banco de dados PostgreSQL (BD ou Postgres)
• Python
• SQL’s
• notebooks
• um careca falando...
Machine Learning em um slide
• qual é a pergunta?
• o que eu quero descobrir?
• quero prever um valor? é regressão
• quero agrupar elementos com características comuns? é cluster
• quero classificar algo baseado em características? é classificação
• vou trabalhar com imagens? deep learning!
• posso usar os dados que eu tenho para o propósito que quero?
Machine Learning é burro
Oi?!
ML pode não diferenciar um cachorro de um biscoito
ML pode não diferenciar um cachorro de um esfregão
ML pode ser
trollado pelo
Saruman
Machine Learning em outro slide
• obtenha os dados com a melhor qualidade possível
• prepare e entenda os dados
• qual a pergunta? ela pode ser respondida pelos dados?
• escolha o algoritmo
• divida os dados em treino, teste e validação
• treine
• teste
• valide
• descubra (?) a resposta
O que virá pela frente?
• Linguagens como Python ou R
• Bibliotecas de Machine learning, como Sklearn, Tensorflow, Keras,
MADlib (nosso exemplo do dia)
• Necessidade de muito potencial de processamento
• Necessidade de muita memória
ML + BD
• você está mais próximo dos dados
• transferência apenas dos resultados entre o banco e cliente
• o banco gerencia bem memória quando os dados não cabem
• os modelos ficam disponíveis para todos que acessam o banco
• devem existir outros motivos...
Show me the code
• PostgreSQL 10
• Python 2.7
• MADlib 1.14
• Jupyter Notebook 4.4
• O código apresentado está disponível no Github:
• https://github.com/guedes/notebooks-exemplo/blob/master/Exemplo%20regressao%20linear%20c
om%20MADLib%20e%20PostgreSQL.ipynb
Comece a ler sobre...
• GPU
• TPU
• Cloud
E veja o que estão falando sobre...
• Computação quântica
• Blockchain + Machine learning
Referências
• PostgreSQL: o banco de dados que utilizamos
• https://www.postgresql.org/
• MADlib: a biblioteca que usamos para machine learning no PostgreSQL:
• http://madlib.apache.org
• um mapa dos algoritmos e quando utilizá-los:
• http://scikit-learn.org/stable/tutorial/machine_learning_map/index.html
• Jupyter Notebook
• http://jupyter.org/
• Scikit Learn: para aprender sobre algoritmos e
• http://scikit-learn.org
• para aprender mais:
• https://br.udacity.com/
• https://www.coursera.org/
Agradecimentos
• aos que se mantiveram atentos
• aos que não se mantiveram atentos mas estão aí firme e forte
• aos que não puderam ficar até agora e tiveram que sair
• às comunidades PostgreSQL, Python, DBA Brasil
• a Apache Software Foundation pela MADlib
Primeiros passos machine learning PostgreSQL

Contenu connexe

Similaire à Primeiros passos machine learning PostgreSQL

Carreira de Desenvolvimento
Carreira de DesenvolvimentoCarreira de Desenvolvimento
Carreira de DesenvolvimentoAlvaro Viebrantz
 
Extreme Experience 2018 | Python para quem sabe Delphi
Extreme Experience 2018 | Python para quem sabe DelphiExtreme Experience 2018 | Python para quem sabe Delphi
Extreme Experience 2018 | Python para quem sabe DelphiMario Guedes
 
Python - Programando em alto nível
Python - Programando em alto nívelPython - Programando em alto nível
Python - Programando em alto nívelIgor Sobreira
 
Sistemas de recomendações e neo4J na cloud computing
Sistemas de recomendações e neo4J na cloud computingSistemas de recomendações e neo4J na cloud computing
Sistemas de recomendações e neo4J na cloud computingPriscila Mayumi
 
Voce se preocupa com performance ou é sempre problema da infra
Voce se preocupa com performance ou é sempre problema da infraVoce se preocupa com performance ou é sempre problema da infra
Voce se preocupa com performance ou é sempre problema da infraCDS
 
Python mudando o modo de desenvolver para a internet
Python mudando o modo de desenvolver para a internetPython mudando o modo de desenvolver para a internet
Python mudando o modo de desenvolver para a internetMarcos Petry
 
Python mudando o modo de desenvolver para a web - Marcos Daniel Petry
Python mudando o modo de desenvolver para a web  - Marcos Daniel PetryPython mudando o modo de desenvolver para a web  - Marcos Daniel Petry
Python mudando o modo de desenvolver para a web - Marcos Daniel PetryTchelinux
 
Palestra Apresentando Python e Suas Aplicações
Palestra Apresentando Python e Suas AplicaçõesPalestra Apresentando Python e Suas Aplicações
Palestra Apresentando Python e Suas AplicaçõesMarcos Thomaz
 
OmbrosDeGigantes-TDC2014
OmbrosDeGigantes-TDC2014OmbrosDeGigantes-TDC2014
OmbrosDeGigantes-TDC2014Marcio Marchini
 
Palestra Tony Rodrigues - OctaneLabs WarpSpeed Project – Computação Forense e...
Palestra Tony Rodrigues - OctaneLabs WarpSpeed Project – Computação Forense e...Palestra Tony Rodrigues - OctaneLabs WarpSpeed Project – Computação Forense e...
Palestra Tony Rodrigues - OctaneLabs WarpSpeed Project – Computação Forense e...BHack Conference
 
Fazendo barba, cabelo e bigode com REDIS
Fazendo barba, cabelo e bigode com REDISFazendo barba, cabelo e bigode com REDIS
Fazendo barba, cabelo e bigode com REDISMario Guedes
 
Fazendo barba, cabelo e bigode com REDIS
Fazendo barba, cabelo e bigode com REDISFazendo barba, cabelo e bigode com REDIS
Fazendo barba, cabelo e bigode com REDISArrayOf.io
 
PHP Turbinado com CodeIgniter - Conisli 2011
PHP Turbinado com CodeIgniter - Conisli 2011PHP Turbinado com CodeIgniter - Conisli 2011
PHP Turbinado com CodeIgniter - Conisli 2011Evaldo Junior
 
Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...
Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...
Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...Mario Guedes
 
Desenvolvimento de aplicações PHP com MongoDB
Desenvolvimento de aplicações PHP com MongoDBDesenvolvimento de aplicações PHP com MongoDB
Desenvolvimento de aplicações PHP com MongoDBAri Stopassola Junior
 
Planejamento de Capacidade Técnicas e Ferramentas
Planejamento de Capacidade Técnicas e FerramentasPlanejamento de Capacidade Técnicas e Ferramentas
Planejamento de Capacidade Técnicas e Ferramentasluanrjesus
 

Similaire à Primeiros passos machine learning PostgreSQL (20)

Carreira de Desenvolvimento
Carreira de DesenvolvimentoCarreira de Desenvolvimento
Carreira de Desenvolvimento
 
Extreme Experience 2018 | Python para quem sabe Delphi
Extreme Experience 2018 | Python para quem sabe DelphiExtreme Experience 2018 | Python para quem sabe Delphi
Extreme Experience 2018 | Python para quem sabe Delphi
 
Python - Programando em alto nível
Python - Programando em alto nívelPython - Programando em alto nível
Python - Programando em alto nível
 
Sistemas de recomendações e neo4J na cloud computing
Sistemas de recomendações e neo4J na cloud computingSistemas de recomendações e neo4J na cloud computing
Sistemas de recomendações e neo4J na cloud computing
 
Devfest cerrado2017
Devfest cerrado2017Devfest cerrado2017
Devfest cerrado2017
 
Voce se preocupa com performance ou é sempre problema da infra
Voce se preocupa com performance ou é sempre problema da infraVoce se preocupa com performance ou é sempre problema da infra
Voce se preocupa com performance ou é sempre problema da infra
 
Treinamento hadoop - dia4
Treinamento hadoop - dia4Treinamento hadoop - dia4
Treinamento hadoop - dia4
 
Python mudando o modo de desenvolver para a internet
Python mudando o modo de desenvolver para a internetPython mudando o modo de desenvolver para a internet
Python mudando o modo de desenvolver para a internet
 
Python mudando o modo de desenvolver para a web - Marcos Daniel Petry
Python mudando o modo de desenvolver para a web  - Marcos Daniel PetryPython mudando o modo de desenvolver para a web  - Marcos Daniel Petry
Python mudando o modo de desenvolver para a web - Marcos Daniel Petry
 
Palestra Apresentando Python e Suas Aplicações
Palestra Apresentando Python e Suas AplicaçõesPalestra Apresentando Python e Suas Aplicações
Palestra Apresentando Python e Suas Aplicações
 
OmbrosDeGigantes-TDC2014
OmbrosDeGigantes-TDC2014OmbrosDeGigantes-TDC2014
OmbrosDeGigantes-TDC2014
 
Palestra Tony Rodrigues - OctaneLabs WarpSpeed Project – Computação Forense e...
Palestra Tony Rodrigues - OctaneLabs WarpSpeed Project – Computação Forense e...Palestra Tony Rodrigues - OctaneLabs WarpSpeed Project – Computação Forense e...
Palestra Tony Rodrigues - OctaneLabs WarpSpeed Project – Computação Forense e...
 
Fazendo barba, cabelo e bigode com REDIS
Fazendo barba, cabelo e bigode com REDISFazendo barba, cabelo e bigode com REDIS
Fazendo barba, cabelo e bigode com REDIS
 
Fazendo barba, cabelo e bigode com REDIS
Fazendo barba, cabelo e bigode com REDISFazendo barba, cabelo e bigode com REDIS
Fazendo barba, cabelo e bigode com REDIS
 
PHP Turbinado com CodeIgniter - Conisli 2011
PHP Turbinado com CodeIgniter - Conisli 2011PHP Turbinado com CodeIgniter - Conisli 2011
PHP Turbinado com CodeIgniter - Conisli 2011
 
Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...
Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...
Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...
 
Desenvolvimento de aplicações PHP com MongoDB
Desenvolvimento de aplicações PHP com MongoDBDesenvolvimento de aplicações PHP com MongoDB
Desenvolvimento de aplicações PHP com MongoDB
 
NoSQL e Python
NoSQL e PythonNoSQL e Python
NoSQL e Python
 
Treinamento hadoop - dia3
Treinamento hadoop - dia3Treinamento hadoop - dia3
Treinamento hadoop - dia3
 
Planejamento de Capacidade Técnicas e Ferramentas
Planejamento de Capacidade Técnicas e FerramentasPlanejamento de Capacidade Técnicas e Ferramentas
Planejamento de Capacidade Técnicas e Ferramentas
 

Plus de Dickson S. Guedes

Ganhando tempo automatizando com SQL
Ganhando tempo automatizando com SQLGanhando tempo automatizando com SQL
Ganhando tempo automatizando com SQLDickson S. Guedes
 
O mínimo necessário que você precisa conhecer sobre computação quântica
O mínimo necessário que você precisa conhecer sobre computação quânticaO mínimo necessário que você precisa conhecer sobre computação quântica
O mínimo necessário que você precisa conhecer sobre computação quânticaDickson S. Guedes
 
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhorPorque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhorDickson S. Guedes
 
Pattern matching - O que é? Onde vive? Do que se alimenta? Como se reproduz?
Pattern matching - O que é? Onde vive? Do que se alimenta? Como se reproduz?Pattern matching - O que é? Onde vive? Do que se alimenta? Como se reproduz?
Pattern matching - O que é? Onde vive? Do que se alimenta? Como se reproduz?Dickson S. Guedes
 
Dicas de sobrevivência de um DBA sem mouse
Dicas de sobrevivência de um DBA sem mouseDicas de sobrevivência de um DBA sem mouse
Dicas de sobrevivência de um DBA sem mouseDickson S. Guedes
 
Curiosidades que você (talvez) não sabia e se sabia vale a pena lembrar
Curiosidades que você (talvez) não sabia e se sabia vale a pena lembrarCuriosidades que você (talvez) não sabia e se sabia vale a pena lembrar
Curiosidades que você (talvez) não sabia e se sabia vale a pena lembrarDickson S. Guedes
 
Como encontrar uma agulha num palheiro de logs
Como encontrar uma agulha num palheiro de logsComo encontrar uma agulha num palheiro de logs
Como encontrar uma agulha num palheiro de logsDickson S. Guedes
 
Como encontrar uma agulha no palheiro de logs do PostgreSQL
Como encontrar uma agulha no palheiro de logs do PostgreSQLComo encontrar uma agulha no palheiro de logs do PostgreSQL
Como encontrar uma agulha no palheiro de logs do PostgreSQLDickson S. Guedes
 
Gerenciando múltiplas versões do PostgreSQL com pgvm
Gerenciando múltiplas versões do PostgreSQL com pgvmGerenciando múltiplas versões do PostgreSQL com pgvm
Gerenciando múltiplas versões do PostgreSQL com pgvmDickson S. Guedes
 
PGXN - Como distribuir suas extensões com o PostgreSQL
PGXN - Como distribuir suas extensões com o PostgreSQLPGXN - Como distribuir suas extensões com o PostgreSQL
PGXN - Como distribuir suas extensões com o PostgreSQLDickson S. Guedes
 
Estripando o Elefante - (Trabalhando com extensões no PostgreSQL)
Estripando o Elefante - (Trabalhando com extensões no PostgreSQL)Estripando o Elefante - (Trabalhando com extensões no PostgreSQL)
Estripando o Elefante - (Trabalhando com extensões no PostgreSQL)Dickson S. Guedes
 
Plante uma árvore, escreva um livro, tenha um filho e contribua com software ...
Plante uma árvore, escreva um livro, tenha um filho e contribua com software ...Plante uma árvore, escreva um livro, tenha um filho e contribua com software ...
Plante uma árvore, escreva um livro, tenha um filho e contribua com software ...Dickson S. Guedes
 
Conhecendo Postgresql.- ENECOMP 2009
Conhecendo Postgresql.- ENECOMP 2009Conhecendo Postgresql.- ENECOMP 2009
Conhecendo Postgresql.- ENECOMP 2009Dickson S. Guedes
 
Minicurso Postgresql - Enecomp 2009
Minicurso Postgresql - Enecomp 2009Minicurso Postgresql - Enecomp 2009
Minicurso Postgresql - Enecomp 2009Dickson S. Guedes
 
Testes unitarios no PostgreSQL com pgTAP
Testes unitarios no PostgreSQL com pgTAPTestes unitarios no PostgreSQL com pgTAP
Testes unitarios no PostgreSQL com pgTAPDickson S. Guedes
 

Plus de Dickson S. Guedes (20)

Ganhando tempo automatizando com SQL
Ganhando tempo automatizando com SQLGanhando tempo automatizando com SQL
Ganhando tempo automatizando com SQL
 
O mínimo necessário que você precisa conhecer sobre computação quântica
O mínimo necessário que você precisa conhecer sobre computação quânticaO mínimo necessário que você precisa conhecer sobre computação quântica
O mínimo necessário que você precisa conhecer sobre computação quântica
 
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhorPorque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
 
Pattern matching - O que é? Onde vive? Do que se alimenta? Como se reproduz?
Pattern matching - O que é? Onde vive? Do que se alimenta? Como se reproduz?Pattern matching - O que é? Onde vive? Do que se alimenta? Como se reproduz?
Pattern matching - O que é? Onde vive? Do que se alimenta? Como se reproduz?
 
Dicas de sobrevivência de um DBA sem mouse
Dicas de sobrevivência de um DBA sem mouseDicas de sobrevivência de um DBA sem mouse
Dicas de sobrevivência de um DBA sem mouse
 
Destistificando o EXPLAIN
Destistificando o EXPLAIN Destistificando o EXPLAIN
Destistificando o EXPLAIN
 
Falando "Postgrês"
Falando "Postgrês"Falando "Postgrês"
Falando "Postgrês"
 
Se meu elefante falasse
Se meu elefante falasseSe meu elefante falasse
Se meu elefante falasse
 
Curiosidades que você (talvez) não sabia e se sabia vale a pena lembrar
Curiosidades que você (talvez) não sabia e se sabia vale a pena lembrarCuriosidades que você (talvez) não sabia e se sabia vale a pena lembrar
Curiosidades que você (talvez) não sabia e se sabia vale a pena lembrar
 
O Elefante Poliglota
O Elefante PoliglotaO Elefante Poliglota
O Elefante Poliglota
 
Como encontrar uma agulha num palheiro de logs
Como encontrar uma agulha num palheiro de logsComo encontrar uma agulha num palheiro de logs
Como encontrar uma agulha num palheiro de logs
 
Como encontrar uma agulha no palheiro de logs do PostgreSQL
Como encontrar uma agulha no palheiro de logs do PostgreSQLComo encontrar uma agulha no palheiro de logs do PostgreSQL
Como encontrar uma agulha no palheiro de logs do PostgreSQL
 
Gerenciando múltiplas versões do PostgreSQL com pgvm
Gerenciando múltiplas versões do PostgreSQL com pgvmGerenciando múltiplas versões do PostgreSQL com pgvm
Gerenciando múltiplas versões do PostgreSQL com pgvm
 
PGXN - Como distribuir suas extensões com o PostgreSQL
PGXN - Como distribuir suas extensões com o PostgreSQLPGXN - Como distribuir suas extensões com o PostgreSQL
PGXN - Como distribuir suas extensões com o PostgreSQL
 
Pgxn.pgday
Pgxn.pgdayPgxn.pgday
Pgxn.pgday
 
Estripando o Elefante - (Trabalhando com extensões no PostgreSQL)
Estripando o Elefante - (Trabalhando com extensões no PostgreSQL)Estripando o Elefante - (Trabalhando com extensões no PostgreSQL)
Estripando o Elefante - (Trabalhando com extensões no PostgreSQL)
 
Plante uma árvore, escreva um livro, tenha um filho e contribua com software ...
Plante uma árvore, escreva um livro, tenha um filho e contribua com software ...Plante uma árvore, escreva um livro, tenha um filho e contribua com software ...
Plante uma árvore, escreva um livro, tenha um filho e contribua com software ...
 
Conhecendo Postgresql.- ENECOMP 2009
Conhecendo Postgresql.- ENECOMP 2009Conhecendo Postgresql.- ENECOMP 2009
Conhecendo Postgresql.- ENECOMP 2009
 
Minicurso Postgresql - Enecomp 2009
Minicurso Postgresql - Enecomp 2009Minicurso Postgresql - Enecomp 2009
Minicurso Postgresql - Enecomp 2009
 
Testes unitarios no PostgreSQL com pgTAP
Testes unitarios no PostgreSQL com pgTAPTestes unitarios no PostgreSQL com pgTAP
Testes unitarios no PostgreSQL com pgTAP
 

Primeiros passos machine learning PostgreSQL

  • 1. Primeiros passos Machine Learning no PostgreSQL Dickson S. Guedes twitter: guediz / github: guedes
  • 2.
  • 3. Apresentação Pessoal • as pessoas me chamam de Guedes • costumo usar • PostgreSQL, Elasticsearch • Python, Rust, Elixir, Ruby, R • Emacs, Jupyter • Ansible, Docker, Zabbix, Grafana, Logstash • meetups • Python Floripa, Devops, DBFloripa • eventos • FISL, PGBR, DBA Brasil 1.0, TDC
  • 4. O que você vai ver hoje? • introdução Machine Learning (ML) • banco de dados PostgreSQL (BD ou Postgres) • Python • SQL’s • notebooks • um careca falando...
  • 5. Machine Learning em um slide • qual é a pergunta? • o que eu quero descobrir? • quero prever um valor? é regressão • quero agrupar elementos com características comuns? é cluster • quero classificar algo baseado em características? é classificação • vou trabalhar com imagens? deep learning! • posso usar os dados que eu tenho para o propósito que quero?
  • 6. Machine Learning é burro Oi?!
  • 7. ML pode não diferenciar um cachorro de um biscoito
  • 8. ML pode não diferenciar um cachorro de um esfregão
  • 9. ML pode ser trollado pelo Saruman
  • 10. Machine Learning em outro slide • obtenha os dados com a melhor qualidade possível • prepare e entenda os dados • qual a pergunta? ela pode ser respondida pelos dados? • escolha o algoritmo • divida os dados em treino, teste e validação • treine • teste • valide • descubra (?) a resposta
  • 11. O que virá pela frente? • Linguagens como Python ou R • Bibliotecas de Machine learning, como Sklearn, Tensorflow, Keras, MADlib (nosso exemplo do dia) • Necessidade de muito potencial de processamento • Necessidade de muita memória
  • 12. ML + BD • você está mais próximo dos dados • transferência apenas dos resultados entre o banco e cliente • o banco gerencia bem memória quando os dados não cabem • os modelos ficam disponíveis para todos que acessam o banco • devem existir outros motivos...
  • 13. Show me the code • PostgreSQL 10 • Python 2.7 • MADlib 1.14 • Jupyter Notebook 4.4 • O código apresentado está disponível no Github: • https://github.com/guedes/notebooks-exemplo/blob/master/Exemplo%20regressao%20linear%20c om%20MADLib%20e%20PostgreSQL.ipynb
  • 14. Comece a ler sobre... • GPU • TPU • Cloud E veja o que estão falando sobre... • Computação quântica • Blockchain + Machine learning
  • 15. Referências • PostgreSQL: o banco de dados que utilizamos • https://www.postgresql.org/ • MADlib: a biblioteca que usamos para machine learning no PostgreSQL: • http://madlib.apache.org • um mapa dos algoritmos e quando utilizá-los: • http://scikit-learn.org/stable/tutorial/machine_learning_map/index.html • Jupyter Notebook • http://jupyter.org/ • Scikit Learn: para aprender sobre algoritmos e • http://scikit-learn.org • para aprender mais: • https://br.udacity.com/ • https://www.coursera.org/
  • 16. Agradecimentos • aos que se mantiveram atentos • aos que não se mantiveram atentos mas estão aí firme e forte • aos que não puderam ficar até agora e tiveram que sair • às comunidades PostgreSQL, Python, DBA Brasil • a Apache Software Foundation pela MADlib