Dan*_* Du 7 apache-spark pyspark apache-spark-ml apache-spark-mllib xgboost
我想更新我的pyspark代码。在pyspark中,必须将基础模型放入管道中,管道的办公演示使用LogistictRegression作为基础模型。但是,似乎无法在管道API中使用XGboost模型。我该如何使用pyspark
from xgboost import XGBClassifier
...
model = XGBClassifier()
model.fit(X_train, y_train)
pipeline = Pipeline(stages=[..., model, ...])
...
Run Code Online (Sandbox Code Playgroud)
使用管道API很方便,因此有人可以提出建议吗?谢谢。
Apache Spark ML 中没有 XGBoost 分类器(截至版本 2.3)。此处列出了可用模型:https://spark.apache.org/docs/2.3.0/ml-classification-regression.html
如果您想使用 XGBoost,您应该在没有 pyspark 的情况下进行操作(使用.toPandas())或使用其他算法(https://spark.apache.org/docs/2.3.0/api/python/pyspark.txt)。 ml.html#module-pyspark.ml.classification)。
但如果您确实想将 XGBoost 与 pyspark 一起使用,则必须深入研究 pyspark 自己实现分布式 XGBoost。这是他们这样做的文章:http://dmlc.ml/2016/10/26/a-full-integration-of-xgboost-and-spark.html
小智 5
如上所述(https://github.com/dmlc/xgboost)有一个维护的(由几家公司在生产中使用)分布式 XGBoost 库,但是从 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/问题/1698进行全面讨论。
确保 xgboost jar 位于您的 pyspark jar 路径中。
| 归档时间: |
|
| 查看次数: |
8639 次 |
| 最近记录: |