BTK Datathon 2026: Makine Öğrenmesi ve NLP ile Kariyer Başarısı Tahmini Üzerine Derinlemesine Bir İnceleme
BTK Datathon 2026 projemin uçtan uca teknik anlatımı - EDA, feature engineering, Türkçe mentor geri bildirimi üzerinde NLP, ensemble modelleme ve skoru 90.33'ten 88.94 MSE'ye taşıyan son iki iyileştirme.

Bu, Google ve Türkiye Girişimcilik Vakfı iş birliğiyle BTK Akademi tarafından düzenlenen Datathon 2026 yarışması için geliştirdiğim projenin tam teknik anlatımı: öğrencilerin akademik, teknik, proje, portfolyo, mülakat ve sosyal profil verilerinden - doğal dil tabanlı bir mentor geri bildirim alanı dahil - sürekli bir career_success_score (0-100) tahmin etmek. Yarışma metriği Ortalama Kare Hata (MSE) idi, düşük skor daha iyi.
Aşamalı Metodoloji
Baştan büyük bir model kurmak yerine, altı ölçülebilir adımda ilerledim - her versiyon tam olarak tek bir fikir ekledi, her biri Kaggle'a gönderilerek gerçek etkisi görüldü.
| Versiyon | Eklenen Geliştirme | Kaggle Public MSE |
|---|---|---|
| V1 | Baseline XGBoost, feature engineering yok | 99.09 |
| V2 | Feature engineering (toplamlar, oranlar) | 98.83 |
| V3 | NLP özellikleri (sentiment + TF-IDF) | 97.33 |
| V4 | Ensemble (XGBoost+LightGBM+CatBoost) + Optuna tuning | 91.26 |
| V5 | Stacking + etkileşim özellikleri + log dönüşümleri | 90.33 |
| V6 | Target Encoding + Soft-Blend Ceiling Correction | 88.94 |

Keşifsel Veri Analizi
EDA, sonraki her kararı şekillendiren birkaç bulgu ortaya çıkardı.
Eksik değerler: yedi sütunda eksik veri vardı, en kötüsü internship_duration_months (~%16.6 eksik). Bu eksik satırların %82'si sıfır staj yapan öğrencilere aitti - yani değer gerçekte "eksik" değil, mantıksal olarak sıfırdı. Bu bulgu, kör medyan doldurma yerine akıllı bir doldurma stratejisine yol açtı.

Hedef dağılımı: ortalama 76.9, hafif sola çarpık (çarpıklık -0.45), 773 öğrenci tam 100 almış - veri setine kasıtlı olarak eklenmiş, ileride özel işlem gerektirecek bir tavan etkisi.
Korelasyonlar: project_quality_score en baskın sinyaldi (0.54), ardından technical_interview_score (0.34) geldi. Sezgiye aykırı bir şekilde, cgpa tek başına neredeyse sıfır korelasyon gösterdi (-0.01) - etkileşim özellikleri eklenince önemi ortaya çıkan bir bulgu.

Gürültü sütunları: hobby ve preferred_social_media_platform, kategoriler arasında anlamlı bir fark göstermedi - bunlar etkin olarak gürültü sütunlarıydı, muhtemelen yarışma verisine kasıtlı olarak eklenmiş tuzaklardı, atıldı.

