Xgboost学习笔记+代码实践

本文主要记录学习xgboost时的学习笔记。同时b站上有一个博主的视频讲的非常好,也推荐给大家,本文既是建立在这个视频的基础上进行学习以及记录。

传送:Xgboost躺懂

以下为Xgboost学习时的思维导图。(与视频中相比缺少了系统设计的模块)

 

 

 

 

以下为精确贪婪算法的伪代码示例:摘自xgboost好文 贪心算法

 

 

η是一个超参,一般选取为0.1,用于防止模型的过拟合风险。 

 

 以下并附上Xgboost代码处理:

import math
import matplotlib.pyplot as plt
from xgboost import XGBClassifier
# 这是Sklearn API的实现方式
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error,roc_curve,auc,confusion_matrix
import seaborn as sns
iris_data = datasets.load_iris()
x_data = iris_data.data
y_data = iris_data.target
x_train,x_test,y_train,y_test = train_test_split(x_data,y_data,train_size=0.8,shuffle=True)   # 加载数据集
xgb_rg = XGBClassifier(
    n_estimators = 20,
    max_depth = 5,
    learning_rate = 0.1
)     # 分别为迭代次数,树最大深度,以及学习率的设置
# 以下就是训练过程,训练时可以采用边训练边测试的方式
xgb_rg.fit(x_train,y_train,eval_set = [(x_train,y_train),(x_test,y_test)])
ypred = xgb_rg.predict(x_test)
math.sqrt(mean_squared_error(ypred,y_test))
# 开始绘制roc曲线   --->由于这里是做的回归任务,不用绘制roc曲线
# fpr,tpr,_ = roc_curve(y_test,ypred,pos_label=2)
# roc_auc = auc(fpr,tpr)
# plt.figure(1)
# plt.plot(fpr,tpr,'k--',label = 'roc-auc{:.2f}'.format(roc_auc))
# plt.plot([0,1],[0,1],'--',c = 'red')
# plt.show()

# 绘制混淆矩阵
# confusion = confusion_matrix(y_test,ypred)
# print('The confusion_matrix result is {}'.format(confusion))
# plt.figure(figsize=(5,4))
# sns.heatmap(confusion,annot=True,cmap='Blues')
# plt.xlabel('Predicted labels')
# plt.ylabel('True labels')
# plt.show()

以上代码根据已有的iris数据集进行分类分析,最终绘制roc曲线以及混淆矩阵进行模型评估。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

藤宫博野

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值