python下载安装教程,python基础教程
Python_GBDT分析(梯度推进机器)
####梯度增强回归树(梯度增强机器)
随机状态
#梯度推进回归树(梯度推进机器)
# GBDT
#对乳腺癌数据集应用GradientBoostingClassifier的示例。使用默认值100棵树,
#最大深度为3,学习率为0.1
从sklearn.ensemble导入GradientBoostingClassifier
X_train,X_test,y_train,y_test=train_test_split(
cancer.data,cancer.target,random_state=0)
gbrt=GradientBoostingClassifier(random _ state=0)
gbrt.fit(X_train,y_train)
打印(训练集的精确度:{:3f} 。格式(gbrt.score(X_train,y_train)))
打印(测试集的精确度:{:3f} 。格式(gbrt.score(X_test,y_test)))
训练集的精度:1.000
测试集的准确度:0.965
#因为训练集的准确率达到100%,所以很可能存在过拟合。为了减少过度拟合,我们可以限制最
#大深度加强预剪枝也能降低学习率:
gbrt=GradientBoostingClassifier(random _ state=0,max_depth=1)
gbrt.fit(X_train,y_train)
打印(训练集的精确度:{:3f} 。格式(gbrt.score(X_train,y_train)))
打印(测试集的精确度:{:3f} 。格式(gbrt.score(X_test,y_test)))
训练集的准确率:0.991
测试集上的准确度:0.972
gbrt=GradientBoostingClassifier(random _ state=0,learning_rate=0.01)
gbrt.fit(X_train,y_train)
打印(训练集的精确度:{:3f} 。格式(gbrt.score(X_train,y_train)))
打印(测试集的精确度:{:3f} 。格式(gbrt.score(X_test,y_test)))
训练集上的准确率:0.988
测试集的准确度:0.965
#降低模型复杂度的两种方法都降低了训练集的准确性,这与预期相同。在这个例子中,树被简化了
#的最大深度显著提高了模型性能,而降低学习速率仅略微提高了泛化性能。
#对于其他基于决策树的模型,我们也可以可视化特征的重要性,以便更好地理解模型。
#(图2-35)。既然我们用了100棵树,那么即使所有树的深度都是1,也要检查所有的树。
#不现实:
gbrt=GradientBoostingClassifier(random _ state=0,max_depth=1)
gbrt.fit(X_train,y_train)
绘图_特征_重要性_癌症(gbrt)
可以看出,梯度提升树的特征重要性与随机森林有点类似,但梯度提升已经完成。
有些功能完全被忽略了。
因为梯度提升方法和随机森林方法在相似的数据上都表现良好,所以一种常用的方法是
首先,尝试随机森林,它是健壮的。如果随机森林运行良好,但是预测时间过长,或者机器
通过第二个小数点来提高学习模型的准确性也很重要,因此切换到梯度提升通常是有用的。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。