Spark xgboost4j:如何获得特征重要性?

Spark xgboost4j: How to get feature importance?

我 运行 xgboost on spark 并满足 AttributeError: 'XGBoostClassifier' object has no attribute 'booster'

def train_model(trainDF):
    xgboost = XGBoostClassifier(
        featuresCol="features",
        labelCol="label",
        predictionCol="prediction",
        objective='multi:softprob',
        numClass=10,
        missing=0.0
    )
    pipeline = Pipeline(stages=[xgboost])
    model = pipeline.fit(trainDF)
    featureScoreMap = xgb_model.booster.getFeatureScore()

如何获取xgboost4j的特征重要性?

试试这个- 从具有 xgboost 模型作为第一阶段的管道模型中获取重要特征

在 Scala 中

val xgboostModel = model.stages.apply(0).asInstanceOf[XGBoostClassificationModel]

xgboostModel.nativeBooster.getFeatureScore()

在Python(来自评论S)

model.stages[0].nativeBooster.getScore("", "gain")