다차원 데이터를 보간하기위한 우선적이고 효율적인 방법은 무엇입니까?


22

다차원 데이터를 보간하기위한 우선적이고 효율적인 방법은 무엇입니까?

내가 걱정하는 것 :

  1. 시공을위한 성능 및 메모리, 단일 / 배치 평가
  2. 1에서 6까지의 치수 취급
  3. 선형 또는 고차
  4. 그라디언트를 얻는 기능 (선형이 아닌 경우)
  5. 일반 대 흩어진 격자
  6. 보간 함수로 사용, 예. 근을 찾거나 최소화하기 위해
  7. 외삽 기능

이것에 대한 효율적인 오픈 소스 구현이 있습니까?

scipy.interpolate와 scikit-learn의 kriging으로 부분 운이있었습니다.

스플라인, Chebyshev 다항식 등을 시도하지 않았습니다.

이 주제에 대해 지금까지 찾은 내용은 다음과 같습니다.

직사각형 그리드의 Python 4D 선형 보간

x, y 및 z의 간격이 다른 정기적으로 샘플링 된 3D 데이터의 빠른 보간

일반 그리드 데이터의 빠른 보간

실제 사용에 가장 적합한 다 변형 산란 보간 방법은 무엇입니까?


1
보간을 위해 무엇을 원하십니까? 입력 데이터는 어떻습니까? 나는 차원이 많은 문제를 변화 시킨다고 생각하지 않습니다.
nicoguaro

2
불행하게도, 다변량 보간은 단 변량만큼 자르고 건조되지 않습니다. 예를 들어, 1D에서는 임의의 보간 노드 (상호 적으로 구별되는 한)를 선택할 수 있으며 항상 어느 정도의 고유 한 보간 다항식을 얻을 수 있습니다. 이미 2D에서 이것은 사실이 아니며 노드 선택 방법에 따라 잘 정의 된 다항식 보간 문제가 없을 수 있습니다. 간단히 말해, 유용한 정보를 얻으려면 데이터 구조에 대한 자세한 정보를 제공해야합니다.
CFH

1
2000 년 "여러 가지 변수 다항식 보간"Gasca 및 사우어 : 당신이 접근 방식을 추구하려는 경우 여기 다 변수 다항식 근사에 대한 조사,의 citeseerx.ist.psu.edu/viewdoc/...
CFH

3
희소 (예 : Smolyak) 격자의 체비 쇼프 다항식은 더 높은 치수에 대해 매우 빠릅니다. 그리드 포인트는 체비 쇼프 포인트의 미리 결정된 부분 집합입니다. 일부 구현 : tasmanian.ornl.gov , ians.uni-stuttgart.de/spinterp/about.html , github.com/EconForge/Smolyak
Ronaldo Carpio

1
매니 폴드에서 들로네 테셀레이션과 같은 것을 시도해 볼 수 있습니다.
EngrStudent-복직 모니카

답변:


14

내 질문의 첫 번째 부분에서는 파이썬 라이브러리를 사용하는 다른 선형 보간 방법의 성능에 대한이 매우 유용한 비교를 발견했습니다.

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

다음은 지금까지 수집 된 방법 목록입니다.

표준 보간, 구조화 된 그리드 :

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/

비정형 (산란) 그리드 :

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 개의 큰 프로젝트 :

https://github.com/sloriot/cgal-bindings(CGAL의 일부, 라이센스가 부여 된 GPL / LGPL)

https://www.earthsystemcog.org/projects/esmp/ (일리노이 대학 NCSA 라이센스 ~ = MIT + BSD-3)

스파 스 그리드 :

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 (가우스 프로세스) :

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

일반 GPL 라이센스 :

https://github.com/rncarpio/delaunay_linterp

태즈 매니아

적응 형 확률 적 모델링 및 비 침입 근사를위한 툴킷은 매개 변수 보정뿐만 아니라 고차원 통합 및 보간을위한 강력한 라이브러리입니다.

태즈 매니아의 파이썬 바인딩 :

https://github.com/rncarpio/py_tsg

https://github.com/sloriot/cgal-bindings(CGAL의 일부, 라이센스가 부여 된 GPL / LGPL)


2
sandia의 매우 우수한 DAKOTA 패키지에는 위의 모든 메소드가 구현되어 있으며 더 많은 것들이 있으며 파이썬 바인딩을 제공한다고 덧붙입니다. 시작하고 실행하는 것이 가장 쉽지는 않지만 최고 수준이며 많은 옵션을 제공하며 체크 아웃 할 가치가 있습니다.
Aurelius

@Aurelius DAKOTA 내의 보간 / 근사 루틴을 가리킬 수 있습니까? 나는 그 패키지에 대한 경험이 있지만 kriging을위한 surfpack (위의 ref-d) 만 발견했습니다.
denfromufa


@Aurelius 모든 다코타 근사 모델은 surfpack에 있습니다
denfromufa

이것은 피의 에이스입니다. 잘 했어!
Astrid
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.