बहुआयामी डेटा को प्रक्षेपित करने के लिए पसंदीदा और कुशल दृष्टिकोण क्या है?


22

बहुआयामी डेटा को प्रक्षेपित करने के लिए पसंदीदा और कुशल दृष्टिकोण क्या है?

जिन चीजों के बारे में मैं चिंतित हूं:

  1. प्रदर्शन और निर्माण के लिए स्मृति, एकल / बैच मूल्यांकन
  2. 1 से 6 तक के आयामों को संभालना
  3. रैखिक या उच्च-क्रम
  4. ग्रेडिएंट प्राप्त करने की क्षमता (यदि रैखिक नहीं है)
  5. नियमित बनाम बिखरे हुए ग्रिड
  6. इंटरपोलिंग फंक्शन के रूप में उपयोग करना, जैसे कि जड़ें खोजना या कम करना
  7. एक्सट्रपलेशन क्षमताओं

क्या इसका कुशल ओपन-सोर्स कार्यान्वयन है?

मेरे पास scipy.interpolate के साथ आंशिक भाग्य था और scikit-learn से।

मैंने छींटे, चेब्शेव पोलीनॉमियल आदि की कोशिश नहीं की।

इस विषय पर मैंने अब तक क्या पाया:

आयताकार ग्रिड पर पायथन 4 डी रैखिक प्रक्षेप

एक्स, वाई और जेड में विभिन्न अंतरालों के साथ नियमित रूप से सैंपल 3 डी डेटा का तेजी से प्रक्षेप

नियमित ग्रिड डेटा का तेजी से प्रक्षेप

व्यावहारिक उपयोग के लिए मल्टीवीरेट बिखरे हुए प्रक्षेप की कौन सी विधि सबसे अच्छी है?


1
आप अपना प्रक्षेप किसलिए चाहते हैं? आपका इनपुट डेटा कैसा है? मुझे नहीं लगता कि आयामीता बहुत समस्या को बदल देती है।
nicoguaro

2
दुर्भाग्यवश, बहुभिन्नरूपी प्रक्षेप उतने कटे नहीं और उतने ही सूखे हुए हैं जितने कि एकतरफा। उदाहरण के लिए, 1 डी में, आप मनमाने ढंग से प्रक्षेप नोड्स चुन सकते हैं (जब तक वे परस्पर भिन्न होते हैं) और हमेशा एक निश्चित डिग्री के एक अद्वितीय इंटरपोलिंग बहुपद प्राप्त करते हैं। पहले से ही 2 डी में, यह सच नहीं है, और आपके पास अपने नोड्स को चुनने के आधार पर एक अच्छी तरह से परिभाषित बहुपद प्रक्षेप समस्या नहीं हो सकती है। इसलिए संक्षेप में, आपको उपयोगी इनपुट प्राप्त करने के लिए हमें अपने डेटा की संरचना के बारे में अधिक जानकारी देनी होगी।
cfh

1
यहाँ बहुभिन्नरूपी बहुपद सन्निकटन पर एक सर्वेक्षण है, अगर आप उस दृष्टिकोण को आगे
बढ़ाना

3
एक विरल (उदाहरण के लिए स्मोलियाक) ग्रिड पर चेबीशेव बहुपद उच्च आयामों के लिए बहुत तेज़ हैं। ग्रिडपॉइंट चेबीशेव बिंदुओं का एक पूर्व निर्धारित उपसमुच्चय है। कुछ कार्यान्वयन: tasmanian.ornl.gov , ians.uni-stuttgart.de/spinterp/about.html , github.com/EconForge/Smolyak
रोनाल्डो कार्पियो

1
आप कई गुना पर Delaunay tessellation की तरह कोशिश कर सकते हैं।
एंग्रीस्टूडेंट -

जवाबों:


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/ (यूनिवर्सिटी ऑफ इलिनोइस-एनसीएसए लाइसेंस ~ = 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

क्रिंगिंग (गॉसियन प्रक्रिया):

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

जनरल जीपीएल लाइसेंसधारी:

https://github.com/rncarpio/delaunay_linterp

तस्मानियाई

अनुकूली स्टोचस्टिक मॉडलिंग और गैर-घुसपैठ दृष्टिकोण के लिए टूलकिट - उच्च आयामी एकीकरण और प्रक्षेप के साथ ही पैरामीटर अंशांकन के लिए एक मजबूत पुस्तकालय है।

तस्मानियन के लिए पायथन बंधन:

https://github.com/rncarpio/py_tsg

https://github.com/sloriot/cgal-bindings (CGAL के कुछ भाग, लाइसेंस प्राप्त GPL / LGPL)


2
मैं जोड़ता हूँ कि सैंडिया से बहुत उत्कृष्ट DAKOTA पैकेज उपरोक्त सभी विधियों को लागू किया गया है और कई और अधिक है, और यह अजगर बाँधने प्रदान करता है। यह उठना और दौड़ना सबसे आसान नहीं हो सकता है, लेकिन यह शीर्ष पायदान है और बहुत सारे विकल्प देता है, और जांचने लायक है।
ऑरेलियस

@ ऑरेलियस क्या आप डकोटा के भीतर प्रक्षेप / सन्निकटन दिनचर्या को इंगित कर सकते हैं? मेरे पास उस पैकेज के साथ अनुभव है लेकिन केवल सिंचाई के लिए सर्फपैक (पहले से रेफ-डी ऊपर) देखा गया है।
डेन्फ्रोमुफा

ठीक है, मैंने इसे पाया - dakota.sandia.gov/sites/default/files/docs/6.0/html-ref/…
denfromufa

@ ऑरेलियस सभी डकोटा सन्निकटन मॉडल सर्फपैक में हैं
डेन्फ्रोमोफा

यह खूनी इक्का है; बहुत बढ़िया!
एस्ट्रिड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.