6.3API:XGBoost
文章目录
一.
的参数一共分为三类:
通用参数:宏观函数控制 参数:控制每一步的(tree/)。参数一般可以调控模型的效果和计算代价。我们所说的调参,很大程度上都是在调整参数 学习目标参数:控制训练目标的表现。我们对于问题的划分主要体现在学习目标参数上。比如我们要做分类还是回归,做二分类还是多分类,这都是目标参数所提供的 1.通用参数
:我们有两种参数选择,和。是采用树的结构来运行数据,而是基于线性模型。
:静默模式,为1时模型运行不输出
: 使用线程数,一般我们设置成-1,使用所有线程。如果有需要,我们设置成多少就是用多少线程
2.参数
: 也作
这是生成的最大树的数目,也是最大的迭代次数。
: 有时也叫作eta,系统默认值为0.3,。
每一步迭代的步长,很重要。太大了运行准确率不高,太小了运行速度慢。我们一般使用比默认值小一点,0.1左右就很好。
gamma:系统默认为0,我们也常用0。
在节点分裂时,只有分裂后损失函数的值下降了,才会分裂这个节点。gamma指定了节点分裂所需的最小损失函数下降值。 这个参数的值越大,算法越保守。因为gamma值越大的时候,损失函数下降更多才可以分裂节点。所以树生成的时候更不容易分裂节点。范围: [0,∞]
:系统默认为1。
这个参数控制对于每棵树,随机采样的比例。减小这个参数的值,算法会更加保守,避免过拟合。但是,如果这个值设置得过小,它可能会导致欠拟合。 典型值:0.5-1,0.5代表平均采样,防止过拟合. 范围: (0,1],注意不可取0
:系统默认值为1。我们一般设置成0.8左右。
用来控制每棵随机采样的列数的占比(每一列是一个特征)。 典型值:0.5-1范围: (0,1]
:默认为1,我们也设置为1.
这个就相比于前一个更加细致了,它指的是每棵树每次节点分裂的时候列采样的比例
: 系统默认值为6
我们常用3-10之间的数字。这个值为树的最大深度。这个值是用来控制过拟合的。越大,模型学习的更加具体。设置为0代表没有限制,范围: [0,∞]
:默认0,我们常用0.
这个参数限制了每棵树权重改变的最大步长,如果这个参数的值为0,则意味着没有约束。如果他被赋予了某一个正值,则是这个算法更加保守。通常,这个参数我们不需要设置,但是当个类别的样本极不平衡的时候,这个参数对逻辑回归优化器是很有帮助的。
:也称,默认值为0。
权重的L2正则化项。(和Ridge 类似)。这个参数是用来控制的正则化部分的。这个参数在减少过拟合上很有帮助。
alpha:也称默认为0,
权重的L1正则化项。(和Lasso 类似)。 可以应用在很高维度的情况下,使得算法的速度更快。
:默认为1
在各类别样本十分不平衡时,把这个参数设定为一个正值,可以使算法更快收敛。通常可以将其设置为负样本的数目与正样本数目的比值
3.学习目标参数
[缺省值=reg:]
reg:– 线性回归
reg: – 逻辑回归
: – 二分类逻辑回归,输出为概率
: – 二分类逻辑回归,输出的结果为 w T x w^Tx wTx
count: – 计数问题的回归,输出结果为分布。在回归中,的缺省值为0.7 (used to )
multi: – 设置 使用目标函数做多分类,需要设置参数(类别个数)
multi: – 如同,但是输出结果为ndata*的向量,其中的值是每个数据分为每个类的概率。
[缺省值=通过目标函数选择]
rmse: 均方根误差
mae: 平均绝对值误差
: log-
error: 二分类错误率。其值通过错误分类数目与全部分类数目比值得到。对于预测,预测值大于0.5被认为是正类,其它归为负类。不同的划分阈值可以通过 ‘t’进行设置
: 多分类错误率,计算公式为(wrong cases)/(all cases)
: 多分类log损失
auc: 曲线下的面积
ndcg: Gain
map: 平均正确率
一般来说,我们都会使用.train(, )函数来训练我们的模型。这里的指的是参数
train
xgboost.train(params, dtrain, num_boost_round=10, evals=(), obj=None, feval=None, maximize=None,
early_stopping_rounds=None, evals_result=None, verbose_eval=True, xgb_model=None