标签:class rand max cart 好的 lan 之间 个数 mat
GBDT是Boosting家庭中,除AdaBoost外另一个重要的算法。算法思想同样是让本轮迭代找到的决策树的损失比上轮更小。
用损失函数负梯度来拟合本轮损失近似值,进而拟合一个CART回归树。第t轮的第i个样本的损失函数的负梯度表示为:
利用\((x_i,r_{ti})\quad i=1,2,...,m\)我们可以拟合一棵CART回归树,得到了第t棵回归树,对应的叶节点区域\(R_{tj},j=1,2,...,J\)其中J为叶子节点的个数。
针对每一个叶子节点里的样本,我们求出使用损失函数最小,也就是拟合叶节点最好的输出值\(c_{tj}\)如下
这样我们得到了本轮的决策树拟合函数如下
从而本轮最终得到的强学习器表达如下:
通过损失函数负梯度拟合,来减小误差。
见刘建平博客园
为防止过拟合,主要有三种方式
1)学习步长
2)子采样比例,这里是不放回抽样
3)CART树进行剪枝
GBDT优点:
GBDT缺点:
from sklearn.ensemble import GradientBoostingClassifier
from sklearn.ensemble import GradientBoostingRegressor
gbm = GradientBoostingClassifier(random_state=10)
gbm.fit(x,y)
然后使用GridSearchCV对各参数进行调试。
param_test = {‘n_estimators‘: range(20, 81, 10)}
gs = GridSearchCV(estimator=GradientBoostingClassifier(learning_rate=0.1, min_samples_split=300, min_samples_leaf=20, max_depth=8,max_features=‘sqrt‘, subsample=0.8, random_state=10), param_grid=param_test,scoring=‘roc_auc‘, iid=False, cv=5)
标签:class rand max cart 好的 lan 之间 个数 mat
原文地址:https://www.cnblogs.com/guesswhy/p/12882824.html