SciPy optimizatorlari


ULASHISH

SciPy’dagi optimizatorlar

Optimizatorlar — SciPy’da aniqlangan protseduralar to‘plami bo‘lib, ular funksiyaning minimal qiymatini yoki tenglamaning ildizini topadi.


Funksiyalarni optimallashtirish

Aslini olganda, Machine Learning’dagi barcha algoritmlar berilgan ma’lumotlar yordamida minimallashtirilishi kerak bo‘lgan murakkab tenglamadan boshqa narsa emas.


Tenglama ildizlari

NumPy polinomlar va chiziqli tenglamalarning ildizlarini topa oladi, biroq quyidagiga o‘xshash nochiziqli tenglamalarning ildizlarini topa olmaydi:

x + cos(x)

Buning uchun SciPy’ning optimize.root funksiyasidan foydalanishingiz mumkin.

Bu funksiya ikkita majburiy argument qabul qiladi:

fun - tenglamani ifodalovchi funksiya.

x0 - ildiz uchun boshlang‘ich taxmin.

Funksiya yechim haqidagi ma’lumotlarni o‘z ichiga olgan obyektni qaytaradi.

Haqiqiy yechim qaytarilgan obyektning x atributida beriladi:

Misol

x + cos(x) tenglamasining ildizini toping:

from scipy.optimize import root from numpy import cos def eqn(x):   return x + cos(x) myroot = root(eqn, 0) print(myroot.x)
O‘zingiz sinab ko‘ring »

Eslatma: Qaytarilgan obyekt yechim haqida ancha ko‘proq ma’lumotga ega.

Misol

Yechim haqidagi barcha ma’lumotlarni chiqaring (faqat ildizni bildiruvchi x qiymatini emas)

print(myroot)
O‘zingiz sinab ko‘ring »


Funksiyani minimallashtirish

Bu kontekstda funksiya egri chiziqni ifodalaydi, egri chiziqlarning esa yuqori nuqtalari va quyi nuqtalari bo‘ladi.

Yuqori nuqtalar maksimumlar deb ataladi.

Quyi nuqtalar minimumlar deb ataladi.

Butun egri chiziqdagi eng yuqori nuqta global maksimum deb ataladi, qolganlari esa lokal maksimumlar deyiladi.

Butun egri chiziqdagi eng quyi nuqta global minimum deb ataladi, qolganlari esa lokal minimumlar deyiladi.


Minimumlarni topish

Funksiyani minimallashtirish uchun scipy.optimize.minimize() funksiyasidan foydalanishimiz mumkin.

minimize() funksiyasi quyidagi argumentlarni qabul qiladi:

fun - tenglamani ifodalovchi funksiya.

x0 - ildiz uchun boshlang‘ich taxmin.

method - foydalaniladigan metod nomi. Ruxsat etilgan qiymatlar:
'CG'
'BFGS'
'Newton-CG'
'L-BFGS-B'
'TNC'
'COBYLA'
'SLSQP'

callback - optimallashtirishning har bir iteratsiyasidan keyin chaqiriladigan funksiya.

options - qo‘shimcha parametrlarni belgilovchi dictionary:

{
     "disp": boolean - print detailed description
     "gtol": number - the tolerance of the error
  }

Misol

x^2 + x + 2 funksiyasini BFGS yordamida minimallashtiring:

from scipy.optimize import minimize def eqn(x):   return x**2 + x + 2 mymin = minimize(eqn, 0, method='BFGS') print(mymin)
O‘zingiz sinab ko‘ring »


W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!