我目前正在进行一个线性回归项目,需要收集数据,将其拟合到模型上,然后根据测试数据进行预测。
如果我没错的话,简单线性回归使用两个变量X(自变量)和Y(因变量)。我有以下数据集,在其中我认为time
列是X,value
列是Y:
+-----+------+
|value|minute|
+-----+------+
| 5000| 672|
| 6000| 673|
| 7000| 676|
| 8000| 678|
| 9000| 680|
+-----+------+
我不知道的是如何正确地将这个数据集拟合到线性回归模型中。我之前使用过k-means,我所做的是创建一个以向量形式表示的features
列。对于这个数据集,我也做了同样的事情:
VectorAssembler assembler = new VectorAssembler()
.setInputCols(new String[]{"minute", "value"})
.setOutputCol("features");
Dataset<Row> vectorData = assembler.transform(dataset);
然后我将这个内容放入线性回归模型中:
LinearRegression lr = new LinearRegression();
LinearRegressionModel model = lr.fit(vectorData);
这是我遇到困难的地方。如何使用这个模型进行预测?当
minute
等于一个随机的数值,例如700时,我想找到value
的值。我应该怎么做?如何基于随机的X值来找到我的Y值的预测/估计?
编辑:线性回归模型区分因变量和自变量吗?如何区分?
predict()
函数。它说它需要一个Vector
作为参数。为什么?这是否意味着我需要将一个值转换为向量,然后将其传递给此预测函数?因此,如果我有一个表示时间的整数,我需要将其转换为向量才能进行预测吗? - Guillermo Herrera