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

2023-11-24

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

regr = XGBClassifier()
regr.fit(X, y)
regr.feature_importances_

其中 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_

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

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


根据我自己尝试从 SageMaker 生成的增强器对象重新创建分类器的经验,我了解到以下内容:

  1. 似乎不可能从助推器重新创建分类器。 :(
  2. https://xgboost.readthedocs.io/en/latest/python/python_api.html#xgboost.Booster有关于增强类的详细信息,以便您可以查看它的功能。

然而你可以做一些疯狂的事情:

  1. You can创建一个分类器对象,然后覆盖其中的助推器:

    xgb_classifier = xgb.XGBClassifier(**xgboost_params)

    [..]

    xgb_classifier._Boster = 增强器

除非你安装它,否则它几乎没有任何功能数据。 (我并没有彻底完成这个场景来验证拟合是否会提供功能所需的特征数据。)

  1. 您可以从分类器中删除 booster 对象,然后直接使用 xgboost 对分类器进行 pickle。然后稍后将 SageMaker 助推器恢复到其中。这种令人厌恶的东西更接近并且似乎有效,但并不是真正仅来自 SageMaker 输出的再水化分类器对象。

推荐

如果您不纠结于使用 SageMaker 训练解决方案,您当然可以直接使用 XGBoost 进行训练。那时,您可以访问转储/保存数据以在不同上下文中使用所需的一切。

我知道您追求的是功能重要性,所以我希望这能让您更接近,我有一个不同的用例,并最终能够利用助推器来满足我的需要。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

XGBoost 从增强器对象中获取分类器对象? 的相关文章

随机推荐

  • Mongoose模型与Sinon的存根保存实例方法

    我正在尝试使用 Mongoose 模型测试用于保存小部件的服务功能 我想在我的模型上删除保存实例方法 但我找不到一个好的解决方案 我看过其他建议 但似乎没有一个是完整的 See this and this 这是我的模型 widget js
  • 尝试编译时出现 QT 未定义引用错误

    我在 QT 项目中添加了一个 IcecastServer 类 将头文件添加到 pro 文件中 并添加了一些代码 每次编译都会出现以下错误 release icecastserver o icecastserver cpp text 0x39
  • css3动画/过渡/变换:如何使图像变大?

    我想让我的图像高度增长到 1500px 希望宽度会自动调整大小 如果没有 我也可以轻松设置它 我正在使用 jquery animate 但它对我来说太不稳定了 我知道我可以使用 webkit transform scale 2 但我希望将其
  • 如何改变函数中变量的作用域?蟒蛇[重复]

    这个问题在这里已经有答案了 这似乎是一个非常愚蠢的问题 但我对 Python 中的范围规则感到困惑 在下面的示例中 我将两个带有值的变量 x y 发送到一个应该更改其值的函数 当我打印结果时 变量没有改变 def func1 x y x 2
  • 如果页面中有错误,则重定向到自定义错误页面

    我是新来的PHPWeb开发 我想知道 PHP 中是否有任何代码可以将我重定向到页面 我们将其命名为 myerrorpage php 页面上是否有错误 In JSP可以使用以下代码 我想知道上面有没有JSPPHP 中的代码类型 是 那么请帮忙
  • django:根据条件排除某些表单元素

    我有一些表单字段 我想根据是否满足特定条件来包含 排除这些字段 我知道如何包含和排除表单元素 但是当我希望它的元素根据函数的结果显示时 我很难做到这一点 这是我的表格 class ProfileForm ModelForm this tea
  • AWS EC2 究竟如何计算每小时成本?

    简单的问题 如果我有六个相同的 EC2 实例处理数据正好十分钟然后关闭 我会被收取六个小时还是一小时的费用 Update EC2 和 EBS 现在基于使用情况下降到第二个 旧答案变更的粒度精确到小时 来自 AWS 定价网站http aws
  • Blazor Checkbox双向绑定和更改事件

    绑定复选框并在该复选框更改时触发事件的正确方法是什么 我尝试了几种不同的方法 但都没有完全按照我的希望工作 请注意 该复选框位于组件中
  • 如何将sender参数传递给system.timers.timer

    如何将sender参数传递给system timers timer在 NET 中 timer1 timer new System Timers Timer interval timer1 timer AutoReset true timer
  • 如何使用 R 从 MATLAB 序列日期数字中提取时间?

    我有一些需要在 R 中使用的 MATLAB 序列日期号 但我必须将它们转换为正常日期 Matlab datestr 733038 6 ans 27 Dec 2006 14 24 00 你可以看到它给出了日期和时间 Now we try in
  • 如何将字符串转换回列表

    我有一个清单 ab 1 2 a b c I did strab str ab So strab现在是一个字符串 我想将该字符串转换回列表中 我怎样才能做到这一点 最简单和最安全的方法是使用ast literal eval import as
  • Firebase:提供的存储桶与 Swift 中当前实例的存储桶不匹配

    我有以下代码 let storageRef FIRStorage reference forURL gs slugbug appspot com dots intentional let imageRef storageRef child
  • React useContext() 性能,自定义钩子内的 useContext

    我使用了一个结构反应钩子 它是基于全球Context包含减速器的组合 如 Redux 中 另外 我广泛使用定制挂钩来分离逻辑 我有一个包含异步 API 请求的钩子 它变得相当麻烦 我有机会将该钩子的几乎每个函数拆分为其他钩子 但每个函数都使
  • ADB 命令切换不会保留活动开发人员选项设置,但没有实际效果

    正如标题所说 如果我发出以下命令 adb shell settings put global always finish activities 1 如果我转到 开发人员选项 我可以看到切换从 关闭 更改为 打开 还 adb shell se
  • 列出 SQL Server 2005 中哪些列具有全文索引

    如何列出数据库中具有全文索引的所有表 列 select distinct object name fic object id table name name column name from sys fulltext index colum
  • 使用 Amazon RedShift 透视表

    我在 Amazon RedShift 中有多个表 它们遵循多个维度列和一对指标名称 值列的模式 DimensionA DimensionB MetricName MetricValue dimA1 dimB1 m1 v11 dimA1 di
  • 在 ruby​​ 中使用 sjcl.js 创建的 AES 解密

    您好 让我们假设客户端有一个密钥 该密钥不通过与加密数据相同的通道传输 我想要完成的是解密结果斯坦福 Javascript 加密库 sjcl 在红宝石中 或者对于具有支持 AES 的加密库的任何其他语言的概括 这是我在 javascript
  • ?#iefix 如何解决 IE6-IE8 中的网页字体加载问题?

    网上有很多这样的文章 http www fontspring com blog fixing ie9 font face problems建议添加一个 iefix到 eot 网址 我很想知道how这能解决问题吗 谢谢 IE8 及更早版本的
  • 405 尽管 CORS 仍不允许方法

    我正在尝试使用 Angular 开发前端应用程序 由于我添加了授权标头对于 HTTP POST 和 GET 请求 我得到405 不允许的方法 尽管我似乎允许服务器端的一切 我的 Chrome 浏览器中的调试器说它要求Access Contr
  • XGBoost 从增强器对象中获取分类器对象?

    我通常使用以下方法来表达特征重要性 regr XGBClassifier regr fit X y regr feature importances 其中 type regr 是 但是 我有一个腌制的 mXGBoost 模型 解包后会返回一