Как получить даты прогнозов, используя Weka timeseriesForecasting? - PullRequest
0 голосов
/ 22 ноября 2018

Я использую Weka Forecaster для прогнозирования некоторых значений, однако я не понимаю, как получить даты для каждого прогноза, как вы получили бы в Weka GUI.

Я устанавливаю отметку времени следующим образом:

 forecaster.getTSLagMaker().setTimeStampField("date");

Затем я строю и заполняю прогнозиста данными из файла arff, предиктор настроен для прогнозирования 2 значений, что он и делает,И затем я получаю их следующим образом:

List<List<NumericPrediction>> forecast = forecaster.forecast(5, System.out);
        for (int i = 0; i < 5; i++) {
            List<NumericPrediction> predsAtStep = forecast.get(i);
            for (int j = 0; j < 2; j++) {
                System.out.print("Item " + j + ": " + predsAtStep.get(j).predicted() + " ");
            }
            System.out.println("");
        }

Я подумал, что вы могли бы просто ввести дату в качестве одного из полей для прогноза, и это сработало бы, используя forecaster.setFieldsToForecast, это не так.

Есть идеи о том, как я могу получить дату для каждого прогноза?

1 Ответ

0 голосов
/ 29 ноября 2018

Это потому, что «date» - это ваша переменная оси x, а вы не прогнозируете эту ось.Прогноз находится в поле на указанную дату.

Значение даты можно получить (рассчитать) из forecast.getTSLagMaker().getCurrentTimeStampValue() и forecast.getTSLagMaker().getDeltaTime() в зависимости от того, как вы настроили своего прогнозиста, в противном случае посмотрите на API: Weka Javadoc

...