Apa pendekatan yang disukai dan efisien untuk menginterpolasi data multidimensi?
Hal yang saya khawatirkan:
- kinerja dan memori untuk konstruksi, evaluasi tunggal / batch
- menangani dimensi dari 1 hingga 6
- linier atau tingkat tinggi
- kemampuan untuk mendapatkan gradien (jika tidak linier)
- grid biasa vs tersebar
- menggunakan sebagai Fungsi Interpolasi, misalnya untuk menemukan akar atau untuk meminimalkan
- kemampuan ekstrapolasi
Apakah ada implementasi open source yang efisien untuk hal ini?
Saya memiliki sedikit keberuntungan dengan scipy.interpolasi dan kriging dari scikit-belajar
Saya tidak mencoba splines, polinomial Chebyshev, dll.
Inilah yang saya temukan sejauh ini tentang topik ini:
Python 4D interpolasi linier pada kotak persegi panjang
Interpolasi cepat dari data 3D sampel biasa dengan interval berbeda dalam x, y, dan z
Interpolasi cepat data grid biasa
Metode interpolasi tersebar multivarian apa yang terbaik untuk penggunaan praktis?
Jawaban:
Untuk bagian pertama dari pertanyaan saya, saya menemukan perbandingan yang sangat berguna ini untuk kinerja metode interpolasi linier yang berbeda menggunakan pustaka python:
http://nbviewer.ipython.org/github/pierre-haessig/stodynprog/blob/master/stodynprog/linear_interp_benchmark.ipynb
Di bawah ini adalah daftar metode yang dikumpulkan sejauh ini.
Interpolasi standar, kisi terstruktur:
http://docs.scipy.org/doc/scipy-dev/reference/generated/scipy.ndimage.interpolation.map_coordinates.html
http://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.RegularGridInterpolator.html
https://github.com/rncarpio/linterp/
Kisi tidak terstruktur (tersebar):
http://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.LinearNDInterpolator.html#scipy.interpolate.LinearNDInterpolator
http://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.griddata.html
http://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.Rbf.html
2 proyek besar yang termasuk interpolasi:
https://github.com/sloriot/cgal-bindings (bagian dari CGAL, GPL berlisensi / LGPL)
https://www.earthsystemcog.org/projects/esmp/ (Lisensi University of Illinois-NCSA ~ = MIT + BSD-3)
Kisi jarang:
https://github.com/EconForge/Smolyak
https://github.com/EconForge/dolo/tree/master/dolo/numeric/interpolation
http://people.sc.fsu.edu/~jburkardt/py_src/sparse_grid/sparse_grid.html
https://aerodynamics.lr.tudelft.nl/~rdwight/work_sparse.html
https://pypi.python.org/pypi/puq
Kriging (Proses Gaussian):
http://scikit-learn.org/stable/modules/generated/sklearn.gaussian_process.GaussianProcess.html
https://github.com/SheffieldML/GPy
https://software.sandia.gov/svn/surfpack/trunk/
http://openmdao.org/dev_docs/_modules/openmdao/lib/surrogatemodels/kriging_surrogate.html
General GPL berlisensi:
https://github.com/rncarpio/delaunay_linterp
Tasmania
Toolkit untuk Pemodelan Stokastik Adaptif dan Pendekatan Non-Intrusif - adalah pustaka yang tangguh untuk integrasi dan interpolasi dimensi tinggi serta kalibrasi parameter.
Mengikat Python untuk Tasmania:
https://github.com/rncarpio/py_tsg
https://github.com/sloriot/cgal-bindings (bagian dari CGAL, GPL berlisensi / LGPL)
sumber