SlideShare a Scribd company logo
1 of 38
Download to read offline
Globalcode – Open4education
Apache SparkMLlib
Machine Learning na Prática
Eiti Kimura
Trilha: Machine Learning
Coordenador de Desenvolvimento
Flávio Clésio
Core Machine Learning
Globalcode – Open4education
Quem sou eu?
• Arquiteto de software e Coordenador de TI na Movile
• Apache Cassandra Developer 1.1 Certified (2013)
• Apache Cassandra MVP (2014/2015 e 2015/2016)
• Apache Cassandra Contributor (2015)
• Cassandra Summit Speaker (2014 e 2015)
• Cassandra Summit Reviewer (2016)
Eiti Kimura
eitikimura
Globalcode – Open4education
Quem sou eu?
Flávio Clésio
• Core Machine Learning na Movile
• Coordenador de Revenue Assurance na Movile
• Mestre em Inteligência Computacional(Aplicação no
Mercado Financeiro)
• Especialista em Data Mining e Business Intelligence com
mais de 8 anos de experiência
• Autor do blog Mineração de Dados (http:
//mineracaodedados.wordpress.com)
flavioclesio
Globalcode – Open4education
A Movile é a empresa por
trás das apps que fazem
sua vida mais fácil!
Globalcode – Open4education
O Melhor conteúdo para Crianças
Globalcode – Open4education
Líder em delivery de
comida no Brasil
Globalcode – Open4education
Agenda
• O caso do sistema de tarifação da Movile
• Apresentando o Watcher-ai
• Um pouco de teoria sobre a regressão linear
• Utilização de um modelo treinado em uma
aplicação Java
Objetivos
Globalcode – Open4education
• Apresentar o uso prático de Machine Learning
focado em um caso de uso real usando spark-
notebook para processar e testar modelos de ML e
então implementar esse modelo em uma
plataforma Java.
Objetivos
Globalcode – Open4education
Problema: Monitoramento
Plataforma de tarifações da Movile
Como podemos checar se a plataforma está
funcionando baseado apenas em análise de
dados?
Que tal pedir ajuda a um sistema inteligente?
Globalcode – Open4education
Clientes assinam um produto ou serviço
A assinatura é persistida em um banco de dados
A assinatura é tarifada
A plataforma gerencia o ciclo de vida da assinatura
Plataforma de tarifação
em sua forma mais simples
Globalcode – Open4education
Trabalhando com Dados
plataforma de tarifação (0-6h)
Últimos 3 dias de análise de cada uma das operadoras
Globalcode – Open4education
Arquitetura do Watcher-AI
Globalcode – Open4education
Globalcode – Open4education
Notificação
única
Notificações
agrupadas
Globalcode – Open4education
Natureza dos Dados ou:
O que eu quero saber?
Dado um vetor de dados
Amostra de dados de número de tentativas:
2.623.447, [4.0, 17h, 3.0]
Amostra de dados de número de tentativas com sucesso:
61.083, [4.0, 17h, 3.0, 1259.0, 24.751.650 , 2.193.67, 26.314.551]
Número esperado de Tentativas de Tarifação
Número Esperado de Sucessos
características
label
# success carrier_id hour week response_time no_credit errors attempts
carrier_id hour week
APRENDIZADO SUPERVISIONADO
Regressão Linear
Globalcode – Open4education
Qual algoritmo selecionar?
Sebastian Raschka - Livro Python Machine Learning
Quando envolvido em problemas de aprendizagem supervisionada,
o meu conselho é começar com a mais simples hipótese em
primeiro lugar. Isto é, tentar um modelo linear, como regressão
logística.
Se não funcionar "bem" (isto é, ele não atende expectativas ou
critério de desempenho definido anteriormente), então passe para
um próximo experimento.
Globalcode – Open4education
Spark MLlib
Seu objetivo é fazer com que a aprendizagem máquina seja
escalável e fácil.
Consiste de algoritmos comuns de aprendizagem e
utilitários, incluindo a classificação, regressão, clusterização,
filtragem colaborativa, redução de dimensionalidade,
pipelines.
Globalcode – Open4education
• Model Linear com Stochastic Gradient Descent (SDG)
• Lasso com Modelo SGD (Regularização L1)
• Regressão Ridge com Modelo SGD (Regularização L2)
• Árvore de Decisão com Regressão
Algoritmos testados
Apache MLlib
Globalcode – Open4education
Um pouco de teoria sobre
Regressão...
A Regressão Linear é um método
estatístico que investiga o relacionamento
e interdependência entre variáveis para
obtenção de um resultado numérico.
Globalcode – Open4education
Um pouco de matemática
y = α + (β1 * x1) + (β2 * x2) + (βn * xn) + ε
y = Valor a ser previsto (variável dependente)
α = Intercepto (onde a reta da regressão atinge o eixo Y e o valor de x = 0) - Fatores
Endógenos
β = Coeficientes Regressores
x1...xn = Valores das variáveis independentes (e.g. colunas de um banco de dados)
ε = Erros residuais ou erros não explícitos - Fatores Exógenos
Em que:
Globalcode – Open4education
Um pouco de matemática
(Modelo de uma operadora)
Sucessos = (1.38 * Operadora)
+ (0.70 * Hora do Dia)
+ (1.63 * Semana do Mês)
+ (0.47 * Tempo de Resposta)
+ (0.40 * Tentativas sem crédito)
+ (0.70 * Erros de tentativas)
+ (0.40) * Número de Tentativas)
coeficientes β obtidos do modelo treinado
Globalcode – Open4education
Vamos falar sobre Regularização
• Um problema comum com os problemas de
regressão é a alta dimensionalidade da base de
dados (ex: Projeto Genoma em que a base de dados
tem mais de 5000 variáveis)
• A equação se torna tão complexa que converge
muito rápido para o Overfitting!
Globalcode – Open4education
Vamos falar sobre
Regularização
• Para evitar esse tipo de problema o Spark MLlib incorpora
alguns métodos de regularização como o LASSO(L1) e Ridge
(L2).
• A regularização LASSO (L1) adiciona a penalização
equivalente ao valor absoluto da magnitude dos coeficientes
• Já utilizando a regularização Ridge(L2) a penalização é
equivalente à magnitude dos coeficientes elevada ao
quadrado.
Globalcode – Open4education
É um método em que diversos parâmetros de um modelo são
ajustados de maneira iterativa para minimizar a função de erro.
Essa abordagem é feita usando aproximação estocástica para
minimizar alguma função objetivo.
A função objetivo nesse caso é para reduzir o erro cumulativo
nas instâncias de treinamento e teste. A abordagem estocástica
é usada devido ao fato de que a base de dados é muito grande, e
essa abordagem aleatória acelera a função de minimização.
Gradiente Descendente
Globalcode – Open4education
Gradiente Descendente Estocástico
Fazendo um terno no alfaiate
Exemplo: Stochastic Gradient Descent (Fazendo terno no alfaiate)
1) O alfaiate faz uma estimativa inicial
2) Um cara aleatório (de um pequeno grupo ou do conjunto de
completo de pessoas) veste o terno e dá o feedback (e.g. está
apertado, folgado, etc)
3) O alfaiate faz um pequeno ajuste de acordo com o feedback
passado; e
4) Enquanto o alfaiate tem tempo disponível, ele volta para o passo
2 e refaz o processo.
Globalcode – Open4education
•
Regressão usando Árvores de
Decisão
Globalcode – Open4education
A única métrica que importa ou OMTM (One Metric That
Matters)
Verificar Desempenho
Modelos de regressão
Mean Squared Error (MSE)
É a soma da raiz quadrada da
média em relação às diferenças
entre os valores previstos (y) e
os valores originais de um
conjunto de teste (x).
Globalcode – Open4education
Spark Notebook
http://spark-notebook.io/
spark-notebook-0.6.2$ ./bin/spark-notebook
Walkthrough
Globalcode – Open4education
Avaliação de Desempenho
Algoritmos de Aprendizado
Particionamento dos dados
70% para treinamento
30% para testes
val labelsAndPredictions = test.map { point =>
val carrier = point.features.apply(0)
val model = mapModel(carrier)
val prediction = model.predict(point.features)
(point.label, prediction)
}
trecho de código em Scala
Globalcode – Open4education
Watcher-ai Tecnologias
Gradle
gestão de dependência, build, deploy
Spring
injeção de dependência, setup rápido
Spark MLlib
carga de modelos, previsão de dados
Pushbullet API
envio de notificações
$ echo "Olá! "
$ echo "sou o Watcher-ai!"
https://github.com/eiti-kimura-movile/spark-mllib-sample
Globalcode – Open4education
Watcher-ai
Registros de Ativação
CARRIER 1
CARRIER 2
CARRIER 4
CARRIER 5
Globalcode – Open4education
CARRIER 1
CARRIER 2
CARRIER 4
CARRIER 5
Globalcode – Open4education
Resultados Preliminares
• Usado como última barreira de monitoramento
• Ajudou a diagnosticar problemas nos últimos 2
meses
• Detectou problemas nos sistemas de
monitoramento
• Detecta discrepância nos números hora-a-hora
• Os modelos devem ser treinados
frequentemente
Globalcode – Open4education
Dicas Práticas
• Defina a medida de desempenho do modelo
• Se pergunte: qual o desempenho desejado? que
hardware será necessário? quando o projeto precisa
terminar?
• Inicie com o modelo mais simples que conseguir
• Se não atingir o objetivo, tente modelos mais
complexos (se possível)
Sebastian Raschka - Livro Python Machine Learning
Globalcode – Open4education
É só o começo…
• Usar os próprios dados coletados para alimentar o
modelo
• Treinar o modelo automaticamente
• Analisar os erros e tempos de resposta para prever
se trata-se de um problema coma operadora
• Alertar mais pessoas e times específicos
• Muito mais para melhorar...
Globalcode – Open4education
MUITO OBRIGADO!
eitikimura eiti-kimura-movile eiti.kimura@movile.com
flavioclesio fclesio flavio.clesio@movile.com
talentos@movile.com
Globalcode – Open4education
Referências
Basics
http://machinelearningmastery.com/a-tour-of-machine-learning-algorithms/
Reference Books
http://www.amazon.com/Machine-Learning-Spark-Powerful-Algorithms/dp/1783288515
https://www.packtpub.com/big-data-and-business-intelligence/python-machine-learning
Machine Learning Datasets Repository
http://archive.ics.uci.edu/ml/
Globalcode – Open4education

More Related Content

What's hot (6)

Análise de dados com R - TDC 2015
Análise de dados com R - TDC 2015Análise de dados com R - TDC 2015
Análise de dados com R - TDC 2015
 
Tdc2015 bigdata-mpias-final-pdf
Tdc2015 bigdata-mpias-final-pdfTdc2015 bigdata-mpias-final-pdf
Tdc2015 bigdata-mpias-final-pdf
 
MediaKit 2016 do DatabaseCast
MediaKit 2016 do DatabaseCastMediaKit 2016 do DatabaseCast
MediaKit 2016 do DatabaseCast
 
Pentaho, Hadoop , Big Data e Data Lakes
Pentaho, Hadoop , Big Data e Data LakesPentaho, Hadoop , Big Data e Data Lakes
Pentaho, Hadoop , Big Data e Data Lakes
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigData
 
TDC2016SP - Trilha Quebrando um monolítico J2EE, uma história de trás das tri...
TDC2016SP - Trilha Quebrando um monolítico J2EE, uma história de trás das tri...TDC2016SP - Trilha Quebrando um monolítico J2EE, uma história de trás das tri...
TDC2016SP - Trilha Quebrando um monolítico J2EE, uma história de trás das tri...
 

Viewers also liked

Resume testing
Resume  testingResume  testing
Resume testing
Neha KM
 

Viewers also liked (20)

00253
0025300253
00253
 
Les points forts
Les points fortsLes points forts
Les points forts
 
презентація декади природничих наук
презентація декади природничих наукпрезентація декади природничих наук
презентація декади природничих наук
 
Romanticismo
RomanticismoRomanticismo
Romanticismo
 
Building Envelope-Web2
Building Envelope-Web2Building Envelope-Web2
Building Envelope-Web2
 
Getec Industrial Turnkey Heat Sink Thermal Solution Division
Getec Industrial Turnkey Heat Sink Thermal Solution DivisionGetec Industrial Turnkey Heat Sink Thermal Solution Division
Getec Industrial Turnkey Heat Sink Thermal Solution Division
 
Resume testing
Resume  testingResume  testing
Resume testing
 
Aptitude Training - PERCENTAGE 1
Aptitude Training - PERCENTAGE 1Aptitude Training - PERCENTAGE 1
Aptitude Training - PERCENTAGE 1
 
Schluchtensteig
SchluchtensteigSchluchtensteig
Schluchtensteig
 
El vent
El vent  El vent
El vent
 
CE for spatz balloon אישור
CE for spatz balloon אישורCE for spatz balloon אישור
CE for spatz balloon אישור
 
תמ"א 35/1/ב: ישובים כפריים הכלולים בלוח 2 בתמ"א
תמ"א 35/1/ב: ישובים כפריים הכלולים בלוח 2 בתמ"אתמ"א 35/1/ב: ישובים כפריים הכלולים בלוח 2 בתמ"א
תמ"א 35/1/ב: ישובים כפריים הכלולים בלוח 2 בתמ"א
 
TDC2016SP - Machine Learning com R
TDC2016SP - Machine Learning com RTDC2016SP - Machine Learning com R
TDC2016SP - Machine Learning com R
 
El circuit electric_1er_eso
El circuit electric_1er_esoEl circuit electric_1er_eso
El circuit electric_1er_eso
 
C PROGRAMMING BASICS- COMPUTER PROGRAMMING UNIT II
C PROGRAMMING BASICS- COMPUTER PROGRAMMING UNIT IIC PROGRAMMING BASICS- COMPUTER PROGRAMMING UNIT II
C PROGRAMMING BASICS- COMPUTER PROGRAMMING UNIT II
 
William Giba Digital Resume/CV
William Giba Digital Resume/CVWilliam Giba Digital Resume/CV
William Giba Digital Resume/CV
 
Teatro Valle-Inclán
Teatro Valle-InclánTeatro Valle-Inclán
Teatro Valle-Inclán
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigData
 
Geodinamica externa
Geodinamica externaGeodinamica externa
Geodinamica externa
 
Introdução ao Deep Learning com o TensorFlow
Introdução ao Deep Learning com o TensorFlowIntrodução ao Deep Learning com o TensorFlow
Introdução ao Deep Learning com o TensorFlow
 

Similar to TDC2016SP - SparkMLlib Machine Learning na Prática

Eiti Kimura - Analisador de dados automatizado utilizando machine learning
Eiti Kimura - Analisador de dados automatizado utilizando machine learningEiti Kimura - Analisador de dados automatizado utilizando machine learning
Eiti Kimura - Analisador de dados automatizado utilizando machine learning
DevCamp Campinas
 

Similar to TDC2016SP - SparkMLlib Machine Learning na Prática (20)

[TDC2016] Apache SparkMLlib: Machine Learning na Prática
[TDC2016] Apache SparkMLlib:  Machine Learning na Prática[TDC2016] Apache SparkMLlib:  Machine Learning na Prática
[TDC2016] Apache SparkMLlib: Machine Learning na Prática
 
Eiti Kimura - Analisador de dados automatizado utilizando machine learning
Eiti Kimura - Analisador de dados automatizado utilizando machine learningEiti Kimura - Analisador de dados automatizado utilizando machine learning
Eiti Kimura - Analisador de dados automatizado utilizando machine learning
 
Machine Learning com Vowpal Wabbit
Machine Learning com Vowpal WabbitMachine Learning com Vowpal Wabbit
Machine Learning com Vowpal Wabbit
 
Métricas de Aplicação - Implementando e utilizando a seu favor
Métricas de Aplicação - Implementando e utilizando a seu favorMétricas de Aplicação - Implementando e utilizando a seu favor
Métricas de Aplicação - Implementando e utilizando a seu favor
 
TDC2017 | Florianópolis - Trilha Java Melhorando a performance do seu Código ...
TDC2017 | Florianópolis - Trilha Java Melhorando a performance do seu Código ...TDC2017 | Florianópolis - Trilha Java Melhorando a performance do seu Código ...
TDC2017 | Florianópolis - Trilha Java Melhorando a performance do seu Código ...
 
Tdc2016 trilha-banco-influx.ppt
Tdc2016 trilha-banco-influx.pptTdc2016 trilha-banco-influx.ppt
Tdc2016 trilha-banco-influx.ppt
 
InfluxDb: como monitorar milhares de dados por segundo em real time
InfluxDb: como monitorar milhares de dados por segundo em real time InfluxDb: como monitorar milhares de dados por segundo em real time
InfluxDb: como monitorar milhares de dados por segundo em real time
 
ASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis Paulino
 
tdc-recife-2020-complexidade-cognitiva
tdc-recife-2020-complexidade-cognitivatdc-recife-2020-complexidade-cognitiva
tdc-recife-2020-complexidade-cognitiva
 
TDC2016SP - Trilha Banco de Dados
TDC2016SP - Trilha Banco de DadosTDC2016SP - Trilha Banco de Dados
TDC2016SP - Trilha Banco de Dados
 
Monitorando serviços REST com o Application Insights
Monitorando serviços REST com o Application InsightsMonitorando serviços REST com o Application Insights
Monitorando serviços REST com o Application Insights
 
Inspeção de Código Clipper - Case de um projeto ágil
Inspeção de Código Clipper - Case de um projeto ágilInspeção de Código Clipper - Case de um projeto ágil
Inspeção de Código Clipper - Case de um projeto ágil
 
Construindo um micro-serviço Java 100% funcional em 15 minutos
Construindo um micro-serviço Java 100% funcional em 15 minutosConstruindo um micro-serviço Java 100% funcional em 15 minutos
Construindo um micro-serviço Java 100% funcional em 15 minutos
 
Introdução a Big Data e Apache Solr
Introdução a Big Data e Apache SolrIntrodução a Big Data e Apache Solr
Introdução a Big Data e Apache Solr
 
DataOps: da teoria a prática, como realmente se aplica em projetos de BigData
DataOps: da teoria a prática, como realmente se aplica em projetos de BigDataDataOps: da teoria a prática, como realmente se aplica em projetos de BigData
DataOps: da teoria a prática, como realmente se aplica em projetos de BigData
 
Introduzindo StimulusJS: o novo Framework JavaScript para Ruby On Rails.
Introduzindo StimulusJS: o novo Framework JavaScript para Ruby On Rails.Introduzindo StimulusJS: o novo Framework JavaScript para Ruby On Rails.
Introduzindo StimulusJS: o novo Framework JavaScript para Ruby On Rails.
 
TDC São Paulo Online 2020 - trilha Big Data
TDC São Paulo Online 2020 - trilha Big DataTDC São Paulo Online 2020 - trilha Big Data
TDC São Paulo Online 2020 - trilha Big Data
 
Oracleplsql
OracleplsqlOracleplsql
Oracleplsql
 
ALM - Testes Manuais no Microsoft Test Manager
ALM - Testes Manuais no Microsoft Test ManagerALM - Testes Manuais no Microsoft Test Manager
ALM - Testes Manuais no Microsoft Test Manager
 
Planejamento rede
Planejamento rede Planejamento rede
Planejamento rede
 

More from tdc-globalcode

More from tdc-globalcode (20)

TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidade
TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidadeTDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidade
TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidade
 
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
 
TDC2019 Intel Software Day - ACATE - Cases de Sucesso
TDC2019 Intel Software Day - ACATE - Cases de SucessoTDC2019 Intel Software Day - ACATE - Cases de Sucesso
TDC2019 Intel Software Day - ACATE - Cases de Sucesso
 
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPA
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPATDC2019 Intel Software Day - Otimizacao grafica com o Intel GPA
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPA
 
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVinoTDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
 
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
 
TDC2019 Intel Software Day - Inferencia de IA em edge devices
TDC2019 Intel Software Day - Inferencia de IA em edge devicesTDC2019 Intel Software Day - Inferencia de IA em edge devices
TDC2019 Intel Software Day - Inferencia de IA em edge devices
 
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca PublicaTrilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
 
Trilha .Net - Programacao funcional usando f#
Trilha .Net - Programacao funcional usando f#Trilha .Net - Programacao funcional usando f#
Trilha .Net - Programacao funcional usando f#
 
TDC2018SP | Trilha Go - Case Easylocus
TDC2018SP | Trilha Go - Case EasylocusTDC2018SP | Trilha Go - Case Easylocus
TDC2018SP | Trilha Go - Case Easylocus
 
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
 
TDC2018SP | Trilha Go - Clean architecture em Golang
TDC2018SP | Trilha Go - Clean architecture em GolangTDC2018SP | Trilha Go - Clean architecture em Golang
TDC2018SP | Trilha Go - Clean architecture em Golang
 
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QATDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
 
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendenciaTDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
 
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR ServiceTDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
 
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NETTDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
 
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
 
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
 
