Skip to content

Instantly share code, notes, and snippets.

@Irio
Last active August 15, 2016 13:23
Show Gist options
  • Save Irio/60cc3514a1c044b0d6f35e5755d03e22 to your computer and use it in GitHub Desktop.
Save Irio/60cc3514a1c044b0d6f35e5755d03e22 to your computer and use it in GitHub Desktop.
Meetup Data Science Workflow: Data Preparation, Analysis & Visualization 13/08/2016 - RS Data Science Meetup
## Apache Spark DataFrames
Cristofer Weber
Data Scientist @ NeoGrid
Mestre em Ciencia da Computação pela PUC-RS
Garantem que supermercados tenham problemas com estoque mesmo não mantendo um gigante.
~~DataFrames~~ Dataset[Row]
Revisando os seguintes livros:
* R in Action
* The Joy of Clojure
* Probabilistic Programming
* HBase in Action
Introdução ao Hadoop
* The Google File System
* MapReduce: Simplified Data Processing on Large Clusters
* Dremel: Interactive Analysis of Web-Scale Datasets
Ideias já têm coisa de 15 anos
Open NP muito mais complexo que MapReduce
Mundo abraçou o MapReduce.
HDFS + MapReduce = Hadoop
outras ferramentas entraram no guarda-chuva do Hadoop, open source
Possibilidade de processar dados grandes em clusters como em computadores pessoais como os nossos
Imutabilidade => encadear queries SQL sem precisar se preocupar
Hadoop orientado às primitivas (e.g. map, reduce)
Alternativas como Crunch, Hive, Pig, Cascading são compiladas para as primitivas no fim
15 anos atrás tínhamos muito mais restrições de hardware. Informações tinham que ficar em disco porque não cabíam em memória.
Spark!
* Spark: Cluster Computing with Working Sets
* Resilient Distributed Datasets
Spark consegue otimizar operações, coisa que o Hadoop não faz. Talvez um map e um reduce podem ser feitos com uma única operação, matematicamente.
Só dispara a execução quando precisa do resultado..
Possibilidade de quebrar (SQL) queries em operações pequenas e deixar com o Spark as otimizações.
Usa disco para os dados de um node para outro (tolerância a falhas e não sobrecarregar a rede)
Spark não necessariamente usa disco. Ideia é usar melhor os recursos disponíveis atualmente (i.e. não usar disco quando não é necessário)
RDD é chave. Coleção de objetos distribuídos
Hadoop sempre usa HDFS
Otimizar movimento dos dados. Se os dados estão no nodo A, vai tentar seguir fazendo operações por ali mesmo. Partitioner pode servir para fazer isso
Spark identifica falhas e consegue voltar na etapa anterior e recalcular uma operação (e.g. map, filter, group. group falha, ele tem uma referência para filter, operação anterior a ela)
DataFrame: Making Spark accessible to everyone
nome, tipo, meta
abstração para o RDD
datasets de KBs até PBs
algebra relacional, matemática e estatística, machine learning
objetivo sempre foi bigdata
não precisamos mais carregar os dados em um banco de dados para processar
Scala, Python, Java e R. completamente suportados na versão 2.0 (RDDs, ~~DataFrames~~ e Dataset). Pode aplicar operações de libraries que suportam DataFrames sem problemas.
query planning
otimização de memória (e.g. várias idades iguais podem ser compressed)
CSV e JSON são convertidos para representação binária, inferência de schema
Catalyst otimizador
Projeto Tungsten
* uso eficiente de memória
* geração de código
* C++
* GPUs
Apache Kudu: Storage for Fast Analytics
Séries temporais têm melhor performance em RDDs ainda
Alguns joins ainda são melhores em RDDs
## C4PPR4 D474 5C13NC3
Creative Data Scientist
construção de KPIs: sintetizar muitos dados em um único número
18 data scientists
muitos dados estão sendo gerados
1 jornal por dia antes. hoje nós geramos 7 jornais
hoje não é mais possível assistir todos novos vídeos do YouTube
assistir o TED do XKCD. estimativa dos dados da Google em punchcards
muda local de Sonho de Valsa a partir das estimativas. sabem quanto foi vendido em cada loja. orientando vendas
dashboard mostra informações do mercado
100 pessoas postam em redes sociais por dia que roubaram algo das Lojas Americanas
Rede Globo usando cartas que recebem para dizer como melhorar os programas ou fazer novelas
veracidade de dados. gerar valor com o que estamos recebendo
privacidade
criando líderes
métricas sociais
pesquisas tradicionais
dados pessoais
Data-driven projects
conhecimento do negócio. ninguém entende melhor de empresa X que a própria empresa X
tecnologia
data science
intermediar as equipes
* KP1 -> transforma dados em indicadores
* EN1GM4 -> hackeia o processo de tomada de decisão
* D3COD1NG -> gerar dados sociais em dados
empoderamento. ensinar pessoas a usarem os dados
com a pessoa certa, do jeito certo, no momento certo
acessível visualmente para todos
beleza, estrutura e harmonia
ferramenta de visualização de dados é apenas uma ferramenta. não necessariamente precisa ter acesso a todos os dados. talvez o que o usuário realmente precisa é de um SMS recebido na hora certa
o que quero evidenciar
melhor forma de receber
entender rápido
informação contextualizada
o que posso fazer com essa informação
receber resultados diferentes. escolher qual é a melhor. NOPE!
unificação de KPIs
desenvolvimento de material à apoio de decisões
trazendo para o mission control na área 51. não sabem reconhecer se a reação dos usuários foi positiva ou não
[email protected]
formada em business
complementação de capacidades. para convencer alguém mais técnico, chama alguém que entende de técnico.
diretoria sabe da necessidade e quer implementar. geralmente tem que convencer quem está abaixo disso
## Learning Analytics
Marcelo Pias
Bravi Analytics
Bravi Prisma
prever alunos que devem evadir e tentar mudar o comportamento antes que isso aconteça
já estamos no nível do dashboard
estamos chegando nos gatilhos enviados para o smartphone. enviar aviso que vai acontecer prova daqui a X dias
identificação de grupos de risco usando clustering algorithms. similaridade com pearson distance
identificar estudantes navegando entre grupos. saindo do sucesso e indo para algum de risco, por exemplo
primeira solução completa de Learning Analytics voltado para o mercado educacional brasileiro
modelos criados especificamente para universidades
**Dados são compartilhados entre universidades?**
UNISOCIESC. universidade em SC
25 mil alunos. joinville e blumenau
taxa média de 6,7% semestral de evasão
desistentes
trancados
transferências
falecidos
evasão formal -> estudando dizendo que está parando
informal -> estudantes que desaparecem, que não dizem que estão desistindo (+10,5%)
evasão média nacional = 52,6%
* Como identificar alunos em risco?
* Identificar fatores e variáveis relacionadas?
* Como utilizar conhecimento?
* Como engajar professores e alunos?
sistema acadêmico, portal do aluno, lms/ead, sistemas internos
gera um score de risco para cada aluno
unisinos está usando tecnologia de Learning Analytics
avisos, encontro com mentores, com professor…
dados: variáveis demográficas, de desempenho (notas) e acesso aos ambientes virtuais
técnicas: redes neurais, decision trees, svms, linear regression, naive bayes, random forest
**tem dados suficientes para redes neurais serem úteis?**
anonimização de dados para criar os modelos
**quantas pessoas existem na equipe do produto? como funciona a colaboração?**
desempenho, perfil, presença, acesso, financeiro, biblioteca
meta: accuracy de no mínimo 60%
real: 84,5%
sensitividade: 94,4%
grupos: fantasmas (sem rastros), esforçados, turistas e assíduos
comportamento do aluno: áreas de dados, digital, pesquisa qualitativa, plus bravi
26 entrevistas entre outubro e dezembro
2 campi e teleconferência
pesquisa qualitativa lança hipóteses e tenta validá-las. mineração descobre hipóteses
modelo tangibilizado em um software com gráficos. user-centric design. equipe de Londres desenvolvendo
Python, Docker, Jupyter
Spark, Cassandra -> data lake -> formato template bravi
40 pessoas total
time virtual
Spark gera modelos e analyses. migração de Python 8 meses atrás
machine learning package em cima dos dataframes no Spark
parceria com empresa de Londres, DataSift(?)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment