【发布时间】:2018-12-28 14:59:14
【问题描述】:
我正在尝试使用 GeneralizedLinearRegression 计算 pValue 并获得以下异常。
val assembler = new VectorAssembler()
.setInputCols(final_columns)
.setOutputCol("Feature")
val glr = new GeneralizedLinearRegression()
.setFamily("binomial")
.setLink("logit")
.setMaxIter(1)
.setRegParam(0.0)
.setFeaturesCol("Feature")
.setLabelCol("LM_2")
//.setSolver("auto")
val pipeline = new Pipeline().setStages(Array(assembler,glr))
val lrModel_general = pipeline.fit(indexedDF)
val sum = lrModel_general.stages.last.asInstanceOf[GeneralizedLinearRegressionModel].summary.pValues
Exception in thread "main" java.lang.UnsupportedOperationException: No p-value available for this GeneralizedLinearRegressionModel
at org.apache.spark.ml.regression.GeneralizedLinearRegressionTrainingSummary.pValues$lzycompute(GeneralizedLinearRegression.scala:1480)
at org.apache.spark.ml.regression.GeneralizedLinearRegressionTrainingSummary.pValues(GeneralizedLinearRegression.scala:1468)
at com.cvs.scala.ml.model.LR_SqlDB_LocalMessageGrouping$.main(LR_SqlDB_LocalMessageGrouping.scala:172)
at com.cvs.scala.ml.model.LR_SqlDB_LocalMessageGrouping.main(LR_SqlDB_LocalMessageGrouping.scala)
【问题讨论】:
-
看起来摘要不适用于此模型,当粗麻布不可逆时发生。你应该添加一个检查,我认为它是 model.summary.isAvailable 什么的
-
当我使用:val sum = lrModel_general.stages.last.asInstanceOf[GeneralizedLinearRegressionModel].hasSummary。它返回 true,表示模型中存在摘要。
标签: scala apache-spark data-science apache-spark-mllib