Feature Engineering
Başlıca türetilen özellikler: avg_technical_score ve avg_soft_skill_score (beceri kategorileri grup ortalamaları), role_weighted_score (öğrencinin hedef rolüne göre ağırlıklandırılmış teknik beceriler), experience_score (staj, gerçek müşteri projesi, freelance ve hackathon deneyiminin ağırlıklı bileşimi), etkileşim terimleri (örn. technical_interview_score × problem_solving_score, ve cgpa'nın gizli sinyalini ortaya çıkaran etkileşimler), ve github_avg_stars gibi sağa çarpık sayım özellikleri için log1p dönüşümleri.

Mentor Geri Bildirimi Üzerinde NLP
mentor_feedback_text alanı - her öğrencinin mentoru tarafından yazılmış kısa bir Türkçe değerlendirme - üç katmanlı bir strateji ile işlendi: elle oluşturulmuş Türkçe pozitif/negatif/potansiyel kelime listeleriyle sentiment kelime sayımı, türetilmiş bir sentiment skoru ve oranı, ve en ayırt edici 100 terimi otomatik olarak ortaya çıkaran, Türkçe stopword temizliği içeren TF-IDF.
sentiment_score, hedefle 0.40 korelasyona ulaştı - tüm veri setinde project_quality_score'dan sonra ikinci en güçlü sinyal. TF-IDF, elle oluşturulan kelime listelerini bağımsız olarak doğruladı: "ancak" kelimesi en güçlü negatif sinyal olarak ortaya çıktı (-0.24), çünkü Türkçe'de genellikle bir övgüden sonra eleştiri getirir.

Modelleme ve Ensemble
Üç gradient boosting modeli - XGBoost, LightGBM ve CatBoost - temel katmanı oluşturdu, 5-fold çapraz doğrulama üzerinde Optuna ile ayarlandı. Hiperparametre tuning tek başına, projenin tamamındaki en büyük tekil iyileştirmeyi sağladı (~6 puan Kaggle MSE).
Basit bir ortalama yerine, final model stacking kullandı: her temel modelin out-of-fold tahminleri bir Ridge regresyon meta-modeline girdi olarak verildi, meta-model her modele ne kadar güveneceğini veriden öğrendi (CatBoost en yüksek ağırlığı aldı, ~0.55).
V6 İyileştirmeleri
V5'in 90.33 skorunun ardından iki somut iyileştirme tespit edilip uygulandı, her biri önce çapraz doğrulamada test edildi, sonra Kaggle'da doğrulandı.
OOF Target Encoding: department ve target_role, One-Hot Encoding'den Out-of-Fold Target Encoding'e geçirildi - her kategoriye, o kategorideki öğrencilerin ortalama skoru, leakage'ı önlemek için sadece fold dışı veriyle hesaplanarak atandı. CV'de -0.64 MSE kazancı sağladı.
Soft-Blend Tavan Düzeltmesi: tam 100 alan 773 öğrenci, ağaç modelleri tarafından sistematik olarak ~95 civarında tahmin ediliyordu. "Sert eşik" düzeltmesi (94 üstünü 100'e yuvarla) test edildi ve başarısız oldu - yanlış pozitifler kazançtan fazla zarar verdi. Bunun yerine öğrenilmiş bir sınıflandırıcı bir yumuşak harmanlama sağladı: final = P(100) × 100 + (1 − P(100)) × stacking_tahmini.
Model ne kadar eminse tahmin o kadar 100'e yaklaşır; emin değilse neredeyse dokunmaz. CV'de -0.71 MSE kazancı sağladı. İki iyileştirme birlikte, Kaggle skorunu 1.39 puan iyileştirdi (90.33 → 88.94).
Hata Analizi

Model, 50-95 skor bandını iyi yakalıyor. En büyük tekil hata, tüm özellikleri ortalama üstü olan ama gerçek skoru 0 olan bir öğrenciydi - model hatasından çok net bir etiket gürültüsü örneği.

Kalıntılar sıfıra yakın merkezli ve simetrik (ortalama -0.26), modelin tarafsız olduğunu doğruluyor. Kalan uzun kuyruklar, yarışma veri setine kasıtlı olarak eklenmiş yapısal gürültüden kaynaklanıyor.
Sonuçlar ve Dersler
Kaggle public MSE, disiplinli ve ölçülebilir iterasyon yoluyla 99.09'dan 88.94'e düştü - 10.15 puanlık bir iyileştirme. Hiperparametre tuning tek başına en büyük kazancı sağladı; NLP gerçekten önemliydi, sadece bir kutu işaretleme özelliği değildi; ve target encoding ile tavan düzeltmesi gibi küçük görünen iyileştirmeler birikimli olarak anlamlı bir 1.39 puanlık kazanca dönüştü. Her fikir işe yaramadı - early stopping, CatBoost'un yerleşik kategorik işleme özelliği ve sert eşik tavan düzeltmesi test edildi ve kanıta dayalı olarak reddedildi, başarısızlıkları belgelemek başarıları belgelemek kadar değerliydi.
Ek hipotez testleri ve reddedilen yaklaşımları içeren tam rapor, aşağıda GitHub deposu ve Kaggle profili ile birlikte PDF olarak mevcut.

