прогноз вероятности логистической регрессии pypsark - PullRequest
0 голосов
/ 03 ноября 2018

Я применил Лойистическую регрессию в pyspark и кодах ниже;

import numpy
from pyspark.ml.feature import RFormula
from pyspark.ml.classification import 
BinaryLogisticRegressionSummary,LogisticRegression
from pyspark.ml.evaluation import 
(BinaryClassificationEvaluator,MulticlassClassificationEvaluator) 

затем создайте фрейм данных

df = spark.createDataFrame([(0,0,1),
                          (1,1,0)]
                       , ['label', 'X1', 'X2'])

применить R-формулу

formula = RFormula(formula="label ~ X1+X2")
output = formula.fit(df).transform(df)
output.show()

затем примените модель

df_log=output.select([c for c in output.columns if c in 
       {'label','features'}])
final_model=LogisticRegression()
fit_final_model=final_model.fit(df_log)
predictions_and_labels=fit_final_model.evaluate(df_log)
pred=predictions_and_labels.predictions.show(1,truncate=False)

Ниже выводится (я округлил десятичные дроби)

+-----+---------+----------------------------------------+------------------ 
|label|features           |rawPrediction     |probability  |prediction|                             

 |0   |[0.0,1.0]          |[18.930,-18.93]  |[0.99,6.00E-9]|0.0       |
 |1   |[1.0,0.0]          |[-18.93,18.930]  |[6.00E-9,0.99]|1.0       |
 +-----+---------+----------------------------------------+-----------------

Теперь мои вопросы:

1) Назначается ли прогноз на основе вторых значений вероятности? если да, то почему? для чего этот массив?

2) Если да, как я могу добавить эти вероятности на моем фрейме данных в виде столбца?

3) Также я хотел бы добавить прогнозы для моего фрейма данных в виде столбца? Ниже я попробовал, но выдает ошибку

df.withColumn('prediction', pred.prediction)

4) Как округлить значения в выводе?

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...