Çok boyutlu verilerin enterpolasyonu için tercih edilen ve etkili yaklaşım nedir?


22

Çok boyutlu verilerin enterpolasyonu için tercih edilen ve etkili yaklaşım nedir?

Endişelendiğim şeyler:

  1. yapı için performans ve hafıza, tek / parti değerlendirme
  2. 1'den 6'ya kadar olan taşıma ebatları
  3. doğrusal veya daha yüksek dereceli
  4. gradyan alma yeteneği (doğrusal değilse)
  5. normal vs dağınık ızgara
  6. Enterpolasyon Fonksiyonu olarak kullanılması, örneğin kökleri bulmak veya en aza indirmek için
  7. dış değer bulma yetenekleri

Bunun etkin bir açık kaynak uygulaması var mı?

Scipy.interpolate ve scikit-learning'den kriging ile ilgili kısmi şansım oldu.

Spline, Chebyshev polinomları vs. denemedim.

İşte bu konuda şu ana kadar ne buldum:

Dikdörtgen bir ızgarada Python 4D doğrusal enterpolasyon

Düzenli olarak örneklenmiş 3B verilerin x, y ve z cinsinden farklı aralıklarla hızlı enterpolasyonu

Düzenli şebeke verilerinin hızlı enterpolasyonu

Pratik kullanım için en iyi çok değişkenli saçılmış enterpolasyon yöntemi nedir?


1
Enterpolasyonunu ne için istiyorsun? Giriş verileriniz nasıl? Boyutluluğun sorunu çok fazla değiştirdiğini sanmıyorum.
nicoguaro

2
Ne yazık ki, çok değişkenli enterpolasyon, tek değişkenli kadar kesilmiş ve kurutulmuş değildir. Örneğin, 1D'de, isteğe bağlı enterpolasyon düğümlerini (karşılıklı olarak ayrı oldukları sürece) seçebilir ve her zaman belirli bir dereceye kadar benzersiz enterpolasyon polinomu elde edebilirsiniz. Zaten 2D'de bu doğru değildir ve düğümlerinizi nasıl seçtiğinize bağlı olarak iyi tanımlanmış bir polinom interpolasyon probleminiz olmayabilir. Kısacası, yararlı girdiler elde etmek için bize verilerinizin yapısı hakkında daha fazla bilgi vermelisiniz.
cfh

1
2000 "birkaç değişkenlerde Polinom interpolasyon" GASCA & Sauer,: Bu yaklaşımı devam etmek istiyorsan Burada çok değişkenli polinom yaklaştırma üzerine bir araştırma, var citeseerx.ist.psu.edu/viewdoc/...
cfh

3
Seyrek (örneğin Smolyak) ızgaradaki Chebyshev polinomları daha yüksek boyutlar için çok hızlıdır. Izgara noktaları, Chebyshev noktalarının önceden belirlenmiş bir alt kümesidir. Bazı uygulamalar: tasmanian.ornl.gov , ians.uni-stuttgart.de/spinterp/about.html , github.com/EconForge/Smolyak
Ronaldo Carpio

1
Manifoldda Delaunay mozaikleme gibi bir şey deneyebilirsiniz.
EngrStudent - Monica

Yanıtlar:


14

Sorumun ilk bölümünde, python kütüphanelerini kullanarak farklı doğrusal enterpolasyon yöntemlerinin performansı için bu çok faydalı karşılaştırmayı buldum:

http://nbviewer.ipython.org/github/pierre-haessig/stodynprog/blob/master/stodynprog/linear_interp_benchmark.ipynb

Aşağıda şu ana kadar toplanan yöntemlerin listesi bulunmaktadır.

Standart enterpolasyon, yapısal ızgara:

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/

Yapılandırılmamış (dağınık) ızgara:

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

İnterpolasyon içeren 2 büyük proje:

https://github.com/sloriot/cgal-bindings (CGAL’nin parçaları, lisanslı GPL / LGPL)

https://www.earthsystemcog.org/projects/esmp/ (Illinois-NCSA Lisans Üniversitesi ~ = MIT + BSD-3)

Seyrek ızgaralar:

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 (Gauss Süreci):

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

Genel GPL lisanslı:

https://github.com/rncarpio/delaunay_linterp

Tazmanya

Uyarlanabilir Stokastik Modelleme ve İzinsiz Giriş Yaklaşımı için Araç Kiti - parametre kalibrasyonunun yanı sıra yüksek boyutlu entegrasyon ve enterpolasyon için sağlam bir kütüphanedir.

Tazmanya için Python bağlama:

https://github.com/rncarpio/py_tsg

https://github.com/sloriot/cgal-bindings (CGAL’nin parçaları, lisanslı GPL / LGPL)


2
Sandia'nın sunduğu mükemmel DAKOTA paketinin yukarıdaki yöntemlerin hepsine ve daha fazlasına sahip olduğunu ve piton bağları sağladığını ekleyeceğim. Kalkması ve koşması en kolay olmayabilir, ancak en üst seviyedir ve birçok seçenek sunar ve denenmeye değer.
Aurelius

@ Aurelius, lütfen DAKOTA içindeki enterpolasyon / yaklaşım rutinlerine işaret edebilir misiniz? Bu paketle ilgili deneyimim var ancak yalnızca gezinme için sörf paketini (yukarıda ref-d yukarıda) farkettim.
denfromufa


@Aurelius tüm dakota yaklaşım modelleri sörf paketinde
denfromufa

Bu kanlı as; aferin!
Astrid
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.