File size: 1,934 Bytes
6cdb17c 8c3c877 6cdb17c f73d47d | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | ---
title: Scrabble Player Rating
emoji: 🎯
colorFrom: indigo
colorTo: blue
sdk: streamlit
app_file: app.py
pinned: false
license: mit
sdk_version: 1.45.1
---
# 📘 Proje Adı: Scrabble Oyuncu Derecesi Tahmin Modeli
## 🎯 Proje Amacı:
Bu proje, Kaggle üzerindeki "Scrabble Player Rating" yarışması kapsamında geliştirilmiştir. Amaç, bir Scrabble oyuncusunun yalnızca tek bir maç performansı kullanılarak oyun öncesi derecesini (rating) tahmin etmektir.
## 📦 Veri Seti:
Veri seti Woogles.io platformundan alınan yaklaşık 73.000 oyunu içermektedir. Her oyun iki oyuncunun:
- Skor bilgisi
- Nickname (bot veya insan)
- Rating değeri
- Game ID (eşleşme kimliği)
verilerini içermektedir. Ayrıca hamle düzeyinde ek veri olan `turns.csv` dosyası da bulunmaktadır.
## ⚙️ Kullanılan Yöntem:
- Veri ön işleme (negatif skor temizliği, bot kontrolü)
- Özellik mühendisliği (skor farkı, kazanan durumu, bot karşılaşması)
- Geniş veri formatında oyuncu eşleşmeleri oluşturuldu
- Model olarak `RandomForestRegressor` kullanıldı
- Performans metriği olarak RMSE: **215.77**
## 💡 Model Girdileri (Streamlit için):
- Player 1 Skoru
- Player 2 Skoru
- Player 1 Kazandı mı?
- Rakip Bot mu?
Bu bilgilerle model, `Player 1`'ın tahmini rating'ini üretir.
## 🧪 Örnek Girdi:
```json
{
"player1_score": 420,
"player2_score": 390,
"player1_is_winner": true,
"player1_vs_bot": false
}
📁 Çıktılar:
model.pkl: Eğitilmiş model
app.py: Streamlit arayüzü
requirements.txt: Gerekli kütüphaneler
sample_input.json: Örnek test girdisi
README.md: GitHub + Hugging Face dokümantasyonu
🚀 Geliştirme Fırsatları:
turns.csv kullanılarak hamle bazlı özellik mühendisliği yapılabilir
Model doğruluğu arttırmak için LightGBM veya XGBoost ile karşılaştırma yapılabilir
Oyunculara özel geçmiş bilgileriyle rating tahmini iyileştirilebilir |