Cách tiếp cận ưa thích và hiệu quả để nội suy dữ liệu đa chiều là gì?


22

Cách tiếp cận ưa thích và hiệu quả để nội suy dữ liệu đa chiều là gì?

Điều tôi lo lắng:

  1. hiệu suất và bộ nhớ cho xây dựng, đánh giá đơn / đợt
  2. xử lý kích thước từ 1 đến 6
  3. tuyến tính hoặc cao hơn
  4. khả năng thu được độ dốc (nếu không tuyến tính)
  5. lưới thường xuyên vs phân tán
  6. sử dụng như Hàm nội suy, ví dụ để tìm gốc hoặc để giảm thiểu
  7. khả năng ngoại suy

Có thực hiện mã nguồn mở hiệu quả này không?

Tôi đã có một phần may mắn với scipy.interpolate và giết chết từ scikit-learn.

Tôi đã không thử splines, đa thức Ch Quashev, v.v.

Đây là những gì tôi tìm thấy cho đến nay về chủ đề này:

Nội suy tuyến tính Python 4D trên lưới hình chữ nhật

Nội suy nhanh dữ liệu 3D được lấy mẫu thường xuyên với các khoảng khác nhau theo x, y và z

Nội suy nhanh dữ liệu lưới thông thường

Phương pháp nội suy phân tán đa biến nào là tốt nhất cho sử dụng thực tế?


1
Bạn muốn nội suy của bạn để làm gì? Dữ liệu đầu vào của bạn như thế nào? Tôi không nghĩ rằng chiều hướng thay đổi rất nhiều vấn đề.
nicoguaro

2
Thật không may, phép nội suy đa biến không bị cắt và sấy khô như đơn biến. Chẳng hạn, trong 1D, bạn có thể chọn các nút nội suy tùy ý (miễn là chúng khác biệt nhau) và luôn nhận được một đa thức nội suy duy nhất ở một mức độ nhất định. Đã ở dạng 2D, điều này không đúng và bạn có thể không gặp vấn đề nội suy đa thức được xác định rõ tùy thuộc vào cách bạn chọn các nút. Vì vậy, trong ngắn hạn, bạn phải cung cấp cho chúng tôi thêm thông tin về cấu trúc dữ liệu của bạn để có được đầu vào hữu ích.
cfh

1
Đây là một khảo sát về xấp xỉ đa thức đa biến, nếu bạn muốn theo đuổi cách tiếp cận đó: Gasca & Sauer, "Nội suy đa thức trong một số biến", 2000 citeseerx.ist.psu.edu/viewdoc/ tựa
cfh

3
Đa thức Ch Quashev trên một lưới thưa thớt (ví dụ Smolyak) rất nhanh cho kích thước cao hơn. Các điểm lưới là một tập hợp con được xác định trước của các điểm Ch Quashev. Một số triển khai: tasmanian.ornl.gov , ians.uni-stuttgart.de/spinterp/about.html , github.com/EconForge/Smolyak
Ronaldo Carpio

1
Bạn có thể thử một cái gì đó như Delaunay tessname trên đa tạp.
EngrStudent - Phục hồi Monica

Câu trả lời:


14

Đối với phần đầu tiên của câu hỏi của tôi, tôi thấy so sánh rất hữu ích này cho hiệu suất của các phương pháp nội suy tuyến tính khác nhau bằng cách sử dụng các thư viện python:

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

Dưới đây là danh sách các phương pháp được thu thập cho đến nay.

Nội suy độc lập, lưới có cấu trúc:

http://docs.scipy.org/doc/scipy-dev/reference/generated/scipy.ndimage.interpolation.map_coordins.html

http://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.RegularGridInterpolator.html

https://github.com/rncarpio/linterp/

Lưới không cấu trúc (phân tán):

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 dự án lớn bao gồm nội suy:

https://github.com/sloriot/cgal-bindings (các bộ phận của CGAL, GPL / LGPL được cấp phép)

https://www.earthsystemcog.org/projects/esmp/ (Giấy phép của Đại học Illinois-NCSA ~ = MIT + BSD-3)

Lưới thưa thớt:

https://github.com/EconForge/Smolyak

https://github.com/EconForge/dolo/tree/master/dolo/numeric/interpolation

http://people.sc.fsu.edu/~jburkardt/py_src/spude_grid/spzzy_grid.html

https://aerodynamics.lr.tudelft.nl/~rdwight/work_spude.html

https://pypi.python.org/pypi/puq

Kriging (Quy trình Gaussian):

http://scikit-learn.org/urdy/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/surrogHRodels/kriging_surrogate.html

GPL chung được cấp phép:

https://github.com/rncarpio/delaunay_linterp

Tasmania

Bộ công cụ cho mô hình hóa ngẫu nhiên thích nghi và xấp xỉ không xâm nhập - là một thư viện mạnh mẽ để tích hợp và nội suy chiều cao cũng như hiệu chuẩn tham số.

Liên kết Python cho Tasmanian:

https://github.com/rncarpio/py_tsg

https://github.com/sloriot/cgal-bindings (các bộ phận của CGAL, GPL / LGPL được cấp phép)


2
Tôi sẽ nói thêm rằng gói DAKOTA rất tuyệt vời từ sandia có tất cả các phương thức trên được triển khai và nhiều phương thức khác, và nó cung cấp các ràng buộc python. Nó có thể không phải là dễ dàng nhất để đứng dậy và chạy, nhưng nó là đỉnh cao và cung cấp rất nhiều tùy chọn, và đáng để kiểm tra.
Aurelius

@Aurelius bạn có thể vui lòng chỉ vào các thói quen nội suy / xấp xỉ trong DAKOTA không? Tôi có kinh nghiệm với gói đó nhưng chỉ nhận thấy Surfpack (đã được giới thiệu ở trên) để tìm kiếm.
denfromufa


@Aurelius tất cả các mô hình xấp xỉ dakota đều có trong Surfpack
denfromufa

Đây là ace đẫm máu; làm tốt!
Astrid
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.