• No results found

Prediction and Fuzzy Logic at ThomasCook to automate price. automate price settings of last minute offers

N/A
N/A
Protected

Academic year: 2021

Share "Prediction and Fuzzy Logic at ThomasCook to automate price. automate price settings of last minute offers"

Copied!
18
0
0

Loading.... (view fulltext now)

Full text

(1)

BNOSAC @ ThomasCook Challenges from a data mining point of view + solutions Connecting R with the outside world / our user experience

Prediction and Fuzzy Logic at ThomasCook to

automate price settings of last minute offers

Jan Wijffels:

[email protected]

BNOSAC - Belgium Network of Open Source Analytical Consultants

www.bnosac.be

(2)

BNOSAC @ ThomasCook Challenges from a data mining point of view + solutions Connecting R with the outside world / our user experience

Who are we

Business of ThomasCook Belgium Introduction to last minute prices

Introduction to BNOSAC

I

Group of consultants focussed on open source analytical

engineering

I

Poor man’s BI:

Python/PostgreSQL/Pentaho/OpenOffice/R. . .

. . .

I

Expertise in predictive data mining, biostatistics, geostats,

python programming, GUI building, artificial intelligence

(3)

BNOSAC @ ThomasCook Challenges from a data mining point of view + solutions Connecting R with the outside world / our user experience

Who are we

Business of ThomasCook Belgium

Introduction to last minute prices

Business of ThomasCook Belgium

I

Sell holidays (sun and beach in this user case)

I

70 destinations around Mediterranean and Americas

I

Own planes & bought seats need to be filled with passengers

I

Flight frequence for some destinations up to 4 flights within

one day. Some flights can be combined

(4)

BNOSAC @ ThomasCook Challenges from a data mining point of view + solutions Connecting R with the outside world / our user experience

Who are we

Business of ThomasCook Belgium

Introduction to last minute prices

Introduction to last minute price settings

I

