相关疑难解决方法(0)

XGBoost 从增强器对象中获取分类器对象?

我通常使用以下方法来表达特征重要性

regr = XGBClassifier()
regr.fit(X, y)
regr.feature_importances_
Run Code Online (Sandbox Code Playgroud)

其中 type(regr) 是 。

但是,我有一个腌制的 mXGBoost 模型,解压后返回一个类型的对象。这与我运行 regr.get_booster() 的对象相同。

我找到了一些从助推器对象获取可变重要性的解决方案,但是有没有办法从助推器对象获取分类器对象,以便我可以应用相同的 feature_importances_ 命令?这似乎是最直接的解决方案,或者似乎我必须编写一个模仿 feature_importances_ 输出的函数,以便它适合我记录的特征重要性......

所以理想情况下我会有类似的东西

xbg_booster = pickle.load(open("xgboost-model", "rb"))
assert str(type(xgb_booster)) == "<class 'xgboost.core.Booster'>", 'wrong class'
xgb_classifier = xgb_booster.get_classifier()
xgb_classifier.feature_importances_
Run Code Online (Sandbox Code Playgroud)

在查找分类器方面,使用增强对象可以完成的操作是否有任何限制?我想有一些保存/加载/转储的组合可以让我得到我需要的东西,但我现在陷入困境......

另外,就上下文而言,pickled 模型是 AWS sagemaker 的输出,因此我只是将其解压以进行进一步的评估

classification scikit-learn xgboost sklearn-pandas

5
推荐指数
1
解决办法
5818
查看次数