数据城堡参赛代码实战篇(七)--- xgboost介绍及实战

时间:2022-05-08
本文章向大家介绍数据城堡参赛代码实战篇(七)--- xgboost介绍及实战,主要内容包括1 简单介绍、2 Python中使用xgboost、3 总结、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。

小编们最近参加了数据城堡举办的“大学生助学金精准资助预测”比赛,以分组第19名的成绩进入了复赛,很激动有木有!在上一篇文章中,小编介绍了使用sklearn进行数据标准化和通过网格搜索进行参数寻优的过程,至此,我们已经能够得到预测结果并上传。但小编们上传结果时所采取的结果并不是之前提到过的算法,而使用的是xgboost算法。今天,小编将带你一探xgboost算法的究竟!

1 简单介绍

xgboost的全称是eXtreme Gradient Boosting。它是Gradient Boosting Machine的一个c++实现。创建之由为受制于现有库的计算速度和精度,xgboost最大的特点在于,它能够自动利用CPU的多线程进行并行,同时在算法上加以改进提高了精度。现在xgboost已封装成了python库,并制作成了xgboost工具的R语言接口提交到了CRAN上,也有用户将其封装成了 julia库。

对于xgboost的原理,小编其实也不太懂,哈哈。如果大家想要深入了解其原理,推荐两篇博客:

http://www.tuicool.com/articles/r2Y36bR

http://blog.csdn.net/sb19931201/article/details/52557382

2 Python中使用xgboost

windows下安装xgboost参照如下博客(小编并未亲身实现):http://blog.csdn.net/zhuqiuhui/article/details/50450732

mac下安装xgboost参照如下博客(小编亲测可用):http://blog.csdn.net/kamendula/article/details/53166247

接下来,小编将给出一套完整的使用xgboost的代码:

import pandas as pd
import numpy as np
from sklearn.preprocessing import StandardScaler
from xgboost import XGBClassifier

#读入数据
train_x = pd.read_csv('train_x.csv', index_col=0)
train_y = pd.read_csv('train_y.csv', index_col=0, header=None)
test_x = pd.read_csv('test.csv', index_col=0)

train_ys = np.array(train_y).reshape(-1)

#定义训练集和测试集需要的维度
predict = ['order', 'en1','sum', 'time_stamp', 'consumeavg']
train_x=train_x[predict]
text_x=test_x[predict]

#数据标准化
ss = StandardScaler()
for c in predict:
    train_x[c] = ss.fit_transform(train_x[c])
    test_x[c] = ss.transform(test_x[c])

#定义模型
xgb=XGBClassifier()

#训练模型
xgb.fit(train_x,train_y)

#得到预测结果
result = xgb.predict(test_x)

可以看到,xgboost使用与sklearn中其他的分类算法使用完全相同,定义模型之后使用fit函数进行训练,并通过predict函数得到测试集的预测结果。

3 总结

本篇,小编带你使用了xgboost分类器,用在博客中看到的一句话来总结下xgboost的强大:

如果把数据竞赛比作金庸笔下的武林,那么XGBoost就是屠龙刀! “号令天下,莫敢不从!倚天不出,谁与争锋?”

至此,本系列的文章已经全部更新完毕,希望能够对大家有所帮助。

想了解更多? 那就赶紧来关注我们