Sagemaker中XGBoost的功能重要性

问题描述 投票:1回答:2

我使用Amazon Sagemaker构建了一个XGBoost模型,但我无法找到任何可以帮助我解释模型并验证它是否已经学会了正确的依赖关系的模型。

通常,我们可以通过python API中的get_fscore()函数看到XGBoost的Feature Importance(https://xgboost.readthedocs.io/en/latest/python/python_api.html)我在sagemaker api(https://sagemaker.readthedocs.io/en/stable/estimators.html)中看不到任何类型。

我知道我可以建立自己的模型,然后使用sagemaker进行部署,但我很好奇是否有人遇到过这个问题以及他们如何克服它。

谢谢。

xgboost amazon-sagemaker
2个回答
2
投票

SageMaker XGBoost目前不提供从模型中检索功能重要性的界面。您可以编写一些代码以从XGBoost模型中获取特征重要性。您必须从S3中的模型中获取助推器对象工件,然后使用以下代码段

import pickle as pkl
import xgboost
booster = pkl.load(open(model_file, 'rb'))
booster.get_score()
booster.get_fscore()

请参阅XGBoost doc,了解从Booster对象获取特征重要性的方法,例如get_score()get_fscore()


0
投票

截至2019-06-17,Sagemaker XGBoost模型存储在S3中,名为model.tar.gz。该存档包含名为xgboost-model的单个酸洗模型文件。

要直接从S3加载模型而不下载,可以使用以下代码:

import s3fs
import pickle
import tarfile
import xgboost

model_path = 's3://<bucket>/<path_to_model_dir>/xgboost-2019-06-16-09-56-39-854/output/model.tar.gz'

fs = s3fs.S3FileSystem()

with fs.open(model_path, 'rb') as f:
    with tarfile.open(fileobj=f, mode='r') as tar_f:
        with tar_f.extractfile('xgboost-model') as extracted_f:
            xgbooster = pickle.load(extracted_f)

xgbooster.get_fscore()
© www.soinside.com 2019 - 2024. All rights reserved.