Pysparkのコードを更新したい。 pysparkでは、ベースモデルをパイプラインに配置する必要があります。パイプラインの office demo は、LogistictRegressionをベースモデルとして使用します。ただし、パイプラインAPIではXGboostモデルを使用できないようです。このようにpysparkを使用するにはどうすればよいですか
from xgboost import XGBClassifier
...
model = XGBClassifier()
model.fit(X_train, y_train)
pipeline = Pipeline(stages=[..., model, ...])
...
パイプラインAPIを使用すると便利です。だれかからアドバイスをいただけますか?ありがとう。
上記のように、XGBoostライブラリが配布されている(複数の企業で実稼働で使用されています)( https://github.com/dmlc/xgboost )ただし、PySparkから使用するのは少し面倒です。誰かがライブラリのバージョン0.72のpysparkラッパーを作成し、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 を参照してください。
Xgboost jarがpyspark jarパスにあることを確認してください。
ApacheにはXGBoost分類子はありませんSpark ML(バージョン2.3以降)。使用可能なモデルは次のとおりです。 https://spark.Apache.org/docs/2.3.0 /ml-classification-regression.html
XGBoostを使用する場合は、pysparkなしで実行する必要があります(sparkデータフレームをpandasデータフレーム.toPandas()
)に変換するか、別のアルゴリズム( https://spark.Apache.org/docs/2.3.0/api/python/pyspark.ml.html#module-pyspark.ml.classification )。
しかし、本当にpysparkでXGBoostを使用したい場合は、pysparkに飛び込んで、分散XGBoostを自分で実装する必要があります。ここに彼らがそうする記事があります: http://dmlc.ml/2016/10/26/a-full-integration-of-xgboost-and-spark.html