webinar: amazon machine learning

56
©2015, Amazon Web Services, Inc. or its affiliates. All rights reserved Aplicações com Amazon Machine Learning Alex Coqueiro Arquiteto de Soluções para o Setor Público

Upload: amazon-web-services-latam

Post on 07-Jan-2017

520 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Webinar: Amazon Machine Learning

©2015, Amazon Web Services, Inc. or its affiliates. All rights reserved

Aplicações com Amazon Machine Learning

Alex CoqueiroArquiteto de Soluções para o Setor Público

Page 2: Webinar: Amazon Machine Learning

Dados como parte essencial das aplicações

Front-end e UX Mobile Back-end e operações

Dados transacionais e

análiticos

Page 3: Webinar: Amazon Machine Learning

Três abordagens para o desenvolvimento orientado a dados (data-driven development)

RetrospectivaAnálise e Relatório

Page 4: Webinar: Amazon Machine Learning

Três abordagens para o desenvolvimento orientado a dados (data-driven development)

RetrospectivaAnálise e Relatório

Tempo RealProcessamento em

tempo real e dashboards

Page 5: Webinar: Amazon Machine Learning

Três abordagens para o desenvolvimento orientado a dados (data-driven development)

RetrospectivaAnálise e Relatório

Tempo RealProcessamento em

tempo real e dashboards

PreditivoHabilitar

aplicações inteligentes

Page 6: Webinar: Amazon Machine Learning

Machine Learning

Machine Learning é um método de análise de dados que ajuda na busca de modelos de descoberta de padrões existentes de dados

Page 7: Webinar: Amazon Machine Learning

Ok… entendi ... e na prática?

Page 8: Webinar: Amazon Machine Learning

Identificação de Padrões: Exemplo 1Nome Transação Fraude

Joao R$ 2.342,50 Não

Maria R$ 2.113,00 Sim

Mario R$ 2.222,22 SimCristina R$ 3.423,20 Não

Marcelo R$ 940,34 Sim

Page 9: Webinar: Amazon Machine Learning

Identificação de Padrões: Exemplo 1Nome Transação Fraude

Joao R$ 2.342,50 Não

Maria R$ 2.113,00 Sim

Mario R$ 2.222,22 SimCristina R$ 3.423,20 Não

Marcelo R$ 940,34 Sim

Page 10: Webinar: Amazon Machine Learning

Identificação de Padrões: Exemplo 2Nome Transação Nascimento Local Trans Idade Fraude

Joao R$ 2.342,50 SP SP 21 NãoMaria R$ 5.113,00 SP RJ 22 Sim

Mario R$ 4.222,22 SP RJ 25 SimCristina R$ 5.423,20 AM SC 40 Não

Marcelo R$ 4.940,34 SP RJ 18 Sim

Ronaldo R$ 3.423,20 SP PR 18 Não

Pedro R$ 423,20 PR SP 18 Não

Simone R$ 1.001,20 DF SP 35 Não

Eduardo R$ 1.012,20 SP RJ 40 Não

Sergio R$ 3.300,10 SP BA 43 Não

Alex R$ 4.004,20 SP RJ 22 Sim

Fabio R$ 4.001,99 RJ SP 37 Não

Page 11: Webinar: Amazon Machine Learning

Identificação de Padrões: Exemplo 2Nome Transação Nascimento Local Trans Idade Fraude

Joao R$ 2.342,50 SP SP 21 NãoMaria R$ 5.113,00 SP RJ 22 Sim

Mario R$ 4.222,22 SP RJ 25 SimCristina R$ 5.423,20 AM SC 40 Não

Marcelo R$ 4.940,34 SP RJ 18 Sim

Ronaldo R$ 3.423,20 SP PR 18 Não

Pedro R$ 423,20 PR SP 18 Não

Simone R$ 1.001,20 DF SP 35 Não

Eduardo R$ 1.012,20 SP RJ 40 Não

Sergio R$ 3.300,10 SP BA 43 Não

Alex R$ 4.004,20 SP RJ 22 Sim

Fabio R$ 4.001,99 RJ SP 37 Não

