问题标签 [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 投票
1 回答
535 浏览

python - 多类概率解释器的 Force_plot

我面临有关 Python SHAP 库的错误。虽然根据对数几率创建力图没有问题,但我无法根据概率创建力图。目标是使 base_values 和 shap_values 总和为预测概率。

这有效:

这不起作用:

在此处输入图像描述

使用过的包:

matplotlib 3.4.1

numpy 1.20.2

熊猫 1.2.4

scikit-learn 0.24.1

第 0.39.0 版

xgboost 1.4.1

0 投票
0 回答
372 浏览

xgboost - xgboost.core.XGBoostError:不支持 Unicode

我正在使用 xgboost 制作一个心脏保护应用程序,它运行良好,直到我继续部署。我错过了 requirements.txt 文件中的 xgboost,添加了它,后来部署了它。我现在 heroku 日志显示_pickle.UnpicklingError: NEWOBJ class argument isn't a type object。我运行 app.py 文件(包含烧瓶),它在进行预测时向我展示了这一点。

xgboost.core.XGBoostError: [22:26:04] c:\users\administrator\workspace\xgboost-win64_release_1.4.0\src\data\array_interface.h:352: Unicode is not supported. 127.0.0.1 - - [23/Apr/2021 22:26:04] "POST /predict HTTP/1.1" 500 -

这就是我的 xgb.pkl 文件的制作方式

我的 app.py 看起来像这样:

0 投票
0 回答
128 浏览

tensor - XGBoost 错误:“标签大小必须等于行数”

我正在尝试为音频分类项目构建 XGBoost 分类器模型。首先,我收到错误消息“ValueError:y 应该是一维数组,而是得到一个形状为 (102, 10) 的数组。” 但是当我尝试“np.ravel(y_train)”来解决这个问题时,我得到 XGBoost 错误“标签大小必须等于行数”。正如您在代码下方看到的那样。谁能为我提供有关如何解决此问题的解决方案?

0 投票
0 回答
99 浏览

apache-spark - 如何理解 Xgboost 模型转储

注意到 spark xgboost 没有trees_to_dataframe()Python API 中的 API,我正在尝试解析getModelDump结果,但我对它的格式感到困惑,哪些字段代表什么等。

我的模型参数设置如下:

我认为res19.size= 200 有意义,因为我已设置n_estimators为 200。我对 中的每个字符串都感到困惑,所有字符串的res19格式如下:我认为f2必须代表某些特定功能,但我怎样才能找到示例功能名称?另外,0, 1,2代表什么?是什么yes=3, no=4意思?

提前致谢 !!

0 投票
1 回答
1043 浏览

python - XGB - 特征形状不匹配

该函数在预测时失败并出现错误:

testX - 1 X 395(数据帧) trainX - n X 395(数据帧)

0 投票
0 回答
52 浏览

python - xgboost 分类器中的测试集错误不会减少

我在类标签为 0、1 和 2 的不平衡数据集上使用 xgboost 分类器,分别由 74%、20% 和 6% 的标签组成。在对训练集进行随机过采样并缩放训练集和测试集之后,我构建了 xgbclassifier:

我在训练中的平衡精度非常高,但在测试集中的平衡精度很低:

这是我的模型使用 eval_metric= -mlogloss 的学习曲线。 测试集损失在 6 个 epoch 后停止下降

我知道我的模型过度拟合。但是,当我减小 n_estimators 和 max_depth 时,它只会降低训练精度,而不会提高测试精度。此外,即使在我对两个少数类进行过采样后,当类标签 = 2 时,测试准确率仍然很低。我应该怎么做才能提高测试准确性,尤其是在第 2 类中?

0 投票
0 回答
604 浏览

python - 如何修复 AttributeError: dlsym(0x7fa8b0814da0, XGBoosterGetStrFeatureInfo): symbol not found

我想在我的 Mac 上运行 xgb(规格)。我按照以下说明操作: https ://towardsdatascience.com/install-xgboost-and-lightgbm-on-apple-m1-macs-cb75180a2dda 。结果是 XGBClassifier 的问题 enter image description here

0 投票
1 回答
1753 浏览

python - XGBoost 用于多分类和不平衡数据

我正在处理一个具有 3 个类别 [0,1,2] 的分类问题,并且类别分布不平衡,如下所示。

在此处输入图像描述

我想将XGBClassifier(在 Python 中)应用于此分类问题,但模型不响应class_weight调整并偏向多数类 0,并忽略少数类 1,2。class_weight除了可以帮助我之外,还有哪些超参数?

我尝试 1) 使用 sklearn 计算类权重compute_class_weight;2)根据班级的相对频率设置权重;3)并且还手动调整具有极值的类以查看是否发生任何变化,例如{0:0.5,1:100,2:200}。但无论如何,将少数类考虑在内对分类器没有帮助。

观察:

  • 我可以在二进制情况下处理问题:如果我通过识别类 [1,2] 使问题成为二进制分类,那么我可以通过调整使分类器正常工作scale_pos_weight(即使在这种情况下class_weight也无济于事)。但是scale_pos_weight,据我所知,适用于二进制分类。对于多分类问题,是否有此参数的类似物?

  • 使用RandomForestClassifier而不是XGBClassifier,我可以通过设置class_weight='balanced_subsample'和调整来处理问题max_leaf_nodes。但是,由于某种原因,这种方法不适用于 XGBClassifier。

备注:我了解平衡技术,例如过采样/欠采样或 SMOTE。但我想尽可能地避免它们,如果可能的话,我更喜欢使用模型的超参数调整的解决方案。我上面的观察表明这适用于二进制情况。

0 投票
0 回答
191 浏览

performance - XGBoost 超参数调优性能指标

我想知道在为分类模型调整超参数时是否也可以使用以下代码,因为代码最初是为回归设置创建的。我了解目标需要更改为“objective='binary:logistic'”

这部分代码使用了 best_score 和 best_iteration。据我所知,RMSE 不足以用于分类模型。代码的第二部分在下面,还查看了 RMSE。我认为应该使用分类模型 ROC_AUC,但超参数调整也是如此吗?是否有可能获得更好的理解,如果可能的话,如何修改此代码以与分类 XGBoost 相关?

0 投票
0 回答
75 浏览

python - ValueError:分类指标无法处理连续目标和多类目标的混合 (XGBoost)

对于我正在使用带有 XGBoost 的分类器的项目。这是代码的一部分:

一旦我使用某个 target_attribute,我就会收到以下错误:

ValueError:分类指标无法处理连续目标和多类目标的混合

我正在使用分类,所以到目前为止我的互联网搜索并没有真正帮助解决这个问题。我认为问题可能在于 .csv 的这一列中的值既是整数又是实数。我不知道如何解决这个问题。我希望这里有人可以帮助我。

编辑:我已经尝试强制所有具有 dtype == 'int64' 的列成为 dtype == 'float64'。可悲的是,这没有帮助。