Section Artikel
Optimizers di SciPy
Optimizers adalah sekumpulan prosedur yang ditentukan dalam SciPy yang berfungsi untuk menemukan nilai minimum suatu fungsi, atau akar persamaan.
Fungsi Optimizers
Pada dasarnya, semua algoritma dalam Pembelajaran Mesin tidak lebih dari persamaan kompleks yang perlu diminimalkan dengan bantuan data yang diberikan.
Akar Persamaan
NumPy mampu menemukan akar untuk persamaan polinomial dan linier, tetapi tidak dapat menemukan akar untuk persamaan non linier, seperti ini:
x + cos (x)
Untuk itu kita bisa menggunakan fungsi optimze.root SciPy.
Fungsi ini membutuhkan dua argumen yang diperlukan:
fun – fungsi yang merepresentasikan persamaan.
x0 – tebakan awal untuk root.
Fungsi mengembalikan objek dengan informasi mengenai solusi.
Solusi sebenarnya diberikan di bawah atribut x dari objek yang dikembalikan.
Contoh:
Temukan akar persamaan x + cos (x)
from scipy.optimize import root from math import cos def eqn(x): return x + cos(x) myroot = root(eqn, 0) print(myroot.x)
Catatan: Objek yang dikembalikan memiliki lebih banyak informasi tentang solusi.
Contoh:
Cetak semua informasi tentang solusi (bukan hanya x yang merupakan root)
from scipy.optimize import root from math import cos def eqn(x): return x + cos(x) myroot = root(eqn, 0) print(myroot)
Meminimalkan Fungsi
Suatu fungsi, dalam konteks ini, mewakili suatu kurva, kurva memiliki titik tinggi dan titik rendah.
Poin tinggi disebut maxima.
Titik rendah disebut minimum.
Titik tertinggi dalam keseluruhan kurva disebut maxima global, sedangkan sisanya disebut maxima lokal.
Titik terendah dalam keseluruhan kurva disebut minimum global, sedangkan sisanya disebut minimum lokal.
Menemukan Minima
Kita bisa menggunakan fungsi scipy.optimize.minimize() untuk meminimalkan fungsi tersebut.
Fungsi minimize() mengambil argumen berikut:
fun – fungsi yang merepresentasikan persamaan.
x0 – tebakan awal untuk root.
method – nama metode yang akan digunakan. Nilai-nilai hukum:
‘CG’
‘BFGS’
‘Newton-CG’
‘L-BFGS-B’
‘TNC’
‘COBYLA’
‘SLSQP’
callback – fungsi yang dipanggil setelah setiap iterasi pengoptimalan.
options – kamus yang mendefinisikan parameter ekstra:
{ “disp”: boolean – print detailed description “gtol”: number – the tolerance of the error } |
Contoh:
Minimalkan fungsi x ^ 2 + x + 2 dengan BFGS
from scipy.optimize import minimize def eqn(x): return x**2 + x + 2 mymin = minimize(eqn, 0, method='BFGS') print(mymin)