Python में Hyperparameter Tuning
Alex Scriven
Data Scientist
वास्तविक दुनिया की जेनेटिक इवोल्यूशन में प्रक्रिया ऐसी होती है:
हम यही विचार hyperparameter tuning पर लागू कर सकते हैं:
यह एक informed search है जिसके कई फायदे हैं:
जेनेटिक hyperparameter tuning के लिए एक उपयोगी लाइब्रेरी है TPOT:
TPOT को अपना Data Science Assistant मानें. TPOT एक Python Automated Machine Learning टूल है जो जेनेटिक प्रोग्रामिंग से machine learning pipelines को optimize करता है.
Pipelines में केवल मॉडल (या कई मॉडल) ही नहीं, बल्कि फीचर्स और प्रोसेस के अन्य हिस्से भी शामिल होते हैं. साथ ही यह आपके लिए pipeline का Python कोड लौटाता है!
TPOT classifier के मुख्य arguments हैं:
generations: ट्रेनिंग चलाने की iterations.population_size: हर iteration के बाद रखने वाले मॉडलों की संख्या.offspring_size: हर iteration में बनाने वाले मॉडलों की संख्या.mutation_rate: जिन pipelines पर randomness लगानी है, उनका अनुपात.crossover_rate: हर iteration में breed करने वाली pipelines का अनुपात.scoring: सबसे अच्छे मॉडल तय करने वाली फंक्शन.cv: उपयोग करने की cross-validation रणनीति.एक सरल उदाहरण:
from tpot import TPOTClassifier tpot = TPOTClassifier(generations=3, population_size=5, verbosity=2, offspring_size=10, scoring='accuracy', cv=5)tpot.fit(X_train, y_train) print(tpot.score(X_test, y_test))
हम mutation_rate और crossover_rate के लिए डिफ़ॉल्ट मान ही रखेंगे, क्योंकि जेनेटिक प्रोग्रामिंग की गहरी जानकारी के बिना इन्हें डिफ़ॉल्ट पर छोड़ना बेहतर है.
ध्यान दें: कोई algorithm-विशिष्ट hyperparameters नहीं?
Python में Hyperparameter Tuning