Hedef kodlama

Python ile Bir Kaggle Yarışmasını Kazanmak

Yauhen Babakhin

Kaggle Grandmaster

Yüksek kardinaliteli kategorik özellikler

 

  • Etiket kodlayıcı her kategoriye tek bir sayı atar
  • Tek-seçenekli kodlayıcı her kategori değeri için yeni bir özellik oluşturur
  • İmdada hedef kodlama yetişir!
Python ile Bir Kaggle Yarışmasını Kazanmak

Ortalama hedef kodlama

Eğitim ID Kategorik Hedef
1 A 1
2 B 0
3 B 0
4 A 1
5 B 0
6 A 0
7 B 1
Test ID Kategorik Hedef
10 A ?
11 A ?
12 B ?
13 A ?
Python ile Bir Kaggle Yarışmasını Kazanmak

Ortalama hedef kodlama

 

  1. Eğitimde ortalama hesaplayın, teste uygulayın
  2. Eğitimi K kata ayırın. Ortalamayı (K-1) kat üzerinde hesaplayın, K. kata uygulayın
  3. Ortalama hedef kodlu özelliği modele ekleyin
Python ile Bir Kaggle Yarışmasını Kazanmak

Eğitimde ortalama hesapla

Eğitim ID Kategorik Hedef
1 A 1
2 B 0
3 B 0
4 A 1
5 B 0
6 A 0
7 B 1
Python ile Bir Kaggle Yarışmasını Kazanmak

Eğitimde ortalama hesapla

Eğitim ID Kategorik Hedef
1 A 1
2 B 0
3 B 0
4 A 1
5 B 0
6 A 0
7 B 1
Python ile Bir Kaggle Yarışmasını Kazanmak

Eğitimde ortalama hesapla

Eğitim ID Kategorik Hedef
1 A 1
2 B 0
3 B 0
4 A 1
5 B 0
6 A 0
7 B 1
Python ile Bir Kaggle Yarışmasını Kazanmak

Test kodlama

Test ID Kategorik Hedef Ortalama kodlama
10 A ? 0.66
11 A ? 0.66
12 B ? 0.25
13 A ? 0.66
Python ile Bir Kaggle Yarışmasını Kazanmak

Kat dışı ile eğitim kodlama

Eğitim ID Kategorik Hedef Kat
1 A 1 1
2 B 0 1
3 B 0 1
4 A 1 1
5 B 0 2
6 A 0 2
7 B 1 2
Python ile Bir Kaggle Yarışmasını Kazanmak

Kat dışı ile eğitim kodlama

Eğitim ID Kategorik Hedef Kat Ortalama kodlama
1 A 1 1
2 B 0 1
3 B 0 1
4 A 1 1
5 B 0 2
6 A 0 2
7 B 1 2
Python ile Bir Kaggle Yarışmasını Kazanmak

Kat dışı ile eğitim kodlama

Eğitim ID Kategorik Hedef Kat Ortalama kodlama
1 A 1 1 0
2 B 0 1 0.5
3 B 0 1 0.5
4 A 1 1 0
5 B 0 2
6 A 0 2
7 B 1 2
Python ile Bir Kaggle Yarışmasını Kazanmak

Kat dışı ile eğitim kodlama

Eğitim ID Kategorik Hedef Kat Ortalama kodlama
1 A 1 1 0
2 B 0 1 0.5
3 B 0 1 0.5
4 A 1 1 0
5 B 0 2
6 A 0 2
7 B 1 2
Python ile Bir Kaggle Yarışmasını Kazanmak

Kat dışı ile eğitim kodlama

Eğitim ID Kategorik Hedef Kat Ortalama kodlama
1 A 1 1 0
2 B 0 1 0.5
3 B 0 1 0.5
4 A 1 1 0
5 B 0 2 0
6 A 0 2 1
7 B 1 2 0
Python ile Bir Kaggle Yarışmasını Kazanmak

Pratik rehberler

Python ile Bir Kaggle Yarışmasını Kazanmak

Pratik rehberler

Yumuşatma

$$mean\_enc_i = \frac{target\_sum_i}{n_i}$$

$$smoothed\_mean\_enc_i = \frac{target\_sum_i + \alpha*global\_mean}{n_i + \alpha}$$

$$\alpha \in [5; 10]$$

Python ile Bir Kaggle Yarışmasını Kazanmak

Pratik rehberler

Yumuşatma

$$mean\_enc_i = \frac{target\_sum_i}{n_i}$$

$$smoothed\_mean\_enc_i = \frac{target\_sum_i + \alpha*global\_mean}{n_i + \alpha}$$

$$\alpha \in [5; 10]$$

Yeni kategoriler

  • Testteki yeni kategorileri global_mean ile doldurun
Python ile Bir Kaggle Yarışmasını Kazanmak

Pratik rehberler

 

Eğitim ID Kategorik Hedef
1 A 1
2 B 0
3 B 0
4 A 0
5 B 1

 

Test ID Kategorik Hedef Ortalama kodlama
10 A ? 0.43
11 B ? 0.38
12 C ? 0.40
Python ile Bir Kaggle Yarışmasını Kazanmak

Hadi pratik yapalım!

Python ile Bir Kaggle Yarışmasını Kazanmak

Preparing Video For Download...