Чтобы использовать Spark, я должен использовать to_pandas_on_spark.
Функции уже собраны в вектор.
Код: Выделить всё
from flaml.automl.spark.utils import to_pandas_on_spark
psdf = to_pandas_on_spark(train_df)
Для оценки мне понадобится окончательный фрейм данных, включающий целевой альфа-столбец, прогноз и вероятность, а также столбцы идентификаторов, существующие в test_df (pdate & зм).
Код: Выделить всё
psdf_test = to_pandas_on_spark(test_df.select("features"))
y_pred = automl.predict(psdf_test)
Код: Выделить всё
y_pred_prob = automl.predict_proba(psdf_test)
Обычно первая — это вероятность для класса 0, вторая — для класса 0. класс 1, а третий для класса 2.
Чтобы объединить все, я планирую преобразовать все в кадр данных pandas, а затем объединить.
Код: Выделить всё
#predictions
y_pred_pd = y_pred.to_pandas() # Convert to pandas Series
y_pred_pd = y_pred_pd.to_frame(name="prediction") # Convert to pandas DataFrame with column name 'prediction'
# probabilities
y_pred_prob_pd = y_pred_prob.to_pandas() # Convert to pandas Series
#y_pred_prob_pd = y_pred_prob_pd.to_frame(name="probability") # Convert to DataFrame with column name 'probability'
# Convert test_df to a pandas DataFrame to join back with identifiers
test_df_pd = test_df.toPandas()
#concatenate the three dataframes
result_df = pd.concat([test_df_pd, y_pred_pd, y_pred_prob_pd], axis=1)

Обратите внимание, что даже если предполагаемый порядок классов неверен, прогноз все еще не соответствует высшему вероятность.
[*]почему такое несоответствие?
[*]есть ли более чистый способ достижения желаемого результата?
Подробнее здесь: https://stackoverflow.com/questions/791 ... prediction
Мобильная версия