【发布时间】:2017-06-14 17:28:19
【问题描述】:
我使用逻辑回归和 spark-ml 管道训练了一个简单的 CrossValidatorModel。我可以预测新数据,但我想超越黑匣子,对系数进行一些分析
val lr = new LogisticRegression().
setFitIntercept(true).
setMaxIter(maxIter).
setElasticNetParam(alpha).
setStandardization(true).
setFamily("binomial").
setWeightCol("weight").
setFeaturesCol("features").
setLabelCol("response")
val assembler = new VectorAssembler().
setInputCols(Array("feat1", "feat2")).
setOutputCol("features")
val modelPipeline = new Pipeline().
setStages(Array(assembler,lr))
val evaluator = new BinaryClassificationEvaluator()
.setLabelCol("response")
然后我定义一个参数网格并在网格上进行训练以获得最佳模型 wrt AUC
val paramGrid = new ParamGridBuilder().
addGrid(lr.regParam, lambdas).
build()
val pipeline = new CrossValidator().
setEstimator(modelPipeline).
setEvaluator(evaluator).
setEstimatorParamMaps(paramGrid).
setNumFolds(nfolds)
val cvModel = pipeline.fit(train)
如何获得最佳逻辑回归模型的系数(beta)?
【问题讨论】:
标签: scala apache-spark logistic-regression cross-validation apache-spark-ml