टारगेट एनकोडिंग

Python में Kaggle प्रतियोगिता जीतना

Yauhen Babakhin

Kaggle Grandmaster

हाई-कार्डिनैलिटी कैटेगोरिकल फीचर्स

 

  • लेबल एनकोडर हर श्रेणी के लिए अलग नंबर देता है
  • वन-हॉट एनकोडर हर श्रेणी मान के लिए नया फीचर बनाता है
  • टारगेट एनकोडिंग से समाधान!
Python में Kaggle प्रतियोगिता जीतना

मीन टारगेट एनकोडिंग

Train ID Categorical Target
1 A 1
2 B 0
3 B 0
4 A 1
5 B 0
6 A 0
7 B 1
Test ID Categorical Target
10 A ?
11 A ?
12 B ?
13 A ?
Python में Kaggle प्रतियोगिता जीतना

मीन टारगेट एनकोडिंग

 

  1. ट्रेन पर औसत निकालें, टेस्ट पर लागू करें
  2. ट्रेन को K फोल्ड्स में बाँटें. (K-1) फोल्ड्स पर औसत निकालें, K-वें फोल्ड पर लागू करें
  3. मीन टारगेट एनकोड किया फीचर मॉडल में जोड़ें
Python में Kaggle प्रतियोगिता जीतना

ट्रेन पर औसत निकालें

Train ID Categorical Target
1 A 1
2 B 0
3 B 0
4 A 1
5 B 0
6 A 0
7 B 1
Python में Kaggle प्रतियोगिता जीतना

ट्रेन पर औसत निकालें

Train ID Categorical Target
1 A 1
2 B 0
3 B 0
4 A 1
5 B 0
6 A 0
7 B 1
Python में Kaggle प्रतियोगिता जीतना

트्रेन पर औसत निकालें

Train ID Categorical Target
1 A 1
2 B 0
3 B 0
4 A 1
5 B 0
6 A 0
7 B 1
Python में Kaggle प्रतियोगिता जीतना

टेस्ट एनकोडिंग

Test ID Categorical Target Mean encoded
10 A ? 0.66
11 A ? 0.66
12 B ? 0.25
13 A ? 0.66
Python में Kaggle प्रतियोगिता जीतना

आउट-ऑफ-फोल्ड से ट्रेन एनकोडिंग

Train ID Categorical Target 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
Python में Kaggle प्रतियोगिता जीतना

आउट-ऑफ-फोल्ड से ट्रेन एनकोडिंग

Train ID Categorical Target Fold Mean encoded
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 में Kaggle प्रतियोगिता जीतना

आउट-ऑफ-फोल्ड से ट्रेन एनकोडिंग

Train ID Categorical Target Fold Mean encoded
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 में Kaggle प्रतियोगिता जीतना

आउट-ऑफ-फोल्ड से ट्रेन एनकोडिंग

Train ID Categorical Target Fold Mean encoded
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 में Kaggle प्रतियोगिता जीतना

आउट-ऑफ-फोल्ड से ट्रेन एनकोडिंग

Train ID Categorical Target Fold Mean encoded
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 में Kaggle प्रतियोगिता जीतना

व्यावहारिक गाइड्स

Python में Kaggle प्रतियोगिता जीतना

व्यावहारिक गाइड्स

स्मूथिंग

$$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 में Kaggle प्रतियोगिता जीतना

व्यावहारिक गाइड्स

स्मूथिंग

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

नई श्रेणियाँ

  • टेस्ट डेटा में नई श्रेणियाँ global_mean से भरें
Python में Kaggle प्रतियोगिता जीतना

व्यावहारिक गाइड्स

 

Train ID Categorical Target
1 A 1
2 B 0
3 B 0
4 A 0
5 B 1

 

Test ID Categorical Target Mean encoded
10 A ? 0.43
11 B ? 0.38
12 C ? 0.40
Python में Kaggle प्रतियोगिता जीतना

अभ्यास करते हैं!

Python में Kaggle प्रतियोगिता जीतना

Preparing Video For Download...