数据城堡参赛代码实战篇(七)--- xgboost介绍及实战
作者:文文
个人公众号:小小挖掘机(ID:wAIsjwj)
前文传送门:
数据城堡参赛代码实战篇(一)---手把手教你使用pandas
数据城堡参赛代码实战篇(二)---使用pandas进行数据去重
数据城堡参赛代码实战篇(三)---我们来探究一个深奥的问题!
数据城堡参赛代码实战篇(四)---使用pandas合并数据表
数据城堡参赛代码实战篇(五)---使用sklearn解决分类问题
数据城堡参赛代码实战篇(六)---使用sklearn进行数据标准化及参数寻优
关注Python爱好者社区,回复"数据代码",即可获得本文数据代码。
小编们最近参加了数据城堡举办的“大学生助学金精准资助预测”比赛,以分组第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就是屠龙刀!
“号令天下,莫敢不从!倚天不出,谁与争锋?”
至此,本系列的文章已经全部更新完毕,希望能够对大家有所帮助。
Python爱好者社区历史文章大合集:
Python爱好者社区历史文章列表(每周append更新一次)
关注后在公众号内回复“课程”即可获取:
小编的Python入门免费视频课程!!!
【最新免费微课】小编的Python快速上手matplotlib可视化库!!!
崔老师爬虫实战案例免费学习视频。
陈老师数据分析报告制作免费学习视频。
玩转大数据分析!Spark2.X+Python 精华实战课程免费学习视频。