5

時系列予測のシステムを開発しています。Book of Encog3 for Java を購入しましたが、3 列の CSV ファイルを送信して 2 列目の予測を試みるには、よく知っておく必要があります。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前のコードは正しかったです!

4

1 に答える 1

2

TemporalMLDataSet を使用する場合、トレーニング セットに必要な値ごとに TemporalDataDescription オブジェクトを作成します。したがって、データ セットには 2 つの TemporalDataDescription オブジェクトがあります。1 つは DeviceConsumption 用で、もう 1 つは TotalPower 用です。最後の 2 つのブール値により、予測される列を指定できます。DeviceConsumption を入力と出力に設定し、TotalPower を入力のみに設定します。MLDataSet が実際に認識していないデータ列は、太陽黒点の例がどのように機能するかなど、数値的に増加する値に設定する必要があるだけです。

列は、入力および/または出力としてマークできます。入力列は予測に使用され、出力列は予測しようとしているものです。1 つの列で、入力と出力の両方を行うことができます (多くの場合そうです)。太陽黒点の例がそうで、上のデータもそうです。

于 2013-04-18T01:24:24.603 に答える