2016-08-03 4 views
2

Я запускаю линейную регрессию, используя Spark Pipelines в pyspark. Как только модель линейной регрессии обучается, как мне получить коэффициенты?Как получить доступ к параметрам Spark PipelineModel

Вот мой код трубопровода:

# Get all of our features together into one array called "features". Do not include the label! 
feature_assembler = VectorAssembler(inputCols=get_column_names(df_train), outputCol="features") 

# Define our model 
lr = LinearRegression(maxIter=100, elasticNetParam=0.80, labelCol="label", featuresCol="features", 
        predictionCol = "prediction") 

# Define our pipeline 
pipeline_baseline = Pipeline(stages=[feature_assembler, lr]) 

# Train our model using the training data 
model_baseline = pipeline_baseline.fit(df_train) 

# Use our trained model to make predictions using the validation data 
output_baseline = model_baseline.transform(df_val) #.select("features", "label", "prediction", "coefficients") 
predictions_baseline = output_baseline.select("label", "prediction") 

Я попытался с помощью методов из PipelineModel class. Вот мои попытки получить коэффициенты, но я только получаю пустой список и пустой словарь:

params = model_baseline.stages[1].params 
print 'Try 1 - Parameters: %s' %(params) 
params = model_baseline.stages[1].extractParamMap() 
print 'Try 2 - Parameters: %s' %(params) 

Out[]: 
Try 1 - Parameters: [] 
Try 2 - Parameters: {} 

Существуют методы, которые возвращают PipelineModel тренированные коэффициенты?

ответ

1

Вы смотрите на неправильное свойство. params может быть использован для извлечения Estimator или TransformerParams как входные или выходных столбцы (см ML Pipeline parameters docs и не оцененные значения

Для LinearRegressionModel использования coefficients:.!.

model.stages[-1].coefficients 
+0

Совершенного Спасибо Это именно то, что я искал for. Вы также знаете, как я могу получить значения гиперпараметров (например, regParam или elasticNetParam)? Это новое приложение. Я запускаю [CrossValidator] (https://spark.apache.org/docs/2.0 .0/api/python/pyspark.ml.html? Highlight = crossvalidator # pyspark.ml.tuning.CrossValidator), чтобы попробовать разные гиперпараметры. ce лучшая модель найдена, я хочу знать, какие гиперпараметры используются лучшей моделью. 'model.bestModel.stages [-1] .коэффициенты' получает мне коэффициенты наилучшей модели линейной регрессии. –

Смежные вопросы