Получите важность функции с PySpark и XGboost - PullRequest
1 голос
/ 05 мая 2020

Я обучил модель с помощью XGboost и PySpark

params = { 
    'eta': 0.1,
    'gamma': 0.1,
    'missing': 0.0,
    'treeMethod': 'gpu_hist',
    'maxDepth': 10, 
    'maxLeaves': 256,
    'growPolicy': 'depthwise',
    'objective': 'binary:logistic',
    'minChildWeight': 30.0,
    'lambda_': 1.0,
    'scalePosWeight': 2.0,
    'subsample': 1.0,
    'nthread': 1,
    'numRound': 100,
    'numWorkers': 1,
}

classifier = XGBoostClassifier(**params).setLabelCol(label).setFeaturesCols(features)


model = classifier.fit(train_data)

Когда я пытаюсь получить важность функции с помощью

model.nativeBooster.getFeatureScore()

, возвращается следующая ошибка:

Py4JError: An error occurred while calling o2167.getFeatureScore. Trace:
py4j.Py4JException: Method getFeatureScore([]) does not exist

Есть ли правильный способ определения важности функции при использовании XGboost с PySpark

1 Ответ

0 голосов
/ 18 августа 2020

Я новичок ie в этой области. Мне довелось столкнуться с тем, что вы переживаете. Вы можете попробовать использовать: model.nativeBooster.getScore("", "gain") or model.nativeBooster.getFeatureScore('').

Моя «модель» относится к типу «sparkxgb.xgboost.XGBoostClassificationModel».

С уважением,

...