Skip to content

yentur/trendyol-e-ticaret-hackathonu-2025-kaggle

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Trendyol Ranking Model

Bu proje, Trendyol platformu için geliştirilmiş bir ürün ranking ve recommendation sistemidir. CatBoost tabanlı ranking modeli ile kullanıcı arama sonuçlarında en relevan ürünlerin üst sıralarda gösterilmesini amaçlar.

Proje Yapısı

trendyol/
├── feature.py              # Feature engineering fonksiyonları
├── load_data.py           # Veri yükleme işlemleri
├── main.py               # Ana çalıştırma scripti
├── utils.py              # Yardımcı fonksiyonlar
├── score.py              # Değerlendirme metriği
├── optuna.ipynb          # Hiperparametre optimizasyonu
├── solution.ipynb        # Çözüm geliştirme notebook'u
└── requirements.txt      # Gerekli paketler

Kurulum

1. Sanal Ortam Oluşturma

uv venv venv --python 3.11

2. Sanal Ortamı Aktifleştirme

# Linux/Mac
source venv/bin/activate

# Windows
venv\Scripts\activate

3. Bağımlılıkları Yükleme

uv pip install -r requirements.txt

4. Veri Klasörü

Projenin çalışması için data/ klasörünün aşağıdaki yapıda olması gerekir:

data/
├── train_sessions.parquet
├── test_sessions.parquet
├── content/
│   ├── metadata.parquet
│   ├── price_rate_review_data.parquet
│   ├── search_log.parquet
│   ├── sitewide_log.parquet
│   └── top_terms_log.parquet
├── user/
│   ├── metadata.parquet
│   ├── search_log.parquet
│   ├── sitewide_log.parquet
│   ├── fashion_search_log.parquet
│   ├── fashion_sitewide_log.parquet
│   └── top_terms_log.parquet
└── term/
    └── search_log.parquet

Kullanım

Ana Modeli Çalıştırma

python main.py

Bu script:

  • Veriyi lazy loading ile yükler
  • Feature engineering işlemlerini gerçekleştirir
  • Model validasyonu yapar
  • Final modeli eğitir
  • submission.csv dosyasını oluşturur

Hiperparametre Optimizasyonu

jupyter notebook optuna.ipynb

Optuna kullanarak en iyi hiperparametreleri bulur.

Çözüm Geliştirme

jupyter notebook solution.ipynb

Model geliştirme ve test süreçleri için kullanılır.

Dosya Açıklamaları

feature.py

  • create_session_context_features(): Zaman bazlı context featureları (saat, gün, hafta sonu vs)
  • create_content_features_time_aware(): İçerik bazlı featurelar (fiyat, kategori, rating vs)
  • create_user_features_time_aware(): Kullanıcı bazlı featurelar (yaş, tenure, aktivite vs)
  • create_term_features_time_aware(): Arama terimi bazlı featurelar
  • create_interaction_features(): Etkileşim featureları (user-content, content-term, user-term)
  • create_relevance_features(): Relevans featureları (kelime eşleşmeleri)
  • get_features(): Tüm feature engineering sürecini koordine eder

load_data.py

  • load_data_lazy(): Parquet dosyalarını Polars LazyFrame olarak yükler
  • Memory efficient veri yükleme

main.py

  • Ana eğitim pipeline'ı
  • Model validasyonu ve final model eğitimi
  • Submission dosyası oluşturma

utils.py

  • create_submission(): Test verisi için submission oluşturur
  • create_ranking_target(): Ranking hedef değişkenini oluşturur
  • create_submission_polars(): Validation için submission oluşturur

score.py

  • score(): Weighted AUC metriğini hesaplar (%70 ordered, %30 clicked)

Model Parametreleri

Optimum parametreler:

best_params = {
    'iterations': 550,
    'learning_rate': 0.032038218939289875,
    'depth': 7,
    'l2_leaf_reg': 3.962700559185838,
    'border_count': 200,
    'bagging_temperature': 0.3200680211778108,
    'random_strength': 0.00029315870423117155
}

Model Performansı

  • Validation Timestamp: 2025-07-10 17:00:00+00:00
  • Metrik: Weighted AUC (70% ordered + 30% clicked)
  • Model: CatBoost Ranker

Geliştirme Notları

  1. Data Leak Önleme: Validation verisi olarak gelecek tarihli bir timestamp kullanıldı
  2. Categorical Encoding: CatBoost'un native kategorik değişken desteği kullanıldı
  3. Memory Optimization: Polars LazyFrame ile memory efficient işlemler
  4. Feature Engineering: Time-aware featurelar ile temporal patterns yakalandı

Çıktılar

  • submission.csv: Final submission dosyası

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors