问题标签 [xgbclassifier]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
30 浏览

python - 为什么使用 XGBClassifier 时 cross_validate 的输出与硬编码循环不同?

代码 #1使用 PCA、XGBClassifier 步骤将管道传递到 scikit-learn cross_validate 函数

代码 #2X编写交叉验证循环硬代码并计算与代码 #1完全相同的输入的平均准确度

0 投票
1 回答
125 浏览

python - H2O-3 Flow(UI) 和 XGBoost

XGBOOST当我选择通过流 UI 中的菜单运行H2O-3或在运行所有架构时包含它时(也通过流中的“AutoML”选项),我收到以下错误H2O-3。我只选择火车+验证帧+响应列,然后单击“构建模型”。

顺便说一句:我设置了以下 2 个环境变量:

我在跑Windows 10

0 投票
1 回答
188 浏览

python - 来自 xgboost 的 XGBClassifier 为不同的 num_class 参数提供了不同的拟合

XGBClassifier我意外地发现,如果我将参数目标设置为多类并增加类的数量,我会更适合我的二进制数据集。然而,与此同时,拟合需要更长的时间并消耗两倍的内存。

不幸的是,我无法为这种行为创建一个玩具示例。但在下面的示例中,我仍然看到不同num_class参数值的不同对数损失:

num_class=2导致 0.644 的对数损失,因为num_class=3我得到 0.741 ,因为num_class=10我得到 1.126。

我想这与一些早期停止标准或一些学习率适应有关?有任何想法吗?

0 投票
1 回答
786 浏览

r - XGboost 和 XGb.DMatrix

在 R 中使用 XGBoost 时出现此错误

下面是正在运行的代码

0 投票
3 回答
3954 浏览

r - 如何在 R 中为 xgboost 创建混淆矩阵

我已经在 R 中创建了我的 XGBoost 分类器,如下面的代码所示

现在,我需要为 XGBoost 创建一个混淆矩阵。

我在网上搜索过,不幸的是找不到解决方案。

谁能帮帮我。

提前致谢

0 投票
3 回答
646 浏览

python - 通过更改 XGBClassifier 的 random_state 来更改模型性能

我为我的分类问题训练了一个 XGBClassifier,并使用 optuna 对巨大的网格进行了超参数调整(可能调整了每个可能的参数)。在测试时,random_state 的变化会改变模型性能指标(roc_auc/recall/precision)、feature_importance 甚至模型预测(predict_prob)。

  1. 这告诉我关于我的数据的什么信息?

由于我必须在生产中使用这个模型,我应该如何解决这个问题以使模型更健壮?

  1. 使用我们在 cross_validation 期间使用的一个 random_state(例如默认值 0)并在样本外使用它。
  2. 在 cross_validation 期间,在每个 param_combination 之上,运行一些 random_state(比如 10)并获取 avg 模型性能。
0 投票
1 回答
676 浏览

python - 为什么 fscore 的值大于 1?

我使用 XGBClassifier 来拟合数据集并使用以下代码获得 feature_score:

我得到的 fscores 都大于 1,但这怎么可能呢?

0 投票
0 回答
130 浏览

python - 预测函数给出 XGBoost 错误但在 H2O 中运行 GBM

我正在 python 中使用 H2O 制作分类模型。我能够构建 GBM 模型并对训练和测试数据集进行预测,而当我构建 XGBoost 模型并尝试进行预测时。

以下是 GBM 代码:(运行良好)

XGBoost 代码:(失败)

错误:

如果错误出现在数据集中,我认为 GBM 也应该给出错误。XGBoost 的预测功能是否以不同的方式工作,还是我遗漏了什么?

提前致谢,

维沙尔

0 投票
1 回答
529 浏览

python - 为什么 XGBoost 没有显示正确的 best_iteration 和 ntree_limit?

我正在使用 XGBoostClassifier 创建一个二元分类模型,但在获取best_iterationand的正确值时遇到了一些问题ntree_limit

下面的代码是我的自定义评估指标:

这就是我创建和拟合分类器的方式:

这些是 XGBoost 在拟合期间显示给我的一些结果:

正如您所看到的,由于 f1 得分最高,最佳迭代是迭代编号 3791,但是当我调用classifier.get_booster().best_iteration它时,表明迭代编号 9999(最后一次迭代)是最好的,但不是。当我调用classifier.get_booster().best_ntree_limit它时,它告诉我最好的限制是 10000,但我不这么认为,因为它让我的 f1 分数低于较低的迭代次数。

0 投票
1 回答
151 浏览

machine-learning - 如何处理 AUC 的加权平均值并选择正确的阈值来构建混淆矩阵?

我有一个二进制分类任务,我使用 XGBClassifier 分类器拟合模型,并尝试使用测试集预测“1”和“0”。在这个任务中,我在训练数据中有一个非常不平衡的数据多数为“0”和少数为“1”(在测试集中大致相同)。我的数据如下所示:

我使用以下代码来训练模型并计算 roc 值:

上面的代码给了我一个 auc_score 的值,但似乎这个值是针对使用这个my_cls.predict_proba(x_tst)[:,1]的一个类,如果我将它更改为my_cls.predict_proba(x_tst)[:,0],它给了我另一个价值作为 auc 价值。我的第一个问题是如何直接获得 auc 的加权平均值?我的第二个问题是如何选择正确的切点来构建具有不平衡数据的混淆矩阵?这是因为默认情况下分类器使用 50% 作为阈值来构建矩阵,但由于我的数据非常不平衡,因此我们似乎需要选择一个正确的阈值。我需要计算 TP 和 FP,这就是为什么我需要有这个切点。

如果我使用权重类来训练模型,它是否可以解决问题(我的意思是我可以默认使用 50% 的切点)?例如这样的事情:

然后尝试用这个来拟合模型:

但是上面的代码my_cls.fit(X, y, class_weight= My_clss_weight) 不适用于XGBClassifier并给我错误。这适用于LogessticRegression,但我想申请XGBClassifier!任何想法来处理这些问题?