集成学习_task8

一、GBDT(Gradient Boosting Decision Tree 梯度增强决策树)

1、BDT:Boosting Decision Tree 提升决策树

1)Boosting:提升,涉及到机器学习中的集成学习,原理就是通过多个特征生成多个树,来决策一件事

2)BDT的核心在于,每一颗树学的是前面所有树结论和的残差

2、GB(Gradient Boosting 梯度提升)

二、CART(Classification And Regression Tree)

1、ID3-信息增益

2、C4.5-信息增益比

3、CART-基尼指数

三、XGBoosting(重要参数一)

1、使用booster定义我们采用树还是线性方法来作为训练的结构。使用silent定义系统要不要实时输出训练的内容,比如树的深度与叶子数量。使用nthread来设置使用多少线程来运行此模型。

2、接下来是学习目标参数。我们要定义objective,是我们要拿此模型做回归还是分类?多分类还是二分类?这是总目标。接下来是eval_metric,这是评估函数,也是我们的损失函数(模型优化的方向是按照损失函数值下降的方向进行的)

3、XGBoost中的目标函数由两部分构成:

这里有3个参数:gamma、alpha、lambda,其中gamma作为T的正则化参数,它的存在让T尽可能小,gamma值设置越大,算法越保守,gamma是在树的叶节点进一步分裂所需的最小损失减少量

4、反复迭代n次之后(不断的用树预测残值),有个n_estimator参数限制最大生成树的数目,也是最大迭代次数,n到达这个数字后停止生成新树

这个训练过程我们用到learning_rate,每次迭代的梯度下降步长,max_depth代表最大树深、cosample_bytree每次生成树的时候随机选取列数的比例。colsample_bylevel这个比前一个更加细致了,它指的是每颗树每次节点分裂的时候列采样的比例,subsample每次训练的时候随机采样的比例(行采样)

四、XGBoost(重要参数介绍二)

1、XGBoost的参数一共分为3类:

1)通用参数

2)Booster参数:控制每一步的booster(tree / regssion),booster参数一般可以调控模型的效果和计算代价。所说的调参,一般指调整booster参数

3)学习目标参数:对于问题的划分主要体现在学习目标上,比如要做分类还是回归,做二分类还是多分类,这都是目标参数提供的

2、通用参数:

1)booster:有两种参数选择gbtree和gbliner。gbtree是采用树的结构来运行数据,而gbliner是基于线性模型。

2)silent:静默模式,为1时模型运行不输出

3)nthread:使用线程数,一般设置为-1,即使用所有线程

3、Booster参数:

1)n_estimator:生成的最大数的数目,也是最大迭代次数

2)learning_rate:系统默认值为0.3,每一步迭代的步长,太大了运行准确率不高,太小了运行速度慢,一般使用比默认值小一点,0.1左右

3)gamma:系统默认为0,一般无需修改,在节点分裂时,只有分裂后损失函数的值下降了,才会分裂这个节点。gamma指定了这个节点分裂所需的最小损失函数。这个参数值越大,算法越保守,因为gamma值越大的时候,损失函数下降更多才可以分裂节点,所以树生成的时候更不容易分裂节点

4)subsample:系统默认为1,这个参数控制对于每棵树,随机采样的比例,减少这个参数的值,算法会更加保守,避免过拟合。典型值0.5-1,0.5代表平均采样,防止过拟合

5)colsample_bytree:系统默认值为1,一般设置成0.8左右。用来控制每棵树随机采样的列数的占比(每一列是一个特征),典型值0.5-1

6)colsample_bylevel:默认值1,一般也设置为1,比前一个更细致

7)max_depth:默认值6,常用3-10,数的最大深度

8)max_delta_step:默认为0,常用0,这个参数限制了每棵树权重改变的最大步长,如果这个参数为0,则意味着没有约束

9)lambda:默认值0,权重的L2正则化项(也称为reg_lambda)

10)alpha:默认值0,权重的L1正则化项(也称为reg_alpha)

11)scale_pos_weight:默认值1,在各类别样本十分不平衡时,把这个参数设定为一个正值,可以使算法更快收敛。通常可以将其设置为负样本的数目与正样本数目的比值

4、学习目标参数

1)objective【缺省值=reg:linear】

a)reg: linear 线性回归

b)reg: logistic 逻辑回归

c)binary: logistic 二分类逻辑回归,输出为概率

d)binary: logitraw 二分类逻辑回归,输出是WTX

e)count: poisson 计数问题的possion回归,输出结果是possion分布。在回归中,max_delta_step的缺省值为0.7

f)multi: softmax 设置XGBoost使用softmax目标函数做多分类,需要设置参数num_class(类别个数)

g)multi: softprob 如同softmax,但是输出结果为ndata*nclass的向量,其中的值是每个数据分为每个类的概率

2) eval_metric 【缺省值=通过目标函数选择】

a)rmse 均方根误差

b)mae 平均绝对值误差

c)logloss negativelog-likelihood

d)error 二分类错误率

e)merror 多分类错误率

f)mlogloss 多分类log损失

g)auc 曲面下面积

h)ndcg Normalized Discounted Cumulative Gain

i)map 平均正确率