gpt4 book ai didi

scala - 如何进行时间序列简单预测?

转载 作者:行者123 更新时间:2023-12-02 12:47:44 26 4
gpt4 key购买 nike

我有一个时间序列单变量数据。所以只有时间戳和值。现在我想推断(预测)下一天/下个月/下一年的这个值。我知道有诸如 Box-jenkins (ARIMA) 等方法。

Spark有线性回归,我尝试了一下,但没有得到满意的结果。有人尝试过 Spark 中的时间序列简单预测吗?可以分享一下他们的实现方法吗?

PS:我在用户邮件列表中查看了此问题,几乎所有与此问题相关的问题都没有得到解答。

最佳答案

是的,我已经在 Spark 中应用了 ARIMA 来处理单变量时间序列。

public static void main(String args[])
{
System.setProperty("hadoop.home.dir", "C:/winutils");

SparkSession spark = SparkSession
.builder().master("local")
.appName("Spark-TS Example")
.config("spark.sql.warehouse.dir", "file:///C:/Users/abc/Downloads/Spark/sparkdemo/spark-warehouse/")
.getOrCreate();

Dataset<String> lines = spark.read().textFile("C:/Users/abc/Downloads/thunderbird/Time series/trainingvector_arima.csv");

Dataset<Double> doubleDataset = lines.map(line>Double.parseDouble(line.toString()),
Encoders.DOUBLE());

List<Double> doubleList = doubleDataset.collectAsList();
//scala.collection.immutable.List<Object> scalaList = new

Double[] doubleArray = new Double[doubleList.size()];
doubleArray = doubleList.toArray(doubleArray);

double[] values = new double[doubleArray.length];
for(int i = 0; i< doubleArray.length; i++)
{
values[i] = doubleArray[i];
}

Vector tsvector = Vectors.dense(values);

System.out.println("Ts vector:" + tsvector.toString());

//ARIMAModel arimamodel = ARIMA.fitModel(1, 0, 1, tsvector, true, "css-bobyqa", null);
ARIMAModel arimamodel = ARIMA.autoFit(tsvector, 1, 1, 1);

Vector forcst = arimamodel.forecast(tsvector, 10);

System.out.println("forecast of next 10 observations: " + forcst);
}

这段代码对我有用。您想要预测的任何值都将作为输入数据传递。

关于scala - 如何进行时间序列简单预测?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28248916/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com