सब कुछ जोड़ते हुए
आपकी एरिद्मिया डिटेक्शन स्टार्टअप में अपनी पाइपलाइन को लेकर दो चिंताएँ हैं:
- ऐप को सभी आयु-वर्ग के मरीजों पर प्रशिक्षित किया गया था, लेकिन इसे मुख्य रूप से फिटनेस उपयोगकर्ता इस्तेमाल कर रहे हैं जो प्रायः युवा होते हैं. आपको शक है कि यह डोमेन शिफ्ट का मामला हो सकता है, इसलिए आप 50 साल से अधिक आयु वाले सभी उदाहरणों को नज़रअंदाज़ करना चाहते हैं.
- आपको अभी भी ओवरफिटिंग की चिंता है, इसलिए आप देखना चाहते हैं कि क्या रैंडम फॉरेस्ट क्लासिफायर को कम जटिल बनाना और कुछ फीचर चुनना इसमें मदद करेगा.
आप SelectKBest() फीचर सेलेक्शन स्टेप और RandomForestClassifier के साथ एक पाइपलाइन बनाएँगे, जिन दोनों को इम्पोर्ट किया जा चुका है. आपके पास GridSearchCV(), Pipeline, numpy as np और pickle तक पहुँच है. डेटा arrh के रूप में उपलब्ध है.
यह अभ्यास पाठ्यक्रम का हिस्सा है
Python में मशीन लर्निंग वर्कफ़्लो डिज़ाइन करना
अभ्यास निर्देश
SelectKBest()को स्टेपftऔरRandomForestClassifier()को स्टेपclfबनाकर एक पाइपलाइन बनाएँ.- एक पैरामीटर ग्रिड बनाएँ ताकि
SelectKBest()मेंkऔरRandomForestClassifier()मेंmax_depthट्यून किए जा सकें. GridSearchCV()का उपयोग कर अपनी पाइपलाइन को उसी ग्रिड के विरुद्ध और केवल 50 वर्ष से कम आयु वालों वाला डेटा लेकर ऑप्टिमाइज़ करें.- ऑप्टिमाइज़्ड पाइपलाइन को प्रोडक्शन के लिए एक पिकल में सेव करें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# Create a pipeline
pipe = Pipeline([
('ft', ____), ('clf', ____(random_state=2))])
# Create a parameter grid
grid = {'ft__k':[5, 10], '____':[10, 20]}
# Execute grid search CV on a dataset containing under 50s
grid_search = ____(pipe, param_grid=grid)
arrh = arrh.____[____(arrh['age'] < 50)]
____.____(arrh.drop('class', 1), arrh['class'])
# Push the fitted pipeline to production
with ____('pipe.pkl', ____) as file:
pickle.dump(____, file)