Page 12: Webinar: Amazon Machine Learning

Exemplos de Aplicações Práticas

Baseado no que você sabe do seu cliente:

Ele irá adquirir seu novo produto?

Page 13: Webinar: Amazon Machine Learning

Exemplos de Aplicações Práticas

Baseado no que você sabe a respeito do pedido:

Seria uma transação fraudulenta?

Baseado no que você sabe do seu cliente:

Ele irá adquirir seu novo produto?

Page 14: Webinar: Amazon Machine Learning

Exemplos de Aplicações Práticas

Baseado no que você sabe a respeito do pedido:

Seria uma transação fraudulenta?

Baseado no que você sabe a respeito da manutenção da sua fábrica:

Quais os robôs que irão precisar de manutenção?

Baseado no que você sabe do seu cliente:

Ele irá adquirir seu novo produto?

Page 15: Webinar: Amazon Machine Learning

Humm…mas isso pode ficar complexo …

Page 16: Webinar: Amazon Machine Learning

Tipos de Machine Learning

Machine Learning

Supervisionado Não Supervisionado

Modelos preditivosClassificação/Regressão

Modelos descritivosCluster

Page 17: Webinar: Amazon Machine Learning

Amazon Machine Learning (AML)

Facilidade de uso, serviço gerenciado de machine learning construído para desenvolvedores

Robustes em tecnologia de machine learning

Criação de modelos usando dados armazenados na cloud da AWS

Deploy de modelos em produção em segundos

Page 18: Webinar: Amazon Machine Learning

Amazon Machine LearningAlgoritmos de Aprendizado Supervisionados1. Classificação Binaria - usado para respostas 0/1

- O cliente irá comprar o produto?- O cliente irá migrar para um plano mais sofisticado?

2. Classificação Multiclass - Classificação de documentação baseado em contexto- Organização produtos em categorias

3. Regressão- Remarcação de preço de produtos- Previsão de demanda futura de Produtos

Page 19: Webinar: Amazon Machine Learning

Amazon Elastic MapReduce (EMR)Algoritmos de Aprendizado Não Supervisionados

Page 20: Webinar: Amazon Machine Learning

Quero ver funcionando ?

Page 21: Webinar: Amazon Machine Learning

Construção domodelo

Avaliação e Otimização

Recuperar Previsões

1 2 3

Page 22: Webinar: Amazon Machine Learning

Treinar Modelo

Avaliação e Otimização

Recuperar Previsões

1 2 3

Page 23: Webinar: Amazon Machine Learning

Criar o Datasource

>>> import boto

>>> ml = boto.connect_machinelearning()

