K-fold cross-validation
आप Kaggle playground प्रतियोगिता के एक सबसेट पर बाइनरी क्लासिफिकेशन समस्या पर काम करेंगे. इस प्रतियोगिता का उद्देश्य यह भविष्यवाणी करना है कि मशहूर बास्केटबॉल खिलाड़ी Kobe Bryant ने किसी शॉट में बास्केट स्कोर किया या वह शॉट मिस हो गया.
ट्रेन डेटा आपके कार्यक्षेत्र में bryant_shots DataFrame के रूप में उपलब्ध है. इसमें 10,000 शॉट्स की जानकारियाँ और एक target वैरिएबल "shot\_made\_flag" है — शॉट स्कोर हुआ या नहीं.
डेटा में एक फीचर "game_id" है — वह विशेष गेम जिसमें शॉट लिया गया था. कुल 541 अलग-अलग गेम हैं. यानी, आप एक high-cardinality कैटेगोरिकल फीचर से निपट रहे हैं. आइए इसे target mean से एन्कोड करते हैं!
मान लीजिए आप 5-fold cross-validation का उपयोग कर रहे हैं और लोकल वेलिडेशन पर mean target से एन्कोड किए गए फीचर का मूल्यांकन करना चाहते हैं.
यह अभ्यास पाठ्यक्रम का हिस्सा है
Python में Kaggle प्रतियोगिता जीतना
अभ्यास निर्देश
- ऐसा करने के लिए, आपको
"game_id"कैटेगोरिकल फीचर के लिए एन्कोडिंग प्रक्रिया हर फोल्ड स्प्लिट के अंदर अलग-अलग दोहरानी होगी. आपका लक्ष्य है कि हर फोल्ड स्प्लिट के भीतरmean_target_encoding()फंक्शन कॉल के सभी missing पैरामीटर्स सही तरह से भरें. - याद रखें कि
trainऔरtestपैरामीटर्स, क्रमशः train और test DataFrames की अपेक्षा करते हैं. - वहीं
targetऔरcategoricalपैरामीटर्स, target वैरिएबल के नाम और एन्कोड किए जाने वाले कैटेगोरिकल फीचर के नाम की अपेक्षा करते हैं.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# Create 5-fold cross-validation
kf = KFold(n_splits=5, random_state=123, shuffle=True)
# For each folds split
for train_index, test_index in kf.split(bryant_shots):
cv_train, cv_test = bryant_shots.iloc[train_index], bryant_shots.iloc[test_index]
# Create mean target encoded feature
cv_train['game_id_enc'], cv_test['game_id_enc'] = mean_target_encoding(train=cv_train,
test=____,
target='shot_made_flag',
categorical='____',
alpha=5)
# Look at the encoding
print(cv_train[['game_id', 'shot_made_flag', 'game_id_enc']].sample(n=1))