2011-05-25 15 views
8

क्या रूबी लाइब्रेरी है जो मुझे डेटा के सेट के रैखिक या गैर-रैखिक कम से कम वर्ग अनुमान लगाने की अनुमति देती है।रैखिक या गैरलाइनर स्क्वायर स्क्वायर अनुमान लगाने के लिए रूबी लाइब्रेरी?

मैं करना चाहते हैं क्या है निम्नलिखित:

  • [एक्स, वाई] डेटा बिंदुओं की एक श्रृंखला
  • एक रेखीय या कि डेटा के खिलाफ गैर रेखीय कम से कम वर्गों सन्निकटन उत्पन्न देखते हुए
  • पुस्तकालय को यह पता लगाने की ज़रूरत नहीं है कि क्या इसे रैखिक या गैर रैखिक अनुमान लगाने की आवश्यकता है। पुस्तकालय के फोन करने वाले को पता होना चाहिए प्रतिगमन वे किस प्रकार की जरूरत है

मैं कुछ C/C++/जावा पुस्तकालय बंदरगाह के लिए प्रयास करने के लिए इस कार्यक्षमता तो मैं वहाँ आशा करती हूं कि प्राप्त करने के लिए नहीं करना चाहते हैं कुछ मौजूदा है रुबी lib जो मैं उपयोग कर सकते हैं।

+0

क्या आपने http://stackoverflow.com/questions/703717/anything-like-scipy-in-ruby और http://stackoverflow.com/questions/5416655/ruby-mathematic-gem और http://stackoverflow.com/questions/4775013/scientific-programming-with-ruby? –

+0

मैंने किया और मैंने उन पुस्तकालयों के माध्यम से पढ़ा और केवल लिनलग लाइब्रेरी का तात्पर्य है कि यह लगभग कम से कम वर्ग कर सकता है लेकिन जब मैंने स्रोत के माध्यम से खोला तो मुझे कार्यान्वयन नहीं मिला। –

+0

आपके प्रश्न में उल्लेख करना एक अच्छा विचार हो सकता है। –

उत्तर

5

मैंने कुछ रिग्रेशन के लिए this snippet का उपयोग किया। पहला पैरामीटर एक्स कोऑर्डिनेट युक्त एक सरणी है, दूसरा समन्वय जिसमें वाई निर्देशांक होते हैं और अंतिम वह बहुपद की डिग्री है जिसे आप ढूंढ रहे हैं। सुनिश्चित नहीं है कि यह वही है जो आप खोज रहे हैं, लेकिन उम्मीद है कि यह मदद करता है।

7

'आंकड़े नमूना' मणि का उपयोग करने का प्रयास करें। आप नीचे दिए गए उदाहरण का उपयोग करके लॉगरिदमिक, घातीय, शक्ति या किसी अन्य परिवर्तन को निष्पादित कर सकते हैं। आशा है कि ये आपकी मदद करेगा।

require 'statsample' 

# Independent Variable 
x_data = [Math.exp(1), Math.exp(2), Math.exp(3), Math.exp(4), Math.exp(5)] 

# Dependent Variable 
y_data = [3, 5, 7, 9, 11] 

# Logarithmic Transformation of X data 
# Math.log in Ruby has the base of Euler's number 'e' ~= '2.71828', 
# instead of the base '10'. Just a note. 
log_x_data = x_data.map { |x| Math.log(x) } 

# Linear Regression using the Logarithmic Transformation 
x_vector=log_x_data.to_vector(:scale) 
y_vector=y_data.to_vector(:scale) 
ds={'x'=>x_vector,'y'=>y_vector}.to_dataset 
mlr=Statsample::Regression.multiple(ds,'y') 
mlr.summary 

# Provides the value of the y-intercept 
#p mlr.constant 

# Lists the coefficients of each casual variable. In this case, we have only one--'x'. 
#p mlr.coeffs 

# The regression output produces the line y = 1 + 2*x, but 
# considering that we transformed x earlier, it really produces 
# y = 1 + 2*ln(x). 
0

मैं गैर रेखीय कम से कम वर्गों न्यूनीकरण, http://apps.jcns.fz-juelich.de/lmfit के लिए एक सी पुस्तकालय को बनाए रखने कर रहा हूँ, कि रूबी के लिए बड़ा घूँट फाइलों के साथ आता है।

संबंधित मुद्दे