Apa itu Interpolasi?
Interpolasi adalah metode untuk menghasilkan titik di antara titik-titik tertentu.
Misalnya: untuk poin 1 dan 2, kita dapat melakukan interpolasi dan menemukan poin 1.33 dan 1.66.
Interpolasi memiliki banyak kegunaan, dalam Machine Learning kita sering menangani data yang hilang dalam sebuah dataset, interpolasi sering digunakan untuk menggantikan nilai-nilai tersebut.
Metode pengisian nilai ini disebut imputasi.
Selain imputasi, interpolasi sering digunakan di mana kita perlu memperhalus titik-titik diskrit dalam sebuah dataset.
Section Artikel
SciPy memberi kita modul bernama scipy.interpolate yang memiliki banyak fungsi untuk menangani interpolasi:
Fungsi interp1d() digunakan untuk menginterpolasi distribusi dengan 1 variabel.
Dibutuhkan x dan y poin dan mengembalikan fungsi yang dapat dipanggil yang bisa dipanggil dengan x baru dan mengembalikan y yang sesuai.
Contoh:
Tentukan nilai interpolasi xs dan ys yang diberikan dari 2.1, 2.2 … hingga 2.9
from scipy.interpolate import interp1d import numpy as np xs = np.arange(10) ys = 2*xs + 1 interp_func = interp1d(xs, ys) newarr = interp_func(np.arange(2.1, 3, 0.1)) print(newarr)
Catatan: bahwa xs baru harus berada dalam rentang yang sama dengan xs lama, artinya kita tidak dapat memanggil interp_func() dengan nilai lebih tinggi dari 10, atau kurang dari 0.
Dalam interpolasi 1D, titik-titik dipasang pada kurva tunggal sedangkan dalam interpolasi Spline, titik-titik dipasang pada fungsi pemenggalan yang ditentukan dengan polinomial yang disebut splines.
Fungsi UnivariateSpline() mengambil xs dan ys dan menghasilkan fungsi yang dapat dipanggil dengan xs baru.
Fungsi Piecewise : Fungsi yang memiliki definisi berbeda untuk rentang berbeda.
Contoh:
Temukan interpolasi spline univariat untuk 2.1, 2.2 … 2.9 pada titik non linier berikut
from scipy.interpolate import UnivariateSpline import numpy as np xs = np.arange(10) ys = xs**2 + np.sin(xs) + 1 interp_func = UnivariateSpline(xs, ys) newarr = interp_func(np.arange(2.1, 3, 0.1)) print(newarr)
Fungsi basis radial adalah fungsi yang didefinisikan sesuai dengan titik referensi tetap.
Fungsi Rbf() juga menggunakan xs dan ys sebagai argumen dan menghasilkan fungsi yang dapat dipanggil dengan xs baru.
Contoh:
Interpolasi xs dan ys berikut menggunakan rbf dan temukan nilai untuk 2.1, 2.2 … 2.9
from scipy.interpolate import Rbf import numpy as np xs = np.arange(10) ys = xs**2 + np.sin(xs) + 1 interp_func = Rbf(xs, ys) newarr = interp_func(np.arange(2.1, 3, 0.1)) print(newarr)