python下载安装教程,python基础教程

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: