相关文章推荐
曾经爱过的猴子  ·  条顿堡森林之战:罗马帝国扩张的终结_手机新浪网·  2 年前    · 
悲伤的墨镜  ·  艺术管理·  2 年前    · 
听话的马克杯  ·  中国青年报·  2 年前    · 
谦虚好学的口罩  ·  计算机考研,是408会炸,还是自命题会炸?- ...·  2 年前    · 
大气的警车  ·  美丽青州变金融“绿洲”——山东青州市普惠金融 ...·  2 年前    · 
小百科  ›  XGBoost - 在多分类问题中使用multi:softmax函数后如何获取概率
机器学习 xgboost softmax
气势凌人的苦咖啡
2 年前
最新活动
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们
文档 备案 控制台
登录 立即注册
火山引擎首页
全站搜索
X
XGBoost - 在多分类问题中使用multi:softmax函数后如何获取概率

XGBoost - 在多分类问题中使用multi:softmax函数后如何获取概率

在XGBo os t中,我们可以使用multi:softmax函数来解决多分类问题。然而,该函数只返回预测的类别标签,而不是概率。如果想要获取概率,我们可以使用multi:softprob函数,并结合使用xgbo os t的predict 函数 。

下面是一个示例代码:

import xgboost as xgb
import numpy as np
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
# 加载数据集
iris = load_iris()
X, y = iris.data, iris.target
# 将数据集划分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 将数据转换为DMatrix格式
dtrain = xgb.DMatrix(X_train, label=y_train)
dtest = xgb.DMatrix(X_test, label=y_test)
# 设置参数
param = {'max_depth': 2, 'eta': 1, 'objective': 'multi:softmax', 'num_class': 3}
# 训练模型
num_round = 10
model = xgb.train(param, dtrain, num_round)
# 使用测试集进行预测
preds = model.predict(dtest)
# 获取概率
preds_proba = model.predict(dtest, output_margin=True)
# 将概率转换为类别标签
preds_proba_label = np.argmax(preds_proba, axis=1)
print("预测的类别标签:", preds)
print("预测的概率:", preds_proba)
print("预测的类别标签(根据概率转换):", preds_proba_label)

在上述代码中,我们首先将数据集划分为训练集和测试集,并将其转换为DMatrix格式。然后,我们设置参数并训练模型。接下来,我们使用测试集进行预测,并使用model.predict(dtest, output_margin=True)获取概率。最后,我们使用np.argmax(preds_proba, axis=1)将概率转换为类别标签。

 
推荐文章
曾经爱过的猴子  ·  条顿堡森林之战:罗马帝国扩张的终结_手机新浪网
2 年前
悲伤的墨镜  ·  艺术管理
2 年前
听话的马克杯  ·  中国青年报
2 年前
谦虚好学的口罩  ·  计算机考研,是408会炸,还是自命题会炸?- CS择校汇总_计算机 ...
2 年前
大气的警车  ·  美丽青州变金融“绿洲”——山东青州市普惠金融综合示范区建设纪实
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
小百科 - 百科知识指南
© 2024 ~ 沪ICP备11025650号