Codificarea țintă

Câștigarea unei competiții Kaggle în Python

Yauhen Babakhin

Kaggle Grandmaster

Caracteristici categorice cu cardinalitate ridicată

 

  • Encodatorul de etichete atribuie un număr distinct fiecărei categorii
  • Encodatorul one-hot creează o nouă caracteristică pentru fiecare valoare categorică
  • Codificarea țintă vine în ajutor!
Câștigarea unei competiții Kaggle în Python

Codificarea medie a țintei

ID antrenare Categoric Țintă
1 A 1
2 B 0
3 B 0
4 A 1
5 B 0
6 A 0
7 B 1
ID testare Categoric Țintă
10 A ?
11 A ?
12 B ?
13 A ?
Câștigarea unei competiții Kaggle în Python

Codificarea medie a țintei

 

  1. Calculați media pe antrenare, aplicați pe testare
  2. Împărțiți antrenarea în K folduri. Calculați media pe (K-1) folduri, aplicați pe al K-lea fold
  3. Adăugați caracteristica codificată prin media țintei în model
Câștigarea unei competiții Kaggle în Python

Calculați media pe setul de antrenare

ID antrenare Categoric Țintă
1 A 1
2 B 0
3 B 0
4 A 1
5 B 0
6 A 0
7 B 1
Câștigarea unei competiții Kaggle în Python

Calculați media pe setul de antrenare

ID antrenare Categoric Țintă
1 A 1
2 B 0
3 B 0
4 A 1
5 B 0
6 A 0
7 B 1
Câștigarea unei competiții Kaggle în Python

Calculați media pe setul de antrenare

ID antrenare Categoric Țintă
1 A 1
2 B 0
3 B 0
4 A 1
5 B 0
6 A 0
7 B 1
Câștigarea unei competiții Kaggle în Python

Codificarea setului de testare

ID testare Categoric Țintă Medie codificată
10 A ? 0.66
11 A ? 0.66
12 B ? 0.25
13 A ? 0.66
Câștigarea unei competiții Kaggle în Python

Codificarea antrenării cu out-of-fold

ID antrenare Categoric Țintă Fold
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
Câștigarea unei competiții Kaggle în Python

Codificarea antrenării cu out-of-fold

ID antrenare Categoric Țintă Fold Medie codificată
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
Câștigarea unei competiții Kaggle în Python

Codificarea antrenării cu out-of-fold

ID antrenare Categoric Țintă Fold Medie codificată
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
Câștigarea unei competiții Kaggle în Python

Codificarea antrenării cu out-of-fold

ID antrenare Categoric Țintă Fold Medie codificată
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
Câștigarea unei competiții Kaggle în Python

Codificarea antrenării cu out-of-fold

ID antrenare Categoric Țintă Fold Medie codificată
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
Câștigarea unei competiții Kaggle în Python

Ghiduri practice

Câștigarea unei competiții Kaggle în Python

Ghiduri practice

Netezire

$$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]$$

Câștigarea unei competiții Kaggle în Python

Ghiduri practice

Netezire

$$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]$$

Categorii noi

  • Completați categoriile noi din datele de testare cu global_mean
Câștigarea unei competiții Kaggle în Python

Ghiduri practice

 

ID antrenare Categoric Țintă
1 A 1
2 B 0
3 B 0
4 A 0
5 B 1

 

ID testare Categoric Țintă Medie codificată
10 A ? 0.43
11 B ? 0.38
12 C ? 0.40
Câștigarea unei competiții Kaggle în Python

Să exersăm!

Câștigarea unei competiții Kaggle în Python

Preparing Video For Download...