2013-04-17 15 views
5

私は時系列予測のためのシステムを開発しています。 私はEncog3 for Javaを購入しましたが、 CSVファイルを3列で提出し、2列目を予測しようと熱望する必要があります。次のようにCSVが定義されています時系列予測encog 3 javaからの読み込みCSV

DateDeviceConsumptionTotalPower

私はローダーに、私は(それはDeviceConsumptionある)を予測する列を指定するよりも、そのファイルをロードする必要があります。 3番目の列は、より多くの情報を提供し、パターンを作成するために使用されます。 (黒点のような)の例では

私は

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

result.addDescription(desc); 

を参照してくださいしかし、ここで私は私が予想したい列を定義できますか?

ありがとうございます。

申し訳ありませんが、私はまだ理解していない:

EDITは2 私はいくつかの改良を行いました。 あなたが言ったように私は2 TemporalDataDescriptionを作成することができました。 しかし、両方を同じ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を使用する場合は、トレーニングセットに含める各値のTemporalDataDescriptionオブジェクトを作成します。したがって、データセットには2つのTemporalDataDescriptionオブジェクトがあります。 1つはDeviceConsumption用、もう1つはTotalPower用です。最後の2つのブール値によって予測カラムを指定できます。 DeviceConsumptionに&出力を入力し、TotalPowerを入力するだけに設定します。 MLDataSetが実際に認識していないData列。太陽黒点の例がどのように働くか、数値的に増加する値に設定するだけです。

カラムを入力および/または出力としてマークすることができます。入力列は予測するために使用され、出力列は予測しようとしているものです。単一の列は入力と出力の両方が可能です(しばしばです)。これは太陽黒点の例の場合であり、上記のデータの場合もそうである。

+0

申し訳ありませんが、まだ分かりません。 あなたが言ったように私は2 TemporalDataDescriptionを作成することができました。 しかし、両方を同じTemporalMLDataSetに追加することはできますか? – vincenzodentamaro

+1

さて、この項目のFAQを追加しました。はい、これに対して、2つのTDDを作成して、両方をセットに追加するでしょう。ここの例は2つの入力を持っています。あなたがここにあるように、1つは入力のためだけに使用されます。 http://www.heatonresearch.com/faq/3/1 – JeffHeaton

+0

ありがとう、ジェフ、私はここに解決策を掲載したいと思います。それをしてもいいですか? – vincenzodentamaro