scikit-learn tarayıcının içinde çalışacak — sunucu yok, kurulum yok.
İlk açılış ~20-40 sn, sonra önbellekten gelir.
Adım 1 / 10
0 XP
Görev 01 · İstatistiksel Karşılaştırma
Bu model gerçekten daha mı iyi?
10 adım · ~12 dakika · ön bilgi gerekmiyor
◆ Görev brifingi
Bir kurum iki modelden birini seçecek ve senin raporuna göre karar verecek.
Yanlış modeli önerirsen kimse fark etmez — ta ki sistem sahada çökene kadar.
Görevin sadece “hangisi daha iyi” demek değil: dediğini kanıtlamak.
ADIM 1
Isınma — hiç model yok
◆ Neden bu soruyu soruyoruz?
Bütün görevin dayandığı fikri, henüz hiçbir teknik kelime öğrenmeden yakalaman için.
Bu soruyu doğru cevaplarsan, geri kalan 9 adım sadece aynı fikrin matematiği olacak.
YapacağınAşağıdaki soruyu cevapla. Yanlış cevap serbest — burada kimse not vermiyor, kendi sezgini ölçüyorsun.
Ali ve Veli 10 el taş-kağıt-makas oynadı. Ali 6, Veli 4 el kazandı. Ali daha mı iyi oyuncu?
ADIM 2
Görevi kur — neyi neyle karşılaştırıyorsun?
◆ Neden bu adım var?
Karşılaştıracağın iki şeyin ne yaptığını bilmeden sonucu yorumlayamazsın.
p-değeri sana “neden” demez, sadece “evet/hayır” der. “Neden”i sen kuracaksın.
YapacağınBir veri seti ve iki farklı model seç. Her seçimin altında ne olduğu düz Türkçeyle yazıyor.
ADIM 3
Tahmin et — sonucu görmeden önce
◆ Neden sonucu göstermeden tahmin istiyoruz?
İki sebep. Bir: önce tahmin edip sonra görmek, sadece görmekten kalıcı öğrenme yaratıyor —
beynin cevabı üretmeye çalışırken bilgiyi bağlıyor. İki: bu sitede asıl ölçtüğümüz şey
bilgin değil, sezginin ne kadar güvenilir olduğu. Yanlış tahminlerin senin en değerli verisi.
YapacağınBir şık seç ve kilitle. Sonucu 8. adımda göreceksin — o zamana kadar değiştiremezsin.
ADIM 4
İlk kanıt — herkesin yaptığı şey
◆ Neden bunu yapıyoruz?
Çünkü sahada, makalelerde, blog yazılarında, Kaggle notebook'larında yapılan şey tam olarak bu:
veriyi %70 eğitim / %30 test diye böl, iki modeli eğit, accuracy'lere bak, yükseği seç.
Önce bunu yapacağız — sonra neden yetmediğini göstereceğiz.
YapacağınSadece izle. İki modelin veriyi nasıl böldüğüne ve kaç noktayı kaçırdığına bak.
—
—
sınıf 0sınıf 1sınıf 2
modelin kaçırdığı nokta
ADIM 5
Sarsıntı — güvendiğin sayıyı sallıyoruz
◆ Neden bunu yapıyoruz?
4. adımdaki bölünme rastgeleydi. Rastgele bir seçim tek bir sayı üretti ve sen o sayıya
bakarak karar vermek üzereydin. Şimdi aynı veriyi, aynı modelleri alıp sadece
rastgele bölünmeyi değiştireceğiz. Model değişmiyor. Veri değişmiyor. Sadece kim eğitimde
kim testte, o değişiyor.
Yapacağın“Yeniden böl” düğmesine en az 5 kez bas. Her basışta accuracy'lerin nereye gittiğini izle.
0 bölünme
ADIM 6
Peki kaç kez tekrar etmeli?
◆ Neden rastgele 100 kere tekrarlamıyoruz?
Çünkü tekrarlar birbirinden bağımsız değil — hepsi aynı 400 satırlık veriyi tekrar tekrar
kullanıyor. Aynı noktalar defalarca hem eğitimde hem testte görünüyor. 100 tekrar sana
100 bağımsız kanıt vermez; aynı kanıtı 100 kez sayar ve emin olmadığın halde emin
olduğunu sanmana yol açar. Bu yüzden tekrarların yapısı önemli.
Ethem Alpaydın'ın çözümü 5×2cv: veriyi ikiye böl,
önce birinci yarıyla eğit ikinciyle test et, sonra rolleri takas et. Bu bir tekrar.
Farklı bölmelerle 5 kez yap. Toplam 10 eğitim, ve her satır kendi içinde dengeli.
✦ Kilit nokta
Her katta iki model de aynı bölünmeyi görüyor. Bu “eşleştirilmiş” (paired) tasarım demek:
bölünmenin şansı ikisini de aynı anda etkiliyor, dolayısıyla farkı alınca şans büyük ölçüde sadeleşiyor.
Ölçtüğümüz şey artık “A ne kadar iyi” değil, “A ile B arasındaki fark ne kadar tutarlı”.
ADIM 7
Çalıştır — 10 eğitim, gerçek kod
◆ Neden kodu gösteriyoruz?
Çünkü bu bir animasyon değil. Aşağıdaki kod senin makinende, gerçek scikit-learn ile
çalışacak. Kopyalayıp kendi projene yapıştırabilirsin — kara kutu yok.
# 5 tekrar × 2 kat. 2-kat CV'de ikinci kat zaten birincinin takasıdır:# her yarı bir kez eğitim, bir kez test olur.for i inrange(5):
cv = StratifiedKFold(n_splits=2, shuffle=True, random_state=i)
for j, (tr, te) inenumerate(cv.split(X, y)):
errA = 1 - A.fit(X[tr], y[tr]).score(X[te], y[te])
errB = 1 - B.fit(X[tr], y[tr]).score(X[te], y[te])
p[i][j] = errA - errB # eşleştirilmiş fark — aynı bölünme
YapacağınDüğmeye bas, 10 eğitimi çalıştır. Sonra fark sütununa bak: işaret hep aynı mı, yoksa oynak mı?
ADIM 8
Doğru testi seç
◆ Neden “bir test” değil de “doğru test”?
Her istatistik testi bir tasarım varsayımı ile gelir. Yanlış testi uygularsan sayı yine çıkar,
p-değeri yine yazılır, hakem de fark etmeyebilir — ama o sayı yalan söyler.
Bu adım, ML'de en sık ve en sessiz yapılan hatanın tam kalbi.
Elindeki durum10 eşleştirilmiş fark var · her katta modeller yeniden eğitildi · bölünmeler örtüşüyor (bağımsız değil).
ADIM 9
p-değeri ne diyor?
◆ Neden ayrı bir adım?
Çünkü p-değeri, bilim tarihinin en çok yanlış anlaşılan sayısı. Doğru testi seçip
sonucu yanlış cümleyle yazmak, en baştan test yapmamaktan farksız.
YapacağınYukarıdaki p-değerinin ne anlama geldiğini seç. Şıkların üçü, sahada sürekli yazılan yanlış cümleler.
ADIM 10
Rapor — imzanı at
◆ Neden son adım yazmak?
Çünkü işin çıktısı bir p-değeri değil, bir cümle. O cümleyi kurum okuyacak,
hakem okuyacak, ekip okuyacak. Yanlış kurulmuş bir cümle doğru yapılmış bütün analizi çöpe atar.
prototip · tek dosya · scikit-learn tarayıcıda (Pyodide) · English