Я мастерить с некоторым кодом перекрестной проверки из документации PySpark, и пытается получить PySpark, чтобы сказать мне, что модель была выбрана:Как извлечь гипер-параметры модели из spark.ml в PySpark?
from pyspark.ml.classification import LogisticRegression
from pyspark.ml.evaluation import BinaryClassificationEvaluator
from pyspark.mllib.linalg import Vectors
from pyspark.ml.tuning import ParamGridBuilder, CrossValidator
dataset = sqlContext.createDataFrame(
[(Vectors.dense([0.0]), 0.0),
(Vectors.dense([0.4]), 1.0),
(Vectors.dense([0.5]), 0.0),
(Vectors.dense([0.6]), 1.0),
(Vectors.dense([1.0]), 1.0)] * 10,
["features", "label"])
lr = LogisticRegression()
grid = ParamGridBuilder().addGrid(lr.regParam, [0.1, 0.01, 0.001, 0.0001]).build()
evaluator = BinaryClassificationEvaluator()
cv = CrossValidator(estimator=lr, estimatorParamMaps=grid, evaluator=evaluator)
cvModel = cv.fit(dataset)
Запуск этого в PySpark оболочки, я могу получить модель регрессии линейного-х коэффициенты, но я не могу найти значение lr.regParam
, выбранное процедурой перекрестной проверки. Есть идеи?
In [3]: cvModel.bestModel.coefficients
Out[3]: DenseVector([3.1573])
In [4]: cvModel.bestModel.explainParams()
Out[4]: ''
In [5]: cvModel.bestModel.extractParamMap()
Out[5]: {}
In [15]: cvModel.params
Out[15]: []
In [36]: cvModel.bestModel.params
Out[36]: []
Соответствующий вопрос в Спарк Scala API: http://stackoverflow.com/questions/31749593/how-to-extract-best-parameters- from-a-crossvalidatormodel – desertnaut
pyspark ответьте здесь: https://stackoverflow.com/questions/39529012/pyspark-get-all-parameters-of-models-created-with-paramgridbuilder –
Обязательно отметьте ответ (wernerchao's under работал для меня). –