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}%")
相关推荐
机器学习与统计学18 分钟前
阿里牛逼,又开源两个遥遥领先的模型(向量化、重排),知识库要翻天地覆了
算法
小河豚oO22 分钟前
LeetCode刷题---贪心算法---944
算法·leetcode·贪心算法
【杨(_> <_)】24 分钟前
信号处理分析工具——时频分析(一)
算法·matlab·信号处理
还不起来学习?28 分钟前
常见算法题目5 -常见的排序算法
java·算法·排序算法
Once_day40 分钟前
代码训练LeetCode(23)随机访问元素
算法·leetcode
小河豚oO1 小时前
LeetCode 热题 100 - 哈希 - 128
算法·leetcode·哈希算法
客卿1231 小时前
力扣100题之128. 最长连续序列
算法·leetcode·哈希算法
T1an-11 小时前
【力扣链表篇】206.反转链表
算法·leetcode·链表
databook2 小时前
稀疏表示与字典学习:让数据“瘦身”的魔法
python·机器学习·scikit-learn
bj32812 小时前
机器学习实验八--基于pca的人脸识别
人工智能·机器学习·计算机视觉