org.apache.spark.ml.regression.LinearRegression:拟合、训练和预测

org.apache.spark.ml.regression.LinearRegression: fit, train, and predict

考虑以下摘自 documentation 的 Spark MLlib 代码:

import org.apache.spark.ml.regression.LinearRegression

// Load training data
val training = spark.read.format("libsvm")
  .load("data/mllib/sample_linear_regression_data.txt")

val lr = new LinearRegression()
  .setMaxIter(10)
  .setRegParam(0.3)
  .setElasticNetParam(0.8)

// Fit the model
val lrModel = lr.fit(training)

// Print the coefficients and intercept for linear regression
println(s"Coefficients: ${lrModel.coefficients} Intercept: ${lrModel.intercept}")

// Summarize the model over the training set and print out some metrics
val trainingSummary = lrModel.summary
println(s"numIterations: ${trainingSummary.totalIterations}")
println(s"objectiveHistory: [${trainingSummary.objectiveHistory.mkString(",")}]")
trainingSummary.residuals.show()
println(s"RMSE: ${trainingSummary.rootMeanSquaredError}")
println(s"r2: ${trainingSummary.r2}")

我看到有一个适合的方法,它的工作原理类似于训练。但是我在 API docs.

中找不到预测方法

应该没有预测功能吧?现在,我知道我可以通过计算模型系数的点积和我尝试预测的点并添加模型的截距来进行预测。

但这就是图书馆作者希望人们做的事情吗。

您要找的方法是transform,几乎所有ML模型都有它的一部分。这会收到一个 DataFrame 和一个名为 features.

的列