2010-02-28 15 views
8

मैंने ऐसा करने का एक आसान तरीका तलाशने का एक अच्छा समय बिताया है - आदर्श रूप से, वहां एक जादुई पुस्तकालय मौजूद है जो कहीं भी 3 डी डेटा पॉइंट्स का सेट ले लेगा और सर्वोत्तम फिट लाइन पर 2 अंक वापस करेगा या तो ऑर्थोगोनल रिग्रेशन या कम से कम वर्ग और फिट लाइन की त्रुटि भी वापस कर दें। क्या ऐसी चीज मौजूद है, और यदि हां, तो कहाँ?जावा में 3 डी पॉइंट डेटा के लिए एक 3 डी लाइन फिट करें?

उत्तर

10

यह करना आसान है, लेकिन इसे स्वयं लिखने के लिए आपको एक ईजिनवेल्वर सॉल्वर या एकवचन मूल्य अपघटन की आवश्यकता होगी। कॉलम के रूप में अपने (x-xbar, y-ybar, z-zbar) डेटा का nx3 मैट्रिक्स ए बनाएं। बाद में उन स्तंभों को सहेजें, मैं इसे V0 = [xbar, ybar, zbar] कहूंगा।

अब, eigenvalues ​​और एक की eigenvectors 'की गणना * एक, यानी, 3x3 मैट्रिक्स A पक्षांतरित ए

से गुणा से गठित इस डेटा, उन में से एक आर^3 में एक रेखा पर स्थित हैं तो eigenvalues ​​अन्य दो eigenvalues ​​की तुलना में काफी बड़ा होगा। यदि यह सत्य नहीं है, तो ऑर्थोगोनल रिग्रेशन लाइन का अनुमान नहीं लगाया जाएगा।

ए 'ए' के ​​सबसे बड़े ईजेन्यूवल्यू से जुड़े ईजिनवेक्टर को लें। तो अगर वी इसी आइजन्वेक्टर है, ओर्थोगोनल प्रतिगमन लाइन के रूप में

वी (टी) = V0 + टी * वी

कि लाइन पर किसी भी बिंदु पैरामीटर टी के कुछ मूल्य द्वारा दिया जा सकता है परिभाषित किया गया है।

वैकल्पिक रूप से, एक के एकमात्र मूल्य अपघटन की गणना, और सही विलक्षण वेक्टर जो ए

या तो घटना में से सबसे बड़ी विलक्षण मान से मेल खाता ले, यदि आप डेटा बिंदुओं के लिए त्रुटियों की गणना करना चाहते हैं, इसे प्रश्न में लाइन के लिए ऑर्थोगोनल दूरी के रूप में परिभाषित किया जाएगा।

+0

@ user85109 इस तरह के एक स्पष्ट उत्तर के लिए बधाई – Nic

+0

प्रस्तुत विधि के औपचारिक प्रमाण के लिए, कोई यहां प्रस्तुत लिंक पर एक नज़र डाल सकता है: http://mathhelpforum.com/advanced-statistics/181810-3d-line-best- fit.html – Nic

1

"जावा रैखिक कम से कम वर्ग रिग्रेशन लाइब्रेरी" के लिए Google और आपको कुछ विकल्प मिलना चाहिए। एक Drej है। हालांकि, मैंने इसे स्वयं नहीं इस्तेमाल किया है।

EDIT - मुझे विश्वास नहीं है कि यह सवाल का जवाब है - मुझे नहीं पता कि 3 डी डेटा समर्थित है या नहीं।

1

अगर आप चाल पता यह आसान यह करने के लिए काफी है: http://www.scribd.com/doc/21983425/Least-Squares-Fit

अधिक आयाम का मतलब है अधिक गुणांक, लेकिन वे बहुत आसान में जोड़ने के लिए कर रहे हैं विचारों सब एक ही हैं।।

+1

गलत। कोडिमेंशन क्या मायने रखता है, और जब आपके पास 3 डी में रेखा होती है, तो कोडिमेंशन 2 होता है (2 डी में 1 लाइन के लिए)। इस प्रकार, आमतौर पर कम से कम वर्गों को प्राप्त करने के लिए उपयोग किए जाने वाले सभी तर्क (जैसे आपके लिंक में) पूरी तरह से टूट जाते हैं, मुझे डर है। नीचे वुडचिप्स का जवाब देखें। – AVB