realtime predictive analytics using rabbitmq & scikit-learn

30
Realtime Predictive Analytics Using scikit-learn and RabbitMQ Michael Becker PyData Boston 2013

Upload: aweber

Post on 06-May-2015

1.471 views

Category:

Technology


4 download

DESCRIPTION

In this talk, AWeber's Michael Becker describes how to deploy a predictive model in a production environment using RabbitMQ and scikit-learn. You'll see a realtime content classification system to demonstrate this design.

TRANSCRIPT

Page 1: Realtime predictive analytics using RabbitMQ & scikit-learn

RealtimePredictive AnalyticsUsing scikit-learn and RabbitMQ

Michael BeckerPyData Boston 2013

Page 2: Realtime predictive analytics using RabbitMQ & scikit-learn

Who is this guy?Software Engineer @ AWeberFounder of the DataPhilly Meetup [email protected]

These slides and more @ github.com/mdbecker

Page 3: Realtime predictive analytics using RabbitMQ & scikit-learn

What I'll cover• Model Distribution

Page 4: Realtime predictive analytics using RabbitMQ & scikit-learn

What I'll cover• Model Distribution• Data flow

Page 5: Realtime predictive analytics using RabbitMQ & scikit-learn

What I'll cover• Model Distribution• Data flow• RabbitMQ

Page 6: Realtime predictive analytics using RabbitMQ & scikit-learn

What I'll cover• Model Distribution• Data flow• RabbitMQ• Demo

Page 7: Realtime predictive analytics using RabbitMQ & scikit-learn

What I'll cover• Model Distribution• Data flow• RabbitMQ• Demo• Scalability

Page 8: Realtime predictive analytics using RabbitMQ & scikit-learn

What I'll cover• Model Distribution• Data flow• RabbitMQ• Demo• Scalability• Other considerations

Page 9: Realtime predictive analytics using RabbitMQ & scikit-learn

Supervised Learning

Page 10: Realtime predictive analytics using RabbitMQ & scikit-learn

38 top wikipediasArabic العربيةBulgarian БългарскиCatalan CatalàCzech ČeštinaDanish DanskGerman DeutschEnglish EnglishSpanish EspañolEstonian EestiBasque EuskaraPersian فارسیFinnish SuomiFrench FrançaisHebrew עבריתHindi हि�न्दी�Croatian HrvatskiHungarian MagyarIndonesian Bahasa IndonesiaItalian Italiano

Japanese 日本語Kazakh ҚазақшаKorean 한국어Lithuanian LietuviųMalay Bahasa MelayuDutch NederlandsNorwegian (Bokmål) Norsk (Bokmål)Polish PolskiPortuguese PortuguêsRomanian RomânăRussian РусскийSlovak SlovenčinaSlovenian SlovenščinaSerbian Српски / SrpskiSwedish SvenskaTurkish TürkçeUkrainian УкраїнськаVietnamese Tiếng ViệtWaray-Waray Winaray

Page 11: Realtime predictive analytics using RabbitMQ & scikit-learn

The model

Page 12: Realtime predictive analytics using RabbitMQ & scikit-learn

Distributing the model

Page 13: Realtime predictive analytics using RabbitMQ & scikit-learn

Data input

Page 14: Realtime predictive analytics using RabbitMQ & scikit-learn

The client

Page 15: Realtime predictive analytics using RabbitMQ & scikit-learn

Message loss

Page 16: Realtime predictive analytics using RabbitMQ & scikit-learn

Enter RabbitMQ

Reliability

Flexible RoutingClustering

HA Queues

Many clients

Page 17: Realtime predictive analytics using RabbitMQ & scikit-learn

AMQP

Reliability

Flexible RoutingClustering

HA Queues

Many clients

Page 18: Realtime predictive analytics using RabbitMQ & scikit-learn

Data processing

Page 19: Realtime predictive analytics using RabbitMQ & scikit-learn

The worker

Page 20: Realtime predictive analytics using RabbitMQ & scikit-learn

The design

Page 21: Realtime predictive analytics using RabbitMQ & scikit-learn

Demo time!

Page 22: Realtime predictive analytics using RabbitMQ & scikit-learn

Demo time!

Page 23: Realtime predictive analytics using RabbitMQ & scikit-learn

Demo time!

Page 24: Realtime predictive analytics using RabbitMQ & scikit-learn

Scaling

Page 25: Realtime predictive analytics using RabbitMQ & scikit-learn

Realtime vs batch

Page 26: Realtime predictive analytics using RabbitMQ & scikit-learn

Monitoring

Page 27: Realtime predictive analytics using RabbitMQ & scikit-learn

Load

Page 28: Realtime predictive analytics using RabbitMQ & scikit-learn

Verify

Page 29: Realtime predictive analytics using RabbitMQ & scikit-learn

Thank youAPI & Worker: Kelly O’Brien (linkedin.com/in/kellyobie)UI: Matt Parke (ordinaryrobot.com)Classifier: Michael Becker (github.com/mdbecker) Images: Wikipedia

Page 30: Realtime predictive analytics using RabbitMQ & scikit-learn

My infoTweet me @beckerfuffleFind me at beckerfuffle.com

These slides and more @ github.com/mdbecker