webinar: amazon machine learning

Post on 07-Jan-2017

520 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

©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

Dados como parte essencial das aplicações

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

Dados transacionais e

análiticos

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

RetrospectivaAnálise e Relatório

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

RetrospectivaAnálise e Relatório

Tempo RealProcessamento em

tempo real e dashboards

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

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

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

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

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

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

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

Exemplos de Aplicações Práticas

Baseado no que você sabe do seu cliente:

Ele irá adquirir seu novo produto?

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?

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?

Humm…mas isso pode ficar complexo …

Tipos de Machine Learning

Machine Learning

Supervisionado Não Supervisionado

Modelos preditivosClassificação/Regressão

Modelos descritivosCluster

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

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

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

Quero ver funcionando ?

Construção domodelo

Avaliação e Otimização

Recuperar Previsões

1 2 3

Treinar Modelo

Avaliação e Otimização

Recuperar Previsões

1 2 3

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)

Explorar e entender os dados

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')

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

Explorar qualidade do modelo

Refinamento na interpretação do modelo

Refinamento na interpretação do modelo

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

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/’)

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’ } }}

Considerações Finais

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

Cenário Integrado com BI

Structured Data/PredictionsAmazon Redshift

Generate/Query Predictions

Amazon QuickSight

Application

Amazon Machine Learning

Visualize

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

… e o preço …

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

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

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

Você esta fazendo a pergunta certa ?

Você tem o dado correto?

Você sabe mensurar o sucesso da análise ?

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

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

Adding predictions to an existing data flow

Your applicationAmazon

DynamoDB

Lambda

+

Trigger event with Lambda+

Query for predictions with Amazon ML real-time API

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

Construindo uma aplicação

Caro Alex,

Compre este quadcoptero R$49.99!

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

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

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

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?

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

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

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

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

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!

top related