Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

Python में SciPy का उपयोग करके नेल्डर-मीड एल्गोरिदम कैसे लागू करें?


SciPy लाइब्रेरी का उपयोग उच्च दक्षता के साथ गति से जटिल वैज्ञानिक गणनाओं को करने के लिए किया जा सकता है। नेल्डर-मीड एल्गोरिदम को सिंपल सर्च एल्गोरिदम के रूप में भी जाना जाता है।

इसे पैरामीटर अनुमान समस्याओं और सांख्यिकीय समस्याओं को हल करने के लिए उपयोग किए जा सकने वाले सर्वोत्तम एल्गोरिदम में से एक माना जाता है। उन स्थितियों में उपयोग करना प्रासंगिक है जहां फ़ंक्शन के मान अनिश्चित हैं या उनसे बहुत अधिक शोर जुड़ा हुआ है।

इस एल्गोरिदम का उपयोग असंतत फ़ंक्शन के साथ काम करने के लिए भी किया जा सकता है जो सांख्यिकी में अक्सर होते हैं। यह एक सरल एल्गोरिदम है और समझने में भी आसान है। बहुआयामी अनियंत्रित ऑप्टिमाइजेशन के मामले में एक गैर-रैखिक फ़ंक्शन के पैरामीटर्स को कम करने के लिए उपयोग किया जाता है।

इस एल्गोरिदम का उपयोग इष्टतम ग्रेडिएंट मानों को खोजने के लिए करने का सुझाव नहीं दिया जाता है क्योंकि इसमें लंबा समय लग सकता है।

आइए एक उदाहरण देखते हैं -

उदाहरण

import numpy as np
from scipy.optimize import minimize
def f(x):
    return .6*(1 - x[0])**2
scipy.optimize.minimize(f, [2, -1], method="Nelder-Mead")

आउटपुट

final_simplex: (array([[ 1. , -1.27109375],
     [ 1. , -1.27118835],
     [ 1. , -1.27113762]]), array([0., 0., 0.]))
     fun: 0.0
     message: 'Optimization terminated successfully.'
      nfev: 147
      nit: 69
      status: 0
      success: True
x: array([ 1. , -1.27109375])

व्याख्या

  • आवश्यक लाइब्रेरी आयात की गई हैं।

  • एक फ़ंक्शन 'f' परिभाषित किया गया है जो एक मान को आर्गुमेंट के रूप में लेता है, और उस पर कुछ गणितीय गणना करता है।

  • इस फ़ंक्शन को 'f' फ़ंक्शन के बाहर बुलाया जाता है जो मान की गणना करता है।

  • इस फ़ंक्शन को 'scipy' लाइब्रेरी के 'ऑप्टिमाइज़' क्लास में मौजूद 'मिनिमाइज़' फ़ंक्शन के पैरामीटर के रूप में पास किया जाता है।

  • यह आउटपुट कंसोल पर प्रदर्शित होता है।

  1. Python और Bokeh का उपयोग करके एक्सिस-अलाइन्ड आयतों को कैसे विज़ुअलाइज़ करें? Python और Bokeh का उपयोग करके एक्सिस-अलाइन्ड आयतों को कैसे विज़ुअलाइज़ करें?

    Bokeh एक Python पैकेज है जो डेटा विज़ुअलाइज़ेशन में मदद करता है। यह एक ओपन-सोर्स प्रोजेक्ट है। Bokeh अपने प्लॉट को HTML और JavaScript का उपयोग करके रेंडर करता है। यह इंगित करता है कि यह वेब-आधारित डैशबोर्ड के साथ काम करते समय उपयोगी है। Bokeh डेटा स्रोत को JSON फ़ाइल में परिवर्तित करता है। इस फ़ाइल

  1. पायथन में Matplotlib का उपयोग करके क्विवर प्लॉट कैसे बनाएं? पायथन में Matplotlib का उपयोग करके क्विवर प्लॉट कैसे बनाएं?

    Matplotlib डेटा विज़ुअलाइज़ेशन के लिए एक लोकप्रिय पायथन पैकेज है। डेटा विज़ुअलाइज़ेशन एक महत्वपूर्ण कदम है क्योंकि यह समझने में मदद करता है कि संख्याओं को देखे बिना और जटिल गणनाएं किए बिना डेटा में क्या हो रहा है। यह दर्शकों को मात्रात्मक अंतर्दृष्टि प्रभावी ढंग से संप्रेषित करने में मदद करता है। M

  1. पायथन में factorplot फंक्शन का उपयोग करके वायलिन प्लॉट कैसे विज़ुअलाइज़ करें पायथन में factorplot फंक्शन का उपयोग करके वायलिन प्लॉट कैसे विज़ुअलाइज़ करें

    बारप्लॉट फंक्शन एक श्रेणीबद्ध चर और एक सतत चर के बीच संबंध स्थापित करता है। डेटा को आयताकार बार के रूप में दर्शाया जाता है जहां बार की लंबाई उस विशिष्ट श्रेणी में डेटा के अनुपात को इंगित करती है।पॉइंट प्लॉट बार प्लॉट के समान हैं लेकिन पूरे बार को दर्शाने के बजाय, डेटा पॉइंट का अनुमानित मान दूसरे अक्