有没有办法提取有关提供输入和输出的SPARK-ML Model / CrossValidator的元数据?

时间:2018-04-09 11:57:45

标签: apache-spark apache-spark-ml

我正在构建一个REST服务,用于对Spark ML中创建的ML管道进行评分。为此,我需要知道预测的输入数据格式(属性名称和类型)和输出数据格式。 可以说我有以下

    formula = RFormula(
    formula="approve ~ age + balance + jobIndx + maritalIndx + housingIndx + loanIndx + educationIndx + poutcomeIndx",
    featuresCol="features",
    labelCol="label")
    lr = LogisticRegression()
    trainingPipeline = Pipeline(stages=[jobIndx,
                                maritalIndx,
                                educationIndx,
                                housingIndx,
                                loanIndx,
                                poutcomeIndx,
                                formula,
                                lr])

有没有办法提取有关预期输入(功能:年龄,余额,jobIndx等)和输出(标签:批准)的管道 trainingPipeline 的信息(没有事实知道RFormula)? 同样,如果我构建一个完整的ML管道并使用CrossValidator进行模型调整,如

paramGrid = ParamGridBuilder() \
    .addGrid(lr.maxIter, [10,1000]) \
    .addGrid(lr.regParam, [0.1, 0.6]) \
    .addGrid(lr.elasticNetParam, [0.1, 0.9])\
    .build()

crossval = CrossValidator(estimator=trainingPipeline,
                          estimatorParamMaps=paramGrid,
                          evaluator=BinaryClassificationEvaluator(),
                          numFolds=3)
cvModel = crossval.fit(dfTraining)
prediction = cvModel.transform(dfTest)

从上面的例子中的CrossValidator crossval ,有没有办法提取必须进入CrossValidator变换方法的结构(上例中的dfTest)。 我想通过内省Model,Pipeline或CrossValidator对象来创建一个用于对Pipeline或CrossValidator进行评分的REST合约,我想知道是否可以这样做。看看MLeap看起来有什么可能,但想知道你是否有一些PySpark或Java代码可以说明如何做到这一点。

0 个答案:

没有答案