XGBoost

XGB架构参数

  • booster:①’gbtree’:树模型做为基分类器(默认);②’gbliner’:线性模型做为基分类器。③’dart’:树模型做为基分类器(采用dropout,随机丢弃一些树,防止过拟合)。

  • n_estimator:总共迭代的次数,即基学习器的个数。

  • objective:①**‘reg:linear’:线性回归**;②’reg:logistic’:逻辑回归;③’binary:logistic’:二分类,返回概率(默认值);④’binary:logitraw’:二分类,返回类别;⑤’multi:softprob’:多分类,返回概率;⑥’multi:softmax’:多分类,返回类别。

  • seed:随机种子,便于复现

  • verbosity:打印消息的详细程度。默认为0(silent),还可以取1(warning)、2(info)、3(debug)。

  • nthread:取-1时,使用全部CPU进行并行运算(默认);取1时,使用1个CPU进行运算

  • disable_default_eval_metric:是否禁用默认的(验证集的)评估指标,默认为False。如果要用自定义的评估指标,需要将这一项设为True。

early_stopping_rounds:在验证集上,当连续n次迭代,分数没有提高后,提前终止训练,防止过拟合

弱学习器参数

  • num_class:样本类别数,与’objective’:'multisoftmax’并用。

  • max_depth:树的深度,默认值是6,一般取3-10。过大容易过拟合,过小容易欠拟合。

  • min_child_weight:最小子节点的权重,默认值为1。如果某个子节点权重小于这个阈值,则不会在分裂。值越大,越容易欠拟合;值越小,越容易过拟合。

  • gamma:惩罚项系数,在树的叶节点上进一步分裂带来的最小损失函数下降值。gamma越大,算法越健壮。默认值为0。

  • subsample:子采样参数,即训练每棵树时,使用的数据占全部训练集的比例。默认值为1,一般取0.5-1。可防止过拟合。

  • colsample_bytree:训练每棵树时,使用的特征占全部特征的比例。默认值为1,典型值为0.5-1。可防止过拟合。

  • colsample_bylevel:控制树的每一级的每一次分裂,对特征的采样比重,默认值为1。

  • colsample_bynode:控制树的每一个节点的每一次分裂,对列数的采样比重,默认值为1。

  • reg_alpha:L1正则化参数,在高维度的情况下,调节该参数可以加快算法的速度,使模型更加健壮。默认为0。

  • reg_lambda:L2正则化参数,调节该参数可以减少过拟合使模型更加健壮。默认值为1。

  • eta:学习率,控制每次迭代更新权重时的步长,默认0.3。一般取0.01-0.2。

其他参数

  • n_jobs**:控制算法的并发线程数**

  • scale_pos_weight:用于数据样本类别不平衡的时候,例如正例:负例 = 1:10,可以设置scale_pos_weight=10。

  • n_jobs:并行线程数,默认为1

  • tree_method:①’auto’:使用启发式方法选择最快的方法。②’exact’:精确贪婪算法,枚举所有候选项;③’approx’:使用分位数草图和梯度直方图的近似贪婪算法;④’hist’:快速直方图优化近似贪心算法。 它使用了一些性能改进,例如垃圾箱缓存。⑤’gpu_exact’:精确算法的GPU实现。⑥’gpu_hist’:hist算法的GPU实现

Subsample有放回随机采样

树模型是天生过拟合模型,并且如果数量太过巨大,树模型的计算会非常缓慢,因此,我们需要对原始数据有放回抽样,有放回抽样每次只能抽取一个样本,若我们需要总共N个样本,就需要抽取N此,每次抽取一个样本的过程是独立的,这一次被抽取的样本就会被放回到数据集中,下一次还可能被抽到,因此抽出的数据集中,可能有一些重复数据,
SKlearn中的随机森林类,也有名为Boostrap的参数来帮助我们控制这种随机的有放回抽样,同时这样做,还可以保证集成学习算法每个弱分类器(每棵树)都是不同的模型,基于不同数据建立的自然是不同的模型,而集成系列一摸一样的弱分类器是没有意义的。在这里插入图片描述

调参步骤及思想

在这里插入图片描述

学习心得

构建模型的时候,会将深度学习与各种网络层进行结合。
会自己将各种模型及其参数,全部将其搞清楚,全部将其迭代,研究透彻!全部将其搞透彻都行啦的理由与打算。
会自己在建模中设置自己的参数及其模型建立,全部将其搞透彻。
研究彻底都行啦的理由与打算。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
XGBoost是一种高效的机器学习算法,它基于梯度提升树(Gradient Boosting Tree)的思想,具有很强的预测性能。而Jupyter是一个交互式的开发环境,可以在浏览器中创建和共享文档,其中包含实时代码、方程、可视化和说明文本。下面是关于XGBoost在Jupyter中使用的介绍: 1. 安装XGBoost:首先,你需要在你的Jupyter环境中安装XGBoost库。可以使用pip命令在终端或命令提示符中运行以下命令:`pip install xgboost` 2. 导入XGBoost库:在Jupyter中,你需要导入XGBoost库才能使用其中的函数和类。可以使用以下代码导入XGBoost库:`import xgboost as xgb` 3. 加载数据集:在使用XGBoost进行建模之前,你需要加载你的数据集。可以使用Pandas库来读取和处理数据。例如,你可以使用以下代码加载一个CSV文件:`import pandas as pd`,`data = pd.read_csv('your_dataset.csv')` 4. 准备数据:在使用XGBoost之前,你需要对数据进行一些预处理。这可能包括处理缺失值、进行特征工程等。你可以使用Pandas和其他数据处理库来完成这些任务。 5. 划分训练集和测试集:为了评估模型的性能,你需要将数据集划分为训练集和测试集。可以使用Scikit-learn库中的train_test_split函数来完成这个任务。例如,你可以使用以下代码将数据集划分为训练集和测试集:`from sklearn.model_selection import train_test_split`,`X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)` 6. 创建XGBoost模型:在Jupyter中,你可以使用XGBoost库提供的API来创建和训练XGBoost模型。可以使用以下代码创建一个XGBoost分类器:`model = xgb.XGBClassifier()` 7. 训练模型:使用训练集数据对模型进行训练。可以使用以下代码来训练模型:`model.fit(X_train, y_train)` 8. 模型评估:使用测试集数据对模型进行评估。可以使用以下代码来评估模型的性能:`y_pred = model.predict(X_test)`,`accuracy = accuracy_score(y_test, y_pred)` 9. 调参优化:XGBoost有很多可调参数,你可以通过调整这些参数来优化模型的性能。可以使用交叉验证等技术来选择最佳的参数组合。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

big_matster

您的鼓励,是给予我最大的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值