2013-04-17 7 views
5

से टाइम श्रृंखला पूर्वानुमान एन्कॉग 3 जावा पढ़ा गया है, मैं टाइम सीरीज़ पूर्वानुमान के लिए एक प्रणाली विकसित कर रहा हूं। मैंने जावा के लिए एनकॉग 3 की पुस्तक खरीदी है, लेकिन मुझे सीएसवी फ़ाइल को 3 कॉलम के साथ सबमिट करने और दूसरे कॉलम की भविष्यवाणी करने का प्रयास करने के लिए गर्म जानने की आवश्यकता है।सीएसवी

Date, DeviceConsumption, TotalPower

मैं स्तंभ मैं भविष्यवाणी करने के लिए (कि DeviceConsumption है) निर्दिष्ट एक लोडर में उस फ़ाइल को लोड और से करने की जरूरत है: इस प्रकार सीएसवी परिभाषित किया गया है। तीसरा कॉलम अधिक जानकारी प्रदान करने और पैटर्न बनाने के लिए प्रयोग किया जाता है।

उदाहरण (सूर्यकलंक) की तरह मैं

TemporalMLDataSet result = new TemporalMLDataSet(windowSize,1); 
TemporalDataDescription desc = new TemporalDataDescription(new ActivationSIN(),Type.RAW, false, true); 

result.addDescription(desc); 

देखते हैं लेकिन मैं कहाँ स्तंभ है कि मैं भविष्यवाणी करने के लिए चाहते हैं परिभाषित कर सकते हैं में ??

धन्यवाद।

क्षमा करें, लेकिन मैं अभी भी समझ में नहीं आता:

संपादित 2 मैं कुछ सुधार किए। जैसा कि आपने कहा था, मैं 2 टेम्पोरलडेटा डिस्क्रिप्शन बनाने में सक्षम था। लेकिन क्या मुझे एक ही TemporalMLDataSet में जोड़ना है?

TemporalMLDataSet result = new TemporalMLDataSet(WINDOW_SIZE,1); 
TemporalDataDescription desc = new TemporalDataDescription(
TemporalDataDescription.Type.RAW,true,true); 
    result.addDescription(desc); 
TemporalDataDescription desc2 = new TemporalDataDescription(
TemporalDataDescription.Type.RAW,false,true); 
    result.addDescription(desc2); 

    for(int year = TRAIN_START;year<TRAIN_END;year++) 
    { 
     TemporalPoint point = new TemporalPoint(2); 
     point.setSequence(year); 
     point.setData(0, this.deviceConsumption[year]); 
     point.setData(1, this.TotalPower[year]); 
     result.getPoints().add(point); 

    } 
    result.generate(); 

क्या यह सही है?

EDIT3 पिछला कोड सही था!

उत्तर

2

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

कॉलम इनपुट और/या आउटपुट के रूप में चिह्नित किए जा सकते हैं। इनपुट कॉलम का अनुमान लगाने के लिए उपयोग किया जाता है, आउटपुट कॉलम आप भविष्यवाणी करने की कोशिश कर रहे हैं। इनपुट और आउटपुट दोनों एक कॉलम (और अक्सर होता है) कर सकते हैं। सनस्पॉट उदाहरण के साथ ऐसा ही मामला है, और इस तरह के मामले में उपरोक्त डेटा भी है।

+0

क्षमा करें, लेकिन मुझे अभी भी समझ में नहीं आता है। जैसा कि आपने कहा था, मैं 2 टेम्पोरलडेटा डिस्क्रिप्शन बनाने में सक्षम था। लेकिन क्या मुझे एक ही TemporalMLDataSet में जोड़ना है? – vincenzodentamaro

+1

ठीक है, मैंने इस आइटम के लिए एक एफएक्यू जोड़ा, उदाहरण के साथ पूरा करें। हां, इसके लिए आप दो टीडीडी बनाएंगे और उन्हें सेट में दोनों जोड़ देंगे। यहां उदाहरण में दो इनपुट हैं, जैसे आपके पास है, और केवल इनपुट के लिए उपयोग किया जाता है। http://www.heatonresearch.com/faq/3/1 – JeffHeaton

+0

धन्यवाद जेफ, मैं यहां समाधान पोस्ट करना चाहता हूं। क्या मै वह कर सकता हूं? – vincenzodentamaro