TDC2018SP | Trilha .Net - .NET funcional com F#
TDC2018SP | Trilha .Net - .NET funcional com F#TDC2018SP | Trilha .Net - .NET funcional com F#
TDC2018SP | Trilha .Net - .NET funcional com F#
 
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor em .Net Core
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor  em .Net CoreTDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor  em .Net Core
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor em .Net Core
 

Recently uploaded

ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
azulassessoria9
 
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
azulassessoria9
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
azulassessoria9
 
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
azulassessoria9
 
Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemática
sh5kpmr7w7
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
azulassessoria9
 
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
azulassessoria9
 
Aprender as diferentes formas de classificar as habilidades motoras é de extr...
Aprender as diferentes formas de classificar as habilidades motoras é de extr...Aprender as diferentes formas de classificar as habilidades motoras é de extr...
Aprender as diferentes formas de classificar as habilidades motoras é de extr...
azulassessoria9
 

Recently uploaded (20)

ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
 
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxMonoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
 
O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...
O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...
O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...
 
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
 
AULÃO de Língua Portuguesa para o Saepe 2022
AULÃO de Língua Portuguesa para o Saepe 2022AULÃO de Língua Portuguesa para o Saepe 2022
AULÃO de Língua Portuguesa para o Saepe 2022
 
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
 
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
 
Acessibilidade, inclusão e valorização da diversidade
Acessibilidade, inclusão e valorização da diversidadeAcessibilidade, inclusão e valorização da diversidade
Acessibilidade, inclusão e valorização da diversidade
 
Falando de Física Quântica apresentação introd
Falando de Física Quântica apresentação introdFalando de Física Quântica apresentação introd
Falando de Física Quântica apresentação introd
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
 
INTERTEXTUALIDADE atividade muito boa para
INTERTEXTUALIDADE   atividade muito boa paraINTERTEXTUALIDADE   atividade muito boa para
INTERTEXTUALIDADE atividade muito boa para
 
Questões de Língua Portuguesa - gincana da LP
Questões de Língua Portuguesa - gincana da LPQuestões de Língua Portuguesa - gincana da LP
Questões de Língua Portuguesa - gincana da LP
 
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
 
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxSlides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
 
Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemática
 
aprendizagem significatica, teórico David Ausubel
aprendizagem significatica, teórico David Ausubelaprendizagem significatica, teórico David Ausubel
aprendizagem significatica, teórico David Ausubel
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
 
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
 
Apresentação | Símbolos e Valores da União Europeia
Apresentação | Símbolos e Valores da União EuropeiaApresentação | Símbolos e Valores da União Europeia
Apresentação | Símbolos e Valores da União Europeia
 
Aprender as diferentes formas de classificar as habilidades motoras é de extr...
Aprender as diferentes formas de classificar as habilidades motoras é de extr...Aprender as diferentes formas de classificar as habilidades motoras é de extr...
Aprender as diferentes formas de classificar as habilidades motoras é de extr...
 

