我正在构建一个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代码可以说明如何做到这一点。