İçeriğe geç

Teknik vaka çalışması

MSCapital Market Forecasting

804,5 milyon satırlık piyasa verisini 16 GB belleğe sahip bir dizüstünde işleyen tahmin sistemi. Ana katkı, holdout ile genel sıralama sonuçları arasındaki farkı inceleyen doğrulama çalışmasıdır.

Uygun rol

Uygulamalı Veri BilimciVeri AnalistiAnalitik Mühendisi

Teknik açıklamalar Türkçeye çevrilmiştir. Sonuç metriklerinin ölçüm koşulları, başarısız denemeler ve kaynak bağlantıları özgün proje kanıtlarıyla aynı kapsamda korunur.

Hızlı teknik inceleme

Teknik vaka çalışması: dört temel nokta.

Tüm yöntem

Problem

60 saniyelik emir/işlem geçmişi ve 600 saniyelik piyasa anlık görüntüleri içeren 1.26M anonim piyasa penceresi için kısa vadeli getiri tahmini yapılır. Puan, bütün test kümesindeki kosinüs benzerliğiyle hesaplanır. Sembol sütunu olmadığı için…

Tam açıklamayı oku

60 saniyelik emir/işlem geçmişi ve 600 saniyelik piyasa anlık görüntüleri içeren 1.26M anonim piyasa penceresi için kısa vadeli getiri tahmini yapılır. Puan, bütün test kümesindeki kosinüs benzerliğiyle hesaplanır. Sembol sütunu olmadığı için enstrümanlar arası tarihçe bulunmaz; her örnek kendi başına yeterli olmalıdır.

Mimari

Feather dosyaları, tek seferde okumanın gerektirdiği 11.53 GB yerine tepe belleği 7.92 GB düzeyinde tutan sütun grubu dönüştürücüsüyle işlenir. BigQuery içinde örnek başına 292 özellik oluşturulup modeller yerel ortamda eğitilir. FastAPI, eğitim…

Tam açıklamayı oku

Feather dosyaları, tek seferde okumanın gerektirdiği 11.53 GB yerine tepe belleği 7.92 GB düzeyinde tutan sütun grubu dönüştürücüsüyle işlenir. BigQuery içinde örnek başına 292 özellik oluşturulup modeller yerel ortamda eğitilir. FastAPI, eğitim paketini gerektirmeden yüklenen bir model çıktısıyla servis verir; Streamlit paneli de arkada çalışan veri hattı olmadan depoya kaydedilmiş sonuçlardan beslenir.

Sonuçlar

804.5M ham satırdan 292 özellik, 264 tanesi ayrı

Sınırlamalar ve kapsam

Dizi sırası hipotezi, yalnızca yapılan deneyin desteklediği kapsamda ifade edilir. Elle tasarlanmış 18 yol istatistiği +0.0006 kazandırdı; ancak yeni özellikler tek başına 0.0057 alırken sabit ortalama tahmini 0.0059 verdi. Özet özellikler çok az…

Tam açıklamayı oku

Dizi sırası hipotezi, yalnızca yapılan deneyin desteklediği kapsamda ifade edilir. Elle tasarlanmış 18 yol istatistiği +0.0006 kazandırdı; ancak yeni özellikler tek başına 0.0057 alırken sabit ortalama tahmini 0.0059 verdi. Özet özellikler çok az bilgi taşıdığından deney, sinyalsiz bir yolla sinyali iyi özetlemeyen bir gösterim arasında ayrım yapamaz. Daha sonra öğrenilmiş dizi modeli (v1.1.0) denendi: tek başına 0.077 aldı, fakat tablosal modele eklenmesinin yararı gösterilemedi (eşleştirilmiş fark -0.0009; eğitim dışında bırakılan sekiz ayda 95% güven aralığı -0.0104 ile +0.0086). Dolayısıyla hipotez bu kapsamda ne doğrulandı ne de çürütüldü.

Kaynaklarda yayımlanmış teknik kanıtlar kullanılmıştır. Ölçüm koşulları için tam vaka çalışmasını inceleyin.

Kanıta dayalı görsel inceleme

Projenin gerçek çıktılarını inceleyin.

Gerçek proje ekran görüntüleri ve kaynak figürleri, kaynaklarıyla birlikte sunulur.

MSCapital Market Forecasting application interface rendered from source captured 2026-10-12

Kaynak koddan oluşturulan arayüz

2026-10-12 tarihli yayımlanmış uygulama kaynak kodundan oluşturulan görseldir; çalışan bir dağıtımın ekran görüntüsü değildir.

Yayımlanmış kaynağı aç

804.5M ham satırdan 292 özellik, 264 tanesi ayrı

+0.14088 ileriye dönük kosinüs, katlar arası sapma 0.0041

Dokunulmamış aylarda tek okuma: +0.15171 holdout

Yarışma puanı: tek model 0.128 / topluluk 0.129

Farkın 46% bölümünü dönem zorluğu açıklar; düzeltme sonrası +0.14084

İlk sürümden sonra dört ek deney (v1.1.0); hiçbirinin yararı gösterilemedi

Proje kanıtları

Doğrulanabilir dış kaynaklar

Son doğrulama 2026-10-07

Problem ve yaklaşım

Problem

60 saniyelik emir/işlem geçmişi ve 600 saniyelik piyasa anlık görüntüleri içeren 1.26M anonim piyasa penceresi için kısa vadeli getiri tahmini yapılır. Puan, bütün test kümesindeki kosinüs benzerliğiyle hesaplanır. Sembol sütunu olmadığı için enstrümanlar arası tarihçe bulunmaz; her örnek kendi başına yeterli olmalıdır.

Mimari

Feather dosyaları, tek seferde okumanın gerektirdiği 11.53 GB yerine tepe belleği 7.92 GB düzeyinde tutan sütun grubu dönüştürücüsüyle işlenir. BigQuery içinde örnek başına 292 özellik oluşturulup modeller yerel ortamda eğitilir. FastAPI, eğitim paketini gerektirmeden yüklenen bir model çıktısıyla servis verir; Streamlit paneli de arkada çalışan veri hattı olmadan depoya kaydedilmiş sonuçlardan beslenir.

Doğrulama

Birbirini izleyen örneklerin 60 saniyelik pencereleri çakışabileceğinden rastgele ayrım veri sızıntısı yaratabilir. Bu nedenle genişleyen pencereli ileriye dönük doğrulama ve bir aylık embargo kullanılır. Beş katın ortalama topluluk kosinüs skoru +0.14088, katlar arası standart sapma 0.0041 düzeyindedir. 65-70. aylar tek bir son değerlendirme için hiç kullanılmadan saklanmış ve +0.15171 vermiştir.

İnceleme

Gönderimden önce yanlışlanabilir bir tahmin kaydedildi ve sonuç onu doğrulamadı: 0.143 beklenirken yarışma puanı 0.128 geldi. Yeni gönderim hakkı harcanmadan altı hipotez test edildi. Biri doğrulandı: holdout dönemi zorluk dağılımının 83. yüzdelik dilimindeydi; bu etki giderildiğinde +0.14084 elde edildi ve farklı yöntemle hesaplanan ileriye dönük doğrulama ortalamasından yalnızca 0.00004 ayrıldı. Biri gerçek ama beklenenden küçüktü: spread rejimi dağılımı farkın yaklaşık 14% bölümünü açıklıyordu. En umut verici iki hipotez dâhil dört hipotez yanlışlandı. Geri kalan fark proje lehine kapatılmadan belgelenmiştir.

Ölçüm disiplini

Önceden kaydedilen beş tahminin beşi de gerçekleşenden yüksekti; bu durum beş ayrı hatadan çok ortak bir nedene işaret ediyordu. Korunan ilke şudur: katlar arası gürültüden küçük dahili kazanımlar, hangi modeli seçeceğimize ilişkin kanıttır; yarışma skoruna aynen aktarılacak kazanç değildir. Tahmin vektörü üzerinde sonradan yapılan üç düzeltme de ölçülüp reddedildi: en iyisi aynı veride ayarlandığında +0.0022 kazandırırken tek parametresi örneklem dışında seçildiğinde kazanç yaklaşık sıfıra düştü.

İddia edilmeyen noktalar

Dizi sırası hipotezi, yalnızca yapılan deneyin desteklediği kapsamda ifade edilir. Elle tasarlanmış 18 yol istatistiği +0.0006 kazandırdı; ancak yeni özellikler tek başına 0.0057 alırken sabit ortalama tahmini 0.0059 verdi. Özet özellikler çok az bilgi taşıdığından deney, sinyalsiz bir yolla sinyali iyi özetlemeyen bir gösterim arasında ayrım yapamaz. Daha sonra öğrenilmiş dizi modeli (v1.1.0) denendi: tek başına 0.077 aldı, fakat tablosal modele eklenmesinin yararı gösterilemedi (eşleştirilmiş fark -0.0009; eğitim dışında bırakılan sekiz ayda 95% güven aralığı -0.0104 ile +0.0086). Dolayısıyla hipotez bu kapsamda ne doğrulandı ne de çürütüldü.

İlk sürümden sonra

