我目前正在从事一个线性回归项目,我需要收集数据,将其拟合到模型上,然后根据测试数据进行预测。

如果我是对的,简单线性回归适用于两个变量,X(独立)和 Y(相关)。我有以下数据集,我认为 time 列是 X,value 列是 Y:

+-----+------+
|value|minute|
+-----+------+
| 5000|   672|
| 6000|   673|
| 7000|   676|
| 8000|   678|
| 9000|   680|
+-----+------+

我不知道如何将这个数据集正确地拟合到线性回归模型中。我之前使用过 k-means,我用它做的是以 vector 形式创建一个 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);

这是我卡住的部分。如何使用此模型进行预测?当 value 等于随机分钟时,我想找到 minute 的值,例如。 700。

我怎样才能做到这一点?如何根据随机 X 值找到对 Y 值的预测/估计?

编辑:线性回归模型是否区分因变量和自变量?如何?

最佳答案

我只从 Spark MLlib 开始,尤其是线性回归,所以我只能讨论技术问题(而不是为什么在机器学习中会这样工作)。



模型是转换器(如 VectorAssembler ),它提供了一个非常简单的与 transform 操作符的接口(interface)。



这就是您传递数据集并返回另一个带有 prediction 列的数据集的地方。顺便说一下,这是训练和做出预测的一般方法。

以下内容将为您提供输入数据集中特征的预测。

val dataset = ...
model.transform(dataset).select("prediction").show

我强烈建议将 Spark MLlib 的 ML Pipeline 功能用于所谓的 预测分析工作流 ,这使得将原始数据转换为 Estimator 格式的过程更加愉快。参见 Machine Learning Library (MLlib) Guide ,尤其是 ML Pipelines

关于java - 如何使用线性回归模型进行预测?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44784566/

10-16 01:19