>>> ds = ml.create_data_source_from_s3(data_source_id = ’my_datasource', data_spec= { 'DataLocationS3':'s3://bucket/input/', 'DataSchemaLocationS3':'s3://bucket/input/.schema'}, compute_statistics = True)

Page 24: Webinar: Amazon Machine Learning

Explorar e entender os dados

Page 25: Webinar: Amazon Machine Learning

Treinar seu modelo

>>> import boto

>>> ml = boto.connect_machinelearning()

>>> model = ml.create_ml_model( ml_model_id=’my_model', ml_model_type='REGRESSION', training_data_source_id='my_datasource')

Page 26: Webinar: Amazon Machine Learning

Treinar Modelo

Avaliação e Otimização

Recuperar Previsões

1 2 3

Construir aplicações com Amazon ML

- Entender a qualidade do modelo- Ajustes na interpretação

Page 27: Webinar: Amazon Machine Learning

Explorar qualidade do modelo

Page 28: Webinar: Amazon Machine Learning

Refinamento na interpretação do modelo

Page 29: Webinar: Amazon Machine Learning

Refinamento na interpretação do modelo

Page 30: Webinar: Amazon Machine Learning

Treinar Modelo

Avaliação e Otimização

Recuperar Previsões

1 2 3

Construir aplicações com Amazon ML

- Previsões em batch- Previsões em tempo real

Page 31: Webinar: Amazon Machine Learning

Batch Predictions

Assincrono, geração de dados a partir de grande volume de dados

Requisição por meio de console ou API>>> import boto

>>> ml = boto.connect_machinelearning()

>>> model = ml.create_batch_prediction( batch_prediction_id = 'my_batch_prediction’ batch_prediction_data_source_id = ’my_datasource’ ml_model_id = ’my_model', output_uri = 's3://examplebucket/output/’)

Page 32: Webinar: Amazon Machine Learning

Real-time predictions

Sincrono, baixa latência, alto throughput na geração de previsões

Requesição por API ou server ou SDK mobile

Lida com aplicações que necessitam avaliar registros individualmente

>>> import boto

>>> ml = boto.connect_machinelearning()

>>> ml.predict( ml_model_id=’my_model', predict_endpoint=’example_endpoint’, record={’key1':’value1’, ’key2':’value2’})

{ 'Prediction': { 'predictedValue': 13.284348, 'details': { 'Algorithm': 'SGD', 'PredictiveModelType': 'REGRESSION’ } }}

Page 33: Webinar: Amazon Machine Learning

Considerações Finais

Page 34: Webinar: Amazon Machine Learning

Explore arquiteturas a partir da combinação de serviços existentes

Page 35: Webinar: Amazon Machine Learning

Cenário Integrado com BI

Structured Data/PredictionsAmazon Redshift

Generate/Query Predictions

Amazon QuickSight

Application

Amazon Machine Learning

Visualize

Page 36: Webinar: Amazon Machine Learning

Query for predictions with Amazon ML batch API

Process data with EMR

Raw data in S3Aggregated data

in S3Predictions

in S3 Your application

Cenário Integrado com Bigdata

Page 37: Webinar: Amazon Machine Learning

… e o preço …

Page 38: Webinar: Amazon Machine Learning

Pague somente pelo que usa

Análise de dados, treinamento do modelo, e avaliação: $0.42/instance hour

Batch predictions: $0.10/1000

Real-time predictions: $0.10/1000

Page 39: Webinar: Amazon Machine Learning

Muito ObrigadoPor favor, complete a seção de feedbacks

Alex CoqueiroArquiteto de Soluções para o Setor Público

Page 40: Webinar: Amazon Machine Learning

Você esta fazendo a pergunta certa ?

Page 41: Webinar: Amazon Machine Learning

Você tem o dado correto?

Page 42: Webinar: Amazon Machine Learning

Você sabe mensurar o sucesso da análise ?

Page 43: Webinar: Amazon Machine Learning

Agenda

• Machine learning and the data ecosystem• Smart applications by example (and counter-

example)• Amazon Machine Learning features and benefits• Developing with Amazon ML• Q&A

Page 44: Webinar: Amazon Machine Learning

Batch predictions with Amazon Redshift

Structured dataIn Amazon Redshift

Load predictions into Amazon Redshift

-or-Read prediction results

directly from S3Predictions

in S3

Query for predictions with Amazon ML batch API

Your application

Page 45: Webinar: Amazon Machine Learning

Adding predictions to an existing data flow

Your applicationAmazon

DynamoDB

Lambda

+

Trigger event with Lambda+

Query for predictions with Amazon ML real-time API

Page 46: Webinar: Amazon Machine Learning

Data Engineer familiar with Hadoop and Spark

Data EngineerExisting Structured Data

Amazon Redshift

New Structured Data Amazon Redshift

Amazon EMR

spark-redshift

Enrichment /Transformation

ETL

Data SourceAmazon Redshift

Integration

Page 47: Webinar: Amazon Machine Learning

Construindo uma aplicação

Caro Alex,

Compre este quadcoptero R$49.99!

Page 48: Webinar: Amazon Machine Learning

Construindo uma aplicação

SELECT c.IDFROM customers c LEFT JOIN orders o ON c.ID = o.customerGROUP BY c.IDHAVING o.date > GETDATE() – 30

Vamos iniciar vendendo para quem fez alguma compra nos últimos 30 dias

Page 49: Webinar: Amazon Machine Learning

Construindo uma aplicação

SELECT c.IDFROM customers c LEFT JOIN orders o ON c.ID = o.customerGROUP BY c.IDHAVING O.CATEGORY = ‘TOYS’ AND o.date > GETDATE() – 30

… Vamos ser mais específicos. Vamos oferecer para quem comprou brinquedos

Page 50: Webinar: Amazon Machine Learning

Construindo uma aplicação

SELECT c.IDFROM customers c LEFT JOIN orders o ON c.ID = o.customer LEFT JOIN PRODUCTS P ON P.ID = O.PRODUCTGROUP BY c.IDHAVING o.category = ‘toys’ AND ((P.DESCRIPTION LIKE ‘%HELICOPTER%’ AND O.DATE > GETDATE() - 60) OR (COUNT(*) > 2 AND SUM(o.price) > 200 AND o.date > GETDATE() – 30) )

… vamos expandir e colocar quem comprou helicoptero de brinquedo

Page 51: Webinar: Amazon Machine Learning

Construindo uma aplicação

SELECT c.IDFROM customers c LEFT JOIN orders o ON c.ID = o.customer LEFT JOIN products p ON p.ID = o.productGROUP BY c.IDHAVING o.category = ‘toys’ AND ((p.description LIKE ‘%COPTER%’ AND o.date > GETDATE() - 60) OR (COUNT(*) > 2 AND SUM(o.price) > 200 AND o.date > GETDATE() – 30) )

… mas e os quadcopteros?

Page 52: Webinar: Amazon Machine Learning

Construindo uma aplicação

SELECT c.IDFROM customers c LEFT JOIN orders o ON c.ID = o.customer LEFT JOIN products p ON p.ID = o.productGROUP BY c.IDHAVING o.category = ‘toys’ AND ((p.description LIKE ‘%copter%’ AND o.date > GETDATE() - 120) OR (COUNT(*) > 2 AND SUM(o.price) > 200 AND o.date > GETDATE() – 30) )

… talvez eu precise pegar um universo temporal maior

Page 53: Webinar: Amazon Machine Learning

Construindo uma aplicação

SELECT c.IDFROM customers c LEFT JOIN orders o ON c.ID = o.customer LEFT JOIN products p ON p.ID = o.productGROUP BY c.IDHAVING o.category = ‘toys’ AND ((p.description LIKE ‘%copter%’ AND o.date > GETDATE() - 120) OR (COUNT(*) > 2 AND SUM(o.price) > 200 AND o.date > GETDATE() – 40) )

… vamos ajustar os tempos

Page 54: Webinar: Amazon Machine Learning

Construindo uma aplicação

SELECT c.IDFROM customers c LEFT JOIN orders o ON c.ID = o.customer LEFT JOIN products p ON p.ID = o.productGROUP BY c.IDHAVING o.category = ‘toys’ AND ((p.description LIKE ‘%copter%’ AND o.date > GETDATE() - 120) OR (COUNT(*) > 2 AND SUM(o.price) > 150 AND o.date > GETDATE() – 40) )

… novamente

Page 55: Webinar: Amazon Machine Learning

Construindo uma aplicação

SELECT c.IDFROM customers c LEFT JOIN orders o ON c.ID = o.customer LEFT JOIN products p ON p.ID = o.productGROUP BY c.IDHAVING o.category = ‘toys’ AND ((p.description LIKE ‘%copter%’ AND o.date > GETDATE() - 90) OR (COUNT(*) > 2 AND SUM(o.price) > 150 AND o.date > GETDATE() – 40) )

… não está fucionando

Page 56: Webinar: Amazon Machine Learning

Construindo uma aplicação

SELECT c.IDFROM customers c LEFT JOIN orders o ON c.ID = o.customer LEFT JOIN products p ON p.ID = o.productGROUP BY c.IDHAVING o.category = ‘toys’ AND ((p.description LIKE ‘%copter%’ AND o.date > GETDATE() - 90) OR (COUNT(*) > 2 AND SUM(o.price) > 150 AND o.date > GETDATE() – 40) )

E se nos delegassemos isso ao machine learning para aprender com as minhas experiências!