我已经训练了多元回归模型,现在我想用它来预测。
通过阅读文档,我了解到输入是一个带标签的向量,输出是一个具有tuple[inputvalue,predictvalue]的数据集,对吗?
创建标记向量:
val mapped = data.map {x => new org.apache.flink.ml.common.LabeledVector (x._4, org.apache.flink.ml.math.DenseVector(x._1,x._2,x._3)) }
//Print
mapped: org.apache.flink.api.scala.DataSet[org.apache.flink.ml.common.LabeledVector] = org.apache.flink.api.scala.DataSet@7d4fefdc
LabeledVector(6.7, DenseVector(33.0, -52.26, 28.3))
LabeledVector(5.8, DenseVector(36.0, 45.53, 150.93))
.....
根据我的模型创建和训练,我预测:
// Calculate the predictions for the test data
val predictions = mlr.predict(mapped)
我有个错误:
java.lang.RuntimeException: There is no PredictOperation defined for org.apache.flink.ml.regression.MultipleLinearRegression which takes a DataSet[org.apache.flink.ml.common.LabeledVector] as input.
但你可以在这里看到,官方文件说,它存在。
谢谢你的帮助!:)
1条答案
按热度按时间lf5gs5x21#
预测
LabeledVectors
已随此提交一起删除。不幸的是,flink文档没有更新。我已经创建了一个问题来更新文档。如果你想预测
LabeledVectors
,那你就得自己写了PredictOperation
它支持各自的类型。