TDC2016SP - SparkMLlib Machine Learning na Prática

  • 1. Globalcode – Open4education Apache SparkMLlib Machine Learning na Prática Eiti Kimura Trilha: Machine Learning Coordenador de Desenvolvimento Flávio Clésio Core Machine Learning
  • 2. Globalcode – Open4education Quem sou eu? • Arquiteto de software e Coordenador de TI na Movile • Apache Cassandra Developer 1.1 Certified (2013) • Apache Cassandra MVP (2014/2015 e 2015/2016) • Apache Cassandra Contributor (2015) • Cassandra Summit Speaker (2014 e 2015) • Cassandra Summit Reviewer (2016) Eiti Kimura eitikimura
  • 3. Globalcode – Open4education Quem sou eu? Flávio Clésio • Core Machine Learning na Movile • Coordenador de Revenue Assurance na Movile • Mestre em Inteligência Computacional(Aplicação no Mercado Financeiro) • Especialista em Data Mining e Business Intelligence com mais de 8 anos de experiência • Autor do blog Mineração de Dados (http: //mineracaodedados.wordpress.com) flavioclesio
  • 4. Globalcode – Open4education A Movile é a empresa por trás das apps que fazem sua vida mais fácil!
  • 5. Globalcode – Open4education O Melhor conteúdo para Crianças
  • 6. Globalcode – Open4education Líder em delivery de comida no Brasil
  • 7. Globalcode – Open4education Agenda • O caso do sistema de tarifação da Movile • Apresentando o Watcher-ai • Um pouco de teoria sobre a regressão linear • Utilização de um modelo treinado em uma aplicação Java Objetivos
  • 8. Globalcode – Open4education • Apresentar o uso prático de Machine Learning focado em um caso de uso real usando spark- notebook para processar e testar modelos de ML e então implementar esse modelo em uma plataforma Java. Objetivos
  • 9. Globalcode – Open4education Problema: Monitoramento Plataforma de tarifações da Movile Como podemos checar se a plataforma está funcionando baseado apenas em análise de dados? Que tal pedir ajuda a um sistema inteligente?
  • 10. Globalcode – Open4education Clientes assinam um produto ou serviço A assinatura é persistida em um banco de dados A assinatura é tarifada A plataforma gerencia o ciclo de vida da assinatura Plataforma de tarifação em sua forma mais simples
  • 11. Globalcode – Open4education Trabalhando com Dados plataforma de tarifação (0-6h) Últimos 3 dias de análise de cada uma das operadoras
  • 15. Globalcode – Open4education Natureza dos Dados ou: O que eu quero saber? Dado um vetor de dados Amostra de dados de número de tentativas: 2.623.447, [4.0, 17h, 3.0] Amostra de dados de número de tentativas com sucesso: 61.083, [4.0, 17h, 3.0, 1259.0, 24.751.650 , 2.193.67, 26.314.551] Número esperado de Tentativas de Tarifação Número Esperado de Sucessos características label # success carrier_id hour week response_time no_credit errors attempts carrier_id hour week APRENDIZADO SUPERVISIONADO Regressão Linear
  • 16. Globalcode – Open4education Qual algoritmo selecionar? Sebastian Raschka - Livro Python Machine Learning Quando envolvido em problemas de aprendizagem supervisionada, o meu conselho é começar com a mais simples hipótese em primeiro lugar. Isto é, tentar um modelo linear, como regressão logística. Se não funcionar "bem" (isto é, ele não atende expectativas ou critério de desempenho definido anteriormente), então passe para um próximo experimento.
  • 17. Globalcode – Open4education Spark MLlib Seu objetivo é fazer com que a aprendizagem máquina seja escalável e fácil. Consiste de algoritmos comuns de aprendizagem e utilitários, incluindo a classificação, regressão, clusterização, filtragem colaborativa, redução de dimensionalidade, pipelines.
  • 18. Globalcode – Open4education • Model Linear com Stochastic Gradient Descent (SDG) • Lasso com Modelo SGD (Regularização L1) • Regressão Ridge com Modelo SGD (Regularização L2) • Árvore de Decisão com Regressão Algoritmos testados Apache MLlib
  • 19. Globalcode – Open4education Um pouco de teoria sobre Regressão... A Regressão Linear é um método estatístico que investiga o relacionamento e interdependência entre variáveis para obtenção de um resultado numérico.
  • 20. Globalcode – Open4education Um pouco de matemática y = α + (β1 * x1) + (β2 * x2) + (βn * xn) + ε y = Valor a ser previsto (variável dependente) α = Intercepto (onde a reta da regressão atinge o eixo Y e o valor de x = 0) - Fatores Endógenos β = Coeficientes Regressores x1...xn = Valores das variáveis independentes (e.g. colunas de um banco de dados) ε = Erros residuais ou erros não explícitos - Fatores Exógenos Em que:
  • 21. Globalcode – Open4education Um pouco de matemática (Modelo de uma operadora) Sucessos = (1.38 * Operadora) + (0.70 * Hora do Dia) + (1.63 * Semana do Mês) + (0.47 * Tempo de Resposta) + (0.40 * Tentativas sem crédito) + (0.70 * Erros de tentativas) + (0.40) * Número de Tentativas) coeficientes β obtidos do modelo treinado
  • 22. Globalcode – Open4education Vamos falar sobre Regularização • Um problema comum com os problemas de regressão é a alta dimensionalidade da base de dados (ex: Projeto Genoma em que a base de dados tem mais de 5000 variáveis) • A equação se torna tão complexa que converge muito rápido para o Overfitting!
  • 23. Globalcode – Open4education Vamos falar sobre Regularização • Para evitar esse tipo de problema o Spark MLlib incorpora alguns métodos de regularização como o LASSO(L1) e Ridge (L2). • A regularização LASSO (L1) adiciona a penalização equivalente ao valor absoluto da magnitude dos coeficientes • Já utilizando a regularização Ridge(L2) a penalização é equivalente à magnitude dos coeficientes elevada ao quadrado.
  • 24. Globalcode – Open4education É um método em que diversos parâmetros de um modelo são ajustados de maneira iterativa para minimizar a função de erro. Essa abordagem é feita usando aproximação estocástica para minimizar alguma função objetivo. A função objetivo nesse caso é para reduzir o erro cumulativo nas instâncias de treinamento e teste. A abordagem estocástica é usada devido ao fato de que a base de dados é muito grande, e essa abordagem aleatória acelera a função de minimização. Gradiente Descendente
  • 25. Globalcode – Open4education Gradiente Descendente Estocástico Fazendo um terno no alfaiate Exemplo: Stochastic Gradient Descent (Fazendo terno no alfaiate) 1) O alfaiate faz uma estimativa inicial 2) Um cara aleatório (de um pequeno grupo ou do conjunto de completo de pessoas) veste o terno e dá o feedback (e.g. está apertado, folgado, etc) 3) O alfaiate faz um pequeno ajuste de acordo com o feedback passado; e 4) Enquanto o alfaiate tem tempo disponível, ele volta para o passo 2 e refaz o processo.
  • 26. Globalcode – Open4education • Regressão usando Árvores de Decisão
  • 27. Globalcode – Open4education A única métrica que importa ou OMTM (One Metric That Matters) Verificar Desempenho Modelos de regressão Mean Squared Error (MSE) É a soma da raiz quadrada da média em relação às diferenças entre os valores previstos (y) e os valores originais de um conjunto de teste (x).
  • 28. Globalcode – Open4education Spark Notebook http://spark-notebook.io/ spark-notebook-0.6.2$ ./bin/spark-notebook Walkthrough
  • 29. Globalcode – Open4education Avaliação de Desempenho Algoritmos de Aprendizado Particionamento dos dados 70% para treinamento 30% para testes val labelsAndPredictions = test.map { point => val carrier = point.features.apply(0) val model = mapModel(carrier) val prediction = model.predict(point.features) (point.label, prediction) } trecho de código em Scala
  • 30. Globalcode – Open4education Watcher-ai Tecnologias Gradle gestão de dependência, build, deploy Spring injeção de dependência, setup rápido Spark MLlib carga de modelos, previsão de dados Pushbullet API envio de notificações $ echo "Olá! " $ echo "sou o Watcher-ai!" https://github.com/eiti-kimura-movile/spark-mllib-sample
  • 31. Globalcode – Open4education Watcher-ai Registros de Ativação CARRIER 1 CARRIER 2 CARRIER 4 CARRIER 5
  • 32. Globalcode – Open4education CARRIER 1 CARRIER 2 CARRIER 4 CARRIER 5
  • 33. Globalcode – Open4education Resultados Preliminares • Usado como última barreira de monitoramento • Ajudou a diagnosticar problemas nos últimos 2 meses • Detectou problemas nos sistemas de monitoramento • Detecta discrepância nos números hora-a-hora • Os modelos devem ser treinados frequentemente
  • 34. Globalcode – Open4education Dicas Práticas • Defina a medida de desempenho do modelo • Se pergunte: qual o desempenho desejado? que hardware será necessário? quando o projeto precisa terminar? • Inicie com o modelo mais simples que conseguir • Se não atingir o objetivo, tente modelos mais complexos (se possível) Sebastian Raschka - Livro Python Machine Learning
  • 35. Globalcode – Open4education É só o começo… • Usar os próprios dados coletados para alimentar o modelo • Treinar o modelo automaticamente • Analisar os erros e tempos de resposta para prever se trata-se de um problema coma operadora • Alertar mais pessoas e times específicos • Muito mais para melhorar...
  • 36. Globalcode – Open4education MUITO OBRIGADO! eitikimura eiti-kimura-movile eiti.kimura@movile.com flavioclesio fclesio flavio.clesio@movile.com talentos@movile.com
  • 37. Globalcode – Open4education Referências Basics http://machinelearningmastery.com/a-tour-of-machine-learning-algorithms/ Reference Books http://www.amazon.com/Machine-Learning-Spark-Powerful-Algorithms/dp/1783288515 https://www.packtpub.com/big-data-and-business-intelligence/python-machine-learning Machine Learning Datasets Repository http://archive.ics.uci.edu/ml/