XGBClassifiler函数介绍

目录

前言

XGBClassifier 是 XGBoost 库中用于分类任务的类。XGBoost 是一种高效且灵活的梯度提升决策树(GBDT)实现,它在多种机器学习竞赛中表现出色,尤其擅长处理表格数据。

函数介绍

python 复制代码
XGBClassifiler(max_depth=3,learning_rate=0.1,n_estimators=100,objective='binary:logistic',
booster='gbtree',gamma=0,min_child_weight=1,reg_alpha=0,
reg_lambda=1,missing=None
)
  1. max_depth;用于指定每个基础模型所包含的最大深度,默认为3层
  2. learning_rate:用于指定模型迭代的学习率或步长,默认为0.1;即对应的梯度提升模型 F T ( x ) F_T(x) FT(x)可以表示为:
    F T ( x ) = F T − 1 ( x ) + υ f t ( x ) F_T(x) =F_{T-1}(x) + \upsilon f_t(x) FT(x)=FT−1(x)+υft(x),其中的 υ \upsilon υ就是该参数的指定值,默认值为1;对于较小的学习率 υ \upsilon υ而言,则需要迭代更多次的基础分类器,通常情况下需要利用交叉验证法确定合理的基础模型的个数和学习率。
  3. n_estimators:用于指定基础模型的数量,默认为100个。
  4. object:用于指定目标函数中的损失函数类型,对于分类型的XGBoost算法,默认的损失函数为二分类的Logistic损失(模型返回概率值),也可以是'multi:softmax'表示用于处理多分类的损失函数(模型返回类别值),还可以是'multi:softprob',与'multi:softmax'相同,所不同的是模型返回各类别对应的概率值;对于预测型的XGBoost算法,默认的损失函数为线性回归损失。
  5. booster:用于指定基础模型的类型,默认为'gbtree',即CART模型,也可以是'gblinear',表示基础模型为线性模型。
  6. gamma:用于指定节点分割所需的最小损失函数的下降值,即增益值Gain的阈值,默认为0;
  7. min_child_weight:用于指定叶子节点中各样本点二阶导之和的最小值,即H_i的最小值,默认为1,该参数的值越小,模型越容易过拟合。
  8. reg_alpha:用于指定L1正则项的系数,默认为0;
  9. reg_lambda:用于指定L2正则项的系数,默认为1;
  10. missing:用于指定缺失值的表示方法,默认为None,表示NaN即为默认值。

示例

python 复制代码
import xgboost as xgb
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

# 加载数据
data = load_iris()
X, y = data.data, data.target

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 初始化 XGBClassifier
model = xgb.XGBClassifier(use_label_encoder=False, eval_metric='mlogloss')

# 训练模型
model.fit(X_train, y_train)

# 预测
y_pred = model.predict(X_test)

# 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy: {accuracy*100:.2f}%")
相关推荐
枫叶林FYL1 天前
【自然语言处理 NLP】8.3 长文本推理评估与针在大海堆任务
人工智能·算法
智者知已应修善业1 天前
【51单片机1,左边4个LED灯先闪烁2次后,右边4个LED灯再闪烁2次:2,接着所用灯一起闪烁3次,接着重复步骤1,如此循环。】2023-5-19
c++·经验分享·笔记·算法·51单片机
gongfuyd1 天前
Q 值与状态值
机器学习
xiaoye-duck1 天前
《算法题讲解指南:优选算法-队列+宽搜》--70.N叉树的层序遍历,71.二叉树的锯齿形层序遍历,72.二叉树的最大宽度,73.在每个树行中找最大值
数据结构·c++·算法·队列
汀、人工智能1 天前
[特殊字符] 第98课:数据流中位数
数据结构·算法·数据库架构··数据流·数据流中位数
Eloudy1 天前
不同特征值的特征向量互相正交的矩阵
人工智能·算法·机器学习
人道领域1 天前
【LeetCode刷题日记】:从 LeetCode 经典题看哈希表的场景化应用---数组、HashSet、HashMap 选型与算法实战
算法·leetcode·面试
努力努力再努力wz1 天前
【C++高阶系列】告别内查找局限:基于磁盘 I/O 视角的 B 树深度剖析与 C++ 泛型实现!(附B树实现源码)
java·linux·开发语言·数据结构·c++·b树·算法
承渊政道1 天前
【优选算法】(实战攻坚BFS之FloodFill、最短路径问题、多源BFS以及解决拓扑排序)
数据结构·c++·笔记·学习·算法·leetcode·宽度优先
kishu_iOS&AI1 天前
机器学习 —— 线性回归(2)
人工智能·python·算法·机器学习·线性回归