Как использовать XGboost в PySpark Pipeline - PullRequest
0 голосов
/ 30 мая 2018

Я хочу обновить свой код pyspark.В pyspark он должен поместить базовую модель в конвейер, office демо конвейера использует LogistictRegression в качестве базовой модели.Тем не менее, он не сможет использовать модель XGboost в конвейере API.Как я могу использовать pyspark следующим образом

from xgboost import XGBClassifier
...
model = XGBClassifier()
model.fit(X_train, y_train)
pipeline = Pipeline(stages=[..., model, ...])
...

Удобно использовать API конвейера, поэтому кто-нибудь может дать несколько советов?Благодарю.

Ответы [ 2 ]

0 голосов
/ 14 ноября 2018

Существует поддерживаемая (используемая в производстве несколькими компаниями) распределенная библиотека XGBoost, как упоминалось выше (https://github.com/dmlc/xgboost),, однако использовать ее из PySpark немного сложнее, кто-то создал рабочую оболочку pyspark для версии 0.72библиотека, с поддержкой 0,8.

Смотрите здесь https://medium.com/@bogdan.cojocar/pyspark-and-xgboost-integration-tested-on-the-kaggle-titanic-dataset-4e75a568bdb, и https://github.com/dmlc/xgboost/issues/1698 для полного обсуждения.

Убедитесь, что файлы jgboost находятся в вашем банке pysparkпуть.

0 голосов
/ 11 июня 2018

В Apache Spark ML нет классификатора XGBoost (начиная с версии 2.3).Доступные модели перечислены здесь: https://spark.apache.org/docs/2.3.0/ml-classification-regression.html

Если вы хотите использовать XGBoost, вы должны сделать это без pyspark (преобразовать ваш искровой фрейм данных в pandas фрейм данных с .toPandas()) или использовать другой алгоритм (https://spark.apache.org/docs/2.3.0/api/python/pyspark.ml.html#module-pyspark.ml.classification).

Но если вы действительно хотите использовать XGBoost с pyspark, вам придется погрузиться в pyspark, чтобы самостоятельно реализовать распределенный XGBoost. Вот статья, в которой они так делают: http://dmlc.ml/2016/10/26/a-full-integration-of-xgboost-and-spark.html

...