İlk sürümden sonraki dört deneyin karar kuralı çalıştırmadan önce yazıldı ve her biri geliştirmeyi amaçladığı modele karşı eşleştirilmiş farkla değerlendirildi; hiçbirinin katkısı gösterilemedi: öğrenilmiş dizi modeli (CNN tek başına 0.077, karışım farkı -0.0009), özellik uzayından tahmin edilen rejim (-0.0010; +0.0002 üzerindeki kazançları dışlayacak kadar dar aralık), dört ek topluluk modeli (+0.0017 ancak daha düşük havuzlanmış kosinüs) ve 28 yakın kopya özelliğin kaldırılması (-0.0005). Ayrıca sample_id değerinin eğitimde yalnızca ay ölçeğinde kronolojik olduğu ve testte sıralama taşımadığı bulundu; bu yüzden komşu örneklerden üretilen özellikler eğitimde hesaplanabilirken gerçek puanlamada hesaplanamaz. 16 GB makinede Ridge adımı bellek sınırına takıldığından aynı tahminleri üreten parça parça eğitim uygulanmıştır. Yayımlanan topluluk modelinin genel yarışma skoru değişmeden 0.129 kaldı; model dosyaları Hugging Face üzerinde açıktır.

Yayımlama ve teslim

533 testin hiçbiri canlı BigQuery veya indirilen veri gerektirmez (CatBoost ve PyTorch kurulu değilse ilgili testler atlanır). Her push üzerinde dört CI işi bulunur: lint, tip denetimi ve testler; yalnızca çalışma zamanı bağımlılıklarıyla bütün panel sayfalarının render edilmesi; hafif API imajının Docker derleme ve smoke testi; demo modelini eğitip API imajına HTTP üzerinden istek gönderen uçtan uca test. Servis imajı, tek imajlı eski sürümün 3.48 GB boyutuna karşı 777 MB düzeyindedir. Sentetik veri demosu, kimlik bilgisi gerektirmeden tüm hattı yaklaşık 15 saniyede çalıştırır.

Neden önemli?

Yarışma skoru katılımcı ortancasının altındadır ve proje bunu giriş sayfasında açıkça belirtir. Çalışmanın asıl gösterdiği aktarılabilir beceri; sonucu öğrenmeden önce tahminleri kaydetmek, varsayımı savunmak yerine ölçmek ve sonuç beklentiyle çeliştiğinde de açıkça raporlamaktır.

Mimari ve analiz

  • Dahili tahmin ile yarışmada ölçülen skor arasındaki farkı gizlemek yerine araştırmanın ana sorusu yapar.
  • Dönem zorluğu ile model kalitesini ayırır; birbirinden bağımsız iki yöntemin 0.00004 farkla örtüştüğünü gösterir.
  • Her deneyin sonucunu ancak desteklediği kapsamda ifade eder; bir hipotezin tam olarak yanlışlanamadığı durumları da açıklar.

Test ve doğrulama

  • 221.7M tek parti satırını 16 GB bellek sınırında işleyebilen sütun gruplu Feather-Parquet dönüştürücüsü
  • Kod ile materyalize tablolar arasındaki kaymaları yakalayan sözleşme testlerine sahip BigQuery özellik katmanı
  • Aynı model çıktı biçimini paylaşan yedi sayfalı Streamlit paneli ve FastAPI servisi

Operasyonel değer

  • Dönem zorluğu ve ileriye dönük doğrulama analizini çalıştırılabilir Kaggle notebooku olarak yayımlar.
  • 804.5M ham satırı örnek başına 292 özelliğe indirger; bunların 264 tanesi 0.999 korelasyon eşiğinin üzerinde birbirinden ayrıdır.
  • Beş katlı ileriye dönük doğrulamada +0.14088 kosinüs skoru ve 0.0041 katlar arası standart sapma elde eder.
  • Dokunulmamış altı ayda, yalnızca bir kez okunan holdout kosinüs skoru +0.15171 düzeyindedir.
  • Yarışmaya yapılan iki gönderim: tek LightGBM modeli için 0.128, dört ek ayda eğitilen topluluk için 0.129.
  • Holdout ve yarışma puanı arasındaki fark için altı hipotezi sınar; dönem zorluğu 46%, spread rejimi karışımı yaklaşık 14% bölümünü açıklar. Bu etkiler örtüştüğü için oranlar doğrudan toplanmamalıdır.

Nasıl incelenir

  • Canlı paneli açıp doğrudan "Why the leaderboard disagreed" bölümüne gidin.
  • İncelemede bulunan iki analiz hatası dâhil bütün araştırma için notebook 05 dosyasını okuyun.
  • Raporlanan sayıları depodaki results/ klasörüyle karşılaştırın; testler sonuçları kendi girdilerinden yeniden hesaplar.

İlgili teknik çalışmalar

Tüm projeler