wis*_*ame 2 scala apache-spark apache-spark-mllib
我有一个使用LinearRegression处理的DataFrame.如果我直接进行,如下所示,我可以显示模型的详细信息:
val lr = new LinearRegression()
val lrModel = lr.fit(df)
lrModel: org.apache.spark.ml.regression.LinearRegressionModel = linReg_b22a7bb88404
println(s"Coefficients: ${lrModel.coefficients} Intercept: ${lrModel.intercept}")
Coefficients: [0.9705748115939526] Intercept: 0.31041486689532866
Run Code Online (Sandbox Code Playgroud)
但是,如果我在管道中使用它(如下面的简化示例),
val pipeline = new Pipeline().setStages(Array(lr))
val lrModel = pipeline.fit(df)
Run Code Online (Sandbox Code Playgroud)
然后我收到以下错误.
scala> lrModel
res9: org.apache.spark.ml.PipelineModel = pipeline_99ca9cba48f8
scala> println(s"Coefficients: ${lrModel.coefficients} Intercept: ${lrModel.intercept}")
<console>:68: error: value coefficients is not a member of org.apache.spark.ml.PipelineModel
println(s"Coefficients: ${lrModel.coefficients} Intercept: ${lrModel.intercept}")
^
<console>:68: error: value intercept is not a member of org.apache.spark.ml.PipelineModel
println(s"Coefficients: ${lrModel.coefficients} Intercept: ${lrModel.intercept}")
Run Code Online (Sandbox Code Playgroud)
我理解它意味着什么(显然我有一个不同的类,因为管道),但不知道如何到达真正的底层模型.
LinearRegressionModel
应该stages
在与其对应的索引完全相同的内部LinearRegression
.
import org.apache.spark.ml.regressio??n.LinearRegressionMo??del
lrModel.stages(0).asInstanceOf[LinearRegressionMo??del]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1317 次 |
最近记录: |