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}%")
相关推荐
冰西瓜6003 小时前
从项目入手机器学习——鸢尾花分类
人工智能·机器学习·分类·数据挖掘
爱思德学术3 小时前
中国计算机学会(CCF)推荐学术会议-C(人工智能):IJCNN 2026
人工智能·神经网络·机器学习
长安er4 小时前
LeetCode215/347/295 堆相关理论与题目
java·数据结构·算法·leetcode·
元亓亓亓4 小时前
LeetCode热题100--62. 不同路径--中等
算法·leetcode·职场和发展
小白菜又菜4 小时前
Leetcode 1925. Count Square Sum Triples
算法·leetcode
登山人在路上5 小时前
Nginx三种会话保持算法对比
算法·哈希算法·散列表
写代码的小球6 小时前
C++计算器(学生版)
c++·算法
AI科技星6 小时前
张祥前统一场论宇宙大统一方程的求导验证
服务器·人工智能·科技·线性代数·算法·生活
Fuly10246 小时前
大模型剪枝(Pruning)技术简介
算法·机器学习·剪枝
Xの哲學6 小时前
Linux网卡注册流程深度解析: 从硬件探测到网络栈
linux·服务器·网络·算法·边缘计算