Last minute prices departures Brussels/Li`

ege/Ostend/Lille

I

Up to 2 months before departure

I

People book now to go on holiday e.g. August 10, 2009 to

destination X. Can stay 3-28 nights, choose among several

hotels, with certain board (All Inclusive, B&B, . . . ) and

certain room type.

e.g. Hurghada (HRG): dayly flights from Brussels (BRU)

# prices in August: 31 days

×

12 durations

×

2 brands

×

20 hotels

×

4 boards

×

3 room types =

±

248000 prices

(5)

BNOSAC @ ThomasCook Challenges from a data mining point of view + solutions Connecting R with the outside world / our user experience

Who are we

Business of ThomasCook Belgium

Introduction to last minute prices

Business challenge

Business challenge

Fill the planes at the highest prices so that the plane doesn’t fill

too fast and make sure all seats are filled.

I

Currently

2.9 Mio

promotional prices on the market. Prices

change dayly.

I

Only cover approaches towards prices of packages (flight +

hotel), only price effects of couples (so no children).

(6)

BNOSAC @ ThomasCook Challenges from a data mining point of view + solutions Connecting R with the outside world / our user experience

Optimisation problem

Data & speed challenge Architectural solution

Analytical solution - optimal prices with business tactics Analytical solution: Fuzzy Logic

Optimisation problem

I

A lot of factors influencing bookings:

I

Holiday information / Day of the week

I

Flight information (hours of departure and of return flights,

availability of flights)

I

Weather

I

Prices (2 brands, competitor) and price evolution

I

Cannibalisation (risk of losing passengers to yourself)

I

prices of similar destinations - last minute customers only

want the sun at the cheapest price

I

prices on similar departure dates (a few days later/earlier)

I

Days before departure

I

... dimensionality is large (

>

100000 factors could influence

bookings on flight from BRU to HRG on August 10, 2009)

I

Find the best price settings over all these parameters to ...

(7)

BNOSAC @ ThomasCook Challenges from a data mining point of view + solutions Connecting R with the outside world / our user experience

Optimisation problem

Data & speed challenge

Architectural solution

Analytical solution - optimal prices with business tactics Analytical solution: Fuzzy Logic

Data & speed challenge

I

Data size last year only

I

own last minute promotional prices:

>

450 million records.

I

competitor prices

I

flight info:

±

60000 flights on the market

×

365 days

±

21.900.000 records

I

weather info at noon:

70 destinations

×

365 days

×

weather forecasts

I

Speed

I

”Hello prices” at

±

7o’clock in the morning (mainframe).

”Hello employees” at

±

8h30 in the morning

I

±

1h30 to make predictions and give ’best’ automatic price

(8)

BNOSAC @ ThomasCook Challenges from a data mining point of view + solutions Connecting R with the outside world / our user experience

Optimisation problem Data & speed challenge

Architectural solution

Analytical solution - optimal prices with business tactics Analytical solution: Fuzzy Logic

Architectural solution

    FTP .txt Web .xml .csv Oracle NOAA Update checker Python / Beautifulsoup launch check ETL using R ­ flexible data     structures ­ easy to program     & maintain ­ access to anything ­ fast development     in case of change ­ with (R)SQLite &     sqldf ­ can handle    any data size MASTER ­ GUI in wxPython (py2exe) ­ plots in R through RPy2 pimped Variable reduction ­ glmpath Predictive models ­ Randomforests get data Model store + structure .RData pimped ­ get model structure ­ prepare for prediction ­ predict save predictions SLAVE / application DB get data PL/R  PL/SQL users approve price settings

Data Knowledge / Strategy Business process

­ analytical data    mart ­ historical data ­ clean ­ predictions /    best price settings ­ Manager strategy on     Price/Brand/Competition ­ Learned     cannibalisation effects ­ Learned price elasticity ­ Predicted risk of     unsold seats ­ Weather risk ­ Historic price levels ­ Selling margins ­ Basic 1D­optimisation Fuzzy inference engine save price proposals Price setting Model building Predictions

(9)

BNOSAC @ ThomasCook Challenges from a data mining point of view + solutions Connecting R with the outside world / our user experience

Optimisation problem Data & speed challenge Architectural solution

Analytical solution - optimal prices with business tactics

Analytical solution: Fuzzy Logic

Analytical solution: Predictive modelling

Out of the box solutions exist in R. ’Best practice’ approach:

I

Pimp SQLite so that it can handle tables with up to

±

30000

columns. Raw model tables dim 20.000.000 x 30000

I

Data preparation (missing values, split numeric data in

categories) - do heavy reshaping/juggling/merging/indexing in

(R)SQLite & sqldf, use R for advanced data features

I

Sample depending on CPU/RAM and statistical technique:

we have 4 dual cores, 64bit Linux, 32Gb RAM.

I

Reduce: GLM with penalization on the size of the L1 norm of

the coefficients

L

(

β

, λ

) =

P

n

i

=0

y

i

θ

(

β

)

i

b

(

θ

(

β

)

i

) +

λk

β

k

1

(10)

BNOSAC @ ThomasCook Challenges from a data mining point of view + solutions Connecting R with the outside world / our user experience

Optimisation problem Data & speed challenge Architectural solution

Analytical solution - optimal prices with business tactics

Analytical solution: Fuzzy Logic

Analytical solution: Predictive modelling cont.

I

Only most important predictors to build randomForest

I

Use randomForest model to predict how fast the flights will

fill.

f.t7.kort rt14.vl1.combi iata.from thomascook.bru.5.hp rt9.vl2.free neckermann.bru.5.ai f.t11.kort f.t11.lang rt5.vl1.free thomascook.bru.12.ai rt5.free thomascook.bru.10.ai f.t10.lang rt14.free boeking.weekdag rt7.vl2.free afreis.weekdag f.t7.lang rt11.free thomascook.bru.5.lo neckermann.bru.10.ai rt7.free thomascook.bru.14.lo thomascook.bru.7.ai neckermann.bru.7.ai rt8.free neckermann.lgg.7.ai neckermann.bru.7.lo boeking.week afreis.week ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 0 50 100 150 200 250 300 350 Variable importance IncNodePurity

(11)

BNOSAC @ ThomasCook Challenges from a data mining point of view + solutions Connecting R with the outside world / our user experience

Optimisation problem Data & speed challenge Architectural solution

Analytical solution - optimal prices with business tactics

Analytical solution: Fuzzy Logic

Analytical solution: Predictive modelling cont.

I

Get the price effects from the randomForest model and use it:

I

Do fast 1- or 2-dimensional optimisation to fill seats that will

not be filled according to the forecast at the optimal price.

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●●● ● ● ●● ● ● ● ● ● ● ● ● ● ● ●●● ●● ● ●● ● ● ● ● ● ● ● ● ● ●●● ● ●● ● ● ● ● ● ● ● ●● ● ● ●● ● ●● ● ● ● ● ● 400 600 800 1000 0.6 0.7 0.8 0.9 1.0 1.1 1.2 Price elasticity

Lowest ThomasCook Price, T7 AI

(12)

BNOSAC @ ThomasCook Challenges from a data mining point of view + solutions Connecting R with the outside world / our user experience

Optimisation problem Data & speed challenge Architectural solution

Analytical solution - optimal prices with business tactics

Analytical solution: Fuzzy Logic

Analytical solution: Fuzzy Logic

Prediction and optimisation is nice but not enough

Managers reason with words/concepts. Mimic them and combine

their logic with predictive logic. How?

I

Map business concepts to

fuzzy sets.

I

Make fuzzy rule-based

engine reflecting how

managers/business users

decide on price settings

I

Do fuzzy inference to

obtain new price settings

(13)

BNOSAC @ ThomasCook Challenges from a data mining point of view + solutions Connecting R with the outside world / our user experience

Optimisation problem Data & speed challenge Architectural solution

Analytical solution - optimal prices with business tactics

Analytical solution: Fuzzy Logic

Analytical solution: Fuzzy Logic cont.

Map business concepts to fuzzy sets.

I

Listen to the people.

Fuzzy concepts have

blurred boundaries.

I

Map linguistic variables to

a membership degree

µ

(

x

)

[0

,

1]

I

sets package (Hornik K.,

Meyer D., Buchta C.)

I

fuzzy normal,

fuzzy trapezoid,

fuzzy sigmoid,

. . .

    Competitor risk  same destination Predicted risk empty seats Days  before departure Optimal  Price Move Elasticity­based  optimal Price Move Competitor risk  other destinations Competitor risk Current risk empty seats  ­ Price elasticity in models   + importance measures   for different competitors ­ Overlapping hotels difference ­ Overlapping hotels price change ­ Other hotels price level ­ Other hotels price change Outgoing  cannibalisation ­ Randomforest Prediction  ­ Current flight situation ­ Simulation @ different   price levels & timepoints Incoming Cannibalisation ­ Price elasticity in models ­ Current price levels ­ Historic cannibalisation levels Expert opinions & other inputs ... Low­level fuzzy sets/inputs Higher­level fuzzy sets/inputs Fuzzy  rule base

(14)

BNOSAC @ ThomasCook Challenges from a data mining point of view + solutions Connecting R with the outside world / our user experience

Optimisation problem Data & speed challenge Architectural solution

Analytical solution - optimal prices with business tactics

Analytical solution: Fuzzy Logic

Analytical solution: Fuzzy Logic cont.

Make fuzzy rule-based engine, do fuzzy inference & defuzzify.

rules <- set(

fuzzy_rule(predicted_risk %is% low, price_change %is% up),

fuzzy_rule(predicted_risk %is% high

& competitor_risk %is% high, price_change %is% down_high),

...)

simple.system <- fuzzy_system(variables, rules)

fuzzy.best.price <- fuzzy_inference(simple.system, NEWDATA)

gset_defuzzify(fuzzy.best.price, "centroid")

I

Different business strategies can be easily mapped to fuzzy

inference engines.

(15)

BNOSAC @ ThomasCook Challenges from a data mining point of view + solutions Connecting R with the outside world / our user experience

Influence the business process

PL/R, RPy2, GUI’s in R, people Questions?

Influence the business process, use visuals, build GUI

Prediction, optimisation and improving on business users

(16)

BNOSAC @ ThomasCook Challenges from a data mining point of view + solutions Connecting R with the outside world / our user experience

Influence the business process

PL/R, RPy2, GUI’s in R, people Questions?

PL/R, RPy2, GUI’s in R, people

I

PL/R.

I

Had a lot of shared memory problems while other processes

were runnning. But probably overkilled it (run PL/R script

which calls some R code from within R process that uses

RdbiPgSQL)

I

Debugging hell.

I

R & SQLite is our best choice for heavy data juggling.

I

PL/R is OK for collecting information on diverse data sources

in 1 call from a remote machine.

(17)

BNOSAC @ ThomasCook Challenges from a data mining point of view + solutions Connecting R with the outside world / our user experience

Influence the business process

PL/R, RPy2, GUI’s in R, people

Questions?

PL/R, RPy2, GUI’s in R, people cont.

I

User interfaces - developer view

I

Combining wxPython and R through RPy2 is easy and simple.

I

py2exe gives easy python binary executables, people only need

to have R installed to access its power

I

User interfaces - IT view

I

IT departments don’t like R

I

R should be SaaS, central server where people can connect to

I

User interfaces - business user point of view

I

They don’t care about R

I

GUI and plotting the results helped convincing them

I

Fuzzy logic allowed them to interact and stick to the business.

I

Combining the results with an improved business process was

(18)

BNOSAC @ ThomasCook Challenges from a data mining point of view + solutions Connecting R with the outside world / our user experience

Influence the business process PL/R, RPy2, GUI’s in R, people

Questions?

Questions?

BNOSAC - Belgium Network of Open Source Analytical Consultantswww.bnosac.be http://www.bnosac.be

References

Related documents

with mentions of music treatises by Bern.17 In place of Smits van Waesberghe’s theory, Rausch has suggested that De mensurando monochordo is an anonymous compilation derived from

Have earned and productively invested at least $1,000, or have worked at least 300 hours outside of schedule class time through an SAE?. How often if the FFA New Horizons

The discrete hazard regression includes indicators for timing from separation (polynomial function of order three), a flexible function for the baseline hazard (dummy variables

The biological characteristics of MHCC97H cells respectively treated with conditioned medium (CM) derived from HUVECs and endothelial cell basal medium (EBM) in vitro, such

effectively preventing the not-for-profit-organization from claiming in the contractually chosen forum could also expropriate the organization’s contractual rights. 145 Indeed,

APTS2 Transit Fixed-Route Operations City of Roswell Fixed Route Transit Dispatch Planned APTS2 Transit Fixed-Route Operations City of Roswell Fixed Route Transit Vehicles Planned

that lilli loss-of-function mutations suppress MAPK sig- The human family members are all developmental genes with high levels of fetal tissue-specific expression.

A mutant strain of pneumococcus which fails to discriminate against low- efficiency markers during transforniation by homospecific pneumococcal donor DNA retains the