Bir Datathon Macerası - Setur Datathon

3 minute read

Published:

alt text

Setur ve Microsoft Türkiye iş birliğinde 9 - 10 Kasım 2019 tarihleri arasında gerçekleşen Setur Travel Datathon‘a Runtime Terror adlı takımımızla katıldık. 32 saat süren Datathon sonunda çözümümüz ile 2.lik ödülüne layık görüldük.

Problem

Yarışmanın net bir konusu olmamakla birlikte amaç yarışma kapsamında sağlanacak veri seti üzerinden bir çözüm üretilmesiydi. Biz de bu amaçla Setur’un faaliyet gösterdiği alanlar olan Otel, Tur ve Cruise paketlerine dair Gezgin adında bir öneri motoru geliştirdik.

Veri

  • Farklı bilgiler içeren farklı tablolar bulunmaktadır (şirket, otel, müşteri, satış gibi).
  • Satış verileri yaklaşık 7 yıllık bir süreyi kapsamaktadır.
  • Müşterilerin yaklaşık %70’ini erkek müşteriler oluşturmaktadır.

Çözüm Adımları

alt text


Veri Temizliği & Önişleme

  • Yaşı 18’den küçük olan değerler 18’e eşitlenmiştir.
  • Hatalı şekilde girildiğini düşündüğümüz ya da promosyon olarak tanımlanmış olan bazı işlemler veriden çıkarılmıştır.
  • Yazım hataları düzeltilmiştir (örneğin acente yerine acento yazılması).
  • Kategorik değişkenler Label Encoding kullanılarak sayısal hale getirilmiştir.

Yaklaşım

  • Satış bilgilerinin olduğu tablo temel alınarak aggregation ve join işlemleri yapılmıştır.
  • Müşterileri daha iyi tanımak için çeşitli profiller oluşturulmuştur.
  • RFM ile müşterilerin geçmiş hareketleri belirlenmiştir ve RFM skoru kullanılarak müşteri değer segmenti oluşturulmuştur.
  • Oluşturulan veri seti kullanılarak seçilen değişkenler ile müşteri yatkınlık skorları regresyon kullanılarak tahminlenmiştir.
  • Hesaplanan yatkınlık skoru ile öneri motoru geliştirilmiştir.

Profilleme ve Segmentasyon

Müşteriler davranışları üzerinden değerlendirilerek çeşitli profiller oluşturulmuştur. Oluşturulan profillerden bazıları;

  • Müşteri Yaşam Döngüsü
  • Müşteri Değer Segmenti (Platin, Altın, Gümüş, Bronz)
  • Müşteri Tipi
  • RFM ile yaratılan profiller
  • Yalnız Gezgin
  • Aile
  • Zaman Değişkenleri (hafta sonu mu hafta içi mi, mevsim vb.)
  • Müşteri Demografik Bilgileri (yaş, cinsiyet vb.)

Örnek Profil

Oluşturulan profiller ile müşterilerin durumları betimlenmiştir ve belirli iç görüler elde edilmiştir. alt text


Müşteri Değer Segmenti

alt text

(Elde edilen segmentleri göstermek adına oluşturulmuş bir görseldir, veri setindeki gerçek değerleri yansıtmamaktadır.)

Kişiselleştirilmiş Otel Önerisi

  • Veri setinde bulunan değişkenlere ek olarak oluşturulan profiller & değişkenler kullanılmıştır.
  • Geçmiş yıllara ait döviz kurları (€ & $) ile satın alma işleminin o günkü kur değeri hesaplanmıştır.
  • Oluşturulan veri ile müşterilerin otel özelliklerine göre yatkınlıkları regresyon kullanılarak tahminlenmiştir.
  • Hesaplanan yatkınlık skoru kullanılarak müşteri, otel ve skor metriği ile ALS eğitilmiştir.

Kümeleme Tabanlı Otel & Tur & Cruise Öneri Sistemi

  • Oluşturulan profiller kullanılarak 50 küme ile K-Means kümeleme algoritması kullanılmıştır ve kümeler arasında ayrışma görülmüştür.
  • Elde edilen kümeler üzerinden en popüler ürünler sıralanmış ve her küme içerisinde bulunan müşterilere o kümede bulunan en popüler ürün önerilmiştir.
  • Böylece otel bilgisi olmamasına karşın tur ve cruise satın almış müşteriler için de öneri yapılabilmiştir.
  • Ayrıca otel bilgisi olmadığı durumlarda ortaya çıkan “Cold Start” probleminin de önüne bu şekilde geçilmiştir.

    Gezgin

    Acente, web sitesi ya da mobilden gelen veriden (müşteri, satın alma bilgisi ve aldığı ürüne ait özellik) iç görü, segment ve ürün özelliği çıkarıldıktan sonra (ETL & Preprocess) Gezgin API üzerinden ürün kırılımlı kişisel öneri dönmektedir. alt text


Gezgin API

Gezgin API aşağıda belirtilen teknolojiler kullanılarak Flask ile servis haline getirilmiştir. alt text


Kullandığımız Teknolojiler

Geliştirmeler Azure’da Data Science Virtual Machine Windows üzerinde aşağıdaki teknolojiler kullanılarak yapılmıştır. alt text

Sonuç

  • Müşteriler davranışlarına göre ele alınmış ve oluşturulan profiller ile müşteriler hakkında iç görüler elde edilmiştir.
  • Müşteri değer segmenti yaratılarak müşteriler davranış ve harcamalarına göre anlamlı bir farklılık yaratılarak segmentlere ayrılmıştır.
  • Kişi tabanlı otel önerisi ve kümeleme tabanlı otel - tur - cruise önerisi yapacak şekilde uçtan uca bir uygulama geliştirilmiştir.


Buradan bir kez daha ekip arkadaşlarıma ve yarışmada emeği geçenlere teşekkürler!

alt text alt text