当前位置:   article > 正文

Python机器学习--集成学习--XGBoost算法_xgb.score

xgb.score

XGBoost算法类型:

XGBoost算法:属于集成学习算法 ,与随机森林类似,也由多颗决策树组成
XGBoost算法既可以解决分类问题,也可以解决回归问题。
后一棵树是在前一个树的基础上生成的
后一棵树只需要拟合前K棵树和真实结果之间的误差
误差可以用负梯度表示;因此可叫 梯度提升树
XGboost是计算一阶导数和二阶导数,因此又称为 极端梯度提升树

集成学习算法

集成学习算法是通过训练多个学习器,然后把这些学习器组合起来,以达到更好的预测性能的目的。

集成学习算法的分类:

  1. Bagging:弱学习器的生成没有先后顺序,可以进行并行训练,如果是分类任务,则预测结果为多个弱学习器的预测结果取众数,如果是回归任务,则预测结果会取多个学习器的平均值。
  2. Boosting:弱学习器的生成有先后顺序,后一个弱学习器是之前学习器的基础上训练的,预测结果为多个弱学习器预测结果之和

极端梯度提升树

xgboost算法属于集成学习中的boosting类,又叫极端梯度提升树,是基于GBDT做的改进,但是基于的树模型都是回归树,因为回归树会计算出一个具体的值,这样才能比较真实结果和预测结果相差多少,在进行下一次的训练。

训练过程:一个模型一个模型串行训练
测试过程:一个样本输入,并行预测,预测结果相加,即可获得最终结果

XGBoost原理计算

如何构建每个棵树,从目标函数推导开始找到分裂标准

XGBoost算法特点

  • 算法的性能好

  • 算法的时间慢

    以时间和空间 换 效果

 XGBoost算法基于sklearn实现

  1. # 安装 pip install xgboost
  2. from xgboost import XGBClassifier # 分类
  3. from xgboost import XGBRegressor # 回归
  4. import matplotlib.pyplot as plt
  5. from sklearn.model_selection import train_test_split
  6. from xgboost import plot_tree
  7. from xgboost import to_graphviz # 导出dot文件
  8. from sklearn.datasets import load_iris
  9. plt.rcParams["font.sans-serif"] = "SimHei" # 设置支持中文字体
  10. # matplotlib本身支持负号显示的。增加了支持中文显示,负号不能正常显示
  11. plt.rcParams['axes.unicode_minus'] = False
  12. x, y = load_iris(return_X_y=True)
  13. out = load_iris()
  14. f_name = out.feature_names
  15. print("特征名称\n", f_name)
  16. X_train, X_test, y_train, y_test = train_test_split(x,
  17. y,
  18. test_size=0.2,
  19. stratify=y,
  20. random_state=1
  21. )
  22. # 实例化
  23. xgb = XGBClassifier(use_label_encoder=False,eval_metric='mlogloss')
  24. xgb.fit(X_train, y_train)
  25. acc = xgb.score(X_test, y_test)
  26. print("准确率", acc)
  27. print("训练集准确率", xgb.score(X_train, y_train))
  28. # xgboost的自带的显示树不支持中文
  29. # plot_tree(xgb, num_trees=0, fmap='iris2.fmap') # 第1棵树
  30. # plt.show()
  31. # plt.scatter(x[:,-2], x[:,-1], c=y)
  32. # plt.show()
  33. # 如果要显示中文,先输出为dot文件
  34. out = to_graphviz(xgb, fmap='iris2.fmap', num_trees=0)
  35. out.render("iris.dot")
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/97329
推荐阅读
相关标签
  

闽ICP备14008679号