सूचित तरीके: Genetic Algorithms

Python में Hyperparameter Tuning

Alex Scriven

Data Scientist

जेनेटिक्स पर एक पाठ

 

वास्तविक दुनिया की जेनेटिक इवोल्यूशन में प्रक्रिया ऐसी होती है:

  1. कई जीव मौजूद होते हैं ('offspring')
  2. सबसे शक्तिशाली जीव बचते हैं और जोड़ी बनाते हैं
  3. वे offspring बनाते समय कुछ 'crossover' होता है
  4. कुछ offspring में रैंडम mutations होते हैं
    • ये mutations कभी-कभी कुछ offspring को बढ़त देते हैं
  5. फिर से (1) पर जाएँ!
Python में Hyperparameter Tuning

Machine Learning में जेनेटिक्स

 

हम यही विचार hyperparameter tuning पर लागू कर सकते हैं:

  1. हम कुछ मॉडल बना सकते हैं (जिनमें hyperparameter सेटिंग्स हों)
  2. हम सबसे अच्छे चुन सकते हैं (अपनी scoring फंक्शन से)
    • यही वे हैं जो 'survive' करते हैं
  3. हम सर्वश्रेष्ठ जैसे नए मॉडल बना सकते हैं
  4. थोड़ी randomness जोड़ें ताकि local optimum में न फँसें
  5. जब तक संतुष्ट न हों, दोहराएँ!
Python में Hyperparameter Tuning

यह अच्छा क्यों काम करता है?

 

यह एक informed search है जिसके कई फायदे हैं:

  • यह हमें पिछली iterations से सीखने देता है, ठीक bayesian hyperparameter tuning की तरह.
  • इसमें अतिरिक्त लाभ है कुछ randomness का
  • (जो पैकेज हम उपयोग करेंगे) machine learning के कई थकाऊ हिस्सों का ध्यान रखता है
Python में Hyperparameter Tuning

TPOT परिचय

 

जेनेटिक hyperparameter tuning के लिए एक उपयोगी लाइब्रेरी है TPOT:

TPOT को अपना Data Science Assistant मानें. TPOT एक Python Automated Machine Learning टूल है जो जेनेटिक प्रोग्रामिंग से machine learning pipelines को optimize करता है.

Pipelines में केवल मॉडल (या कई मॉडल) ही नहीं, बल्कि फीचर्स और प्रोसेस के अन्य हिस्से भी शामिल होते हैं. साथ ही यह आपके लिए pipeline का Python कोड लौटाता है!

Python में Hyperparameter Tuning

TPOT घटक

TPOT classifier के मुख्य arguments हैं:

  • generations: ट्रेनिंग चलाने की iterations.
  • population_size: हर iteration के बाद रखने वाले मॉडलों की संख्या.
  • offspring_size: हर iteration में बनाने वाले मॉडलों की संख्या.
  • mutation_rate: जिन pipelines पर randomness लगानी है, उनका अनुपात.
  • crossover_rate: हर iteration में breed करने वाली pipelines का अनुपात.
  • scoring: सबसे अच्छे मॉडल तय करने वाली फंक्शन.
  • cv: उपयोग करने की cross-validation रणनीति.
Python में Hyperparameter Tuning

एक सरल उदाहरण

एक सरल उदाहरण:

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

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

Python में Hyperparameter Tuning

Preparing Video For Download...