XGboost代码实现
XGboost的原生语言是c++,所以它的运行速度比较快。这里将会举例介绍一下python中如何调用XGboost,如果想了解XGboost的理论部分,可以参考这篇博客
例1: XGboost基本应用
数据集:以鸢尾花数据集为例
# /usr/bin/python
# -*- encoding:utf-8 -*-
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
import xgboost as xgb
def show_accuracy(a, b, tip):
acc = a.ravel() == b.ravel()
print (acc)
print (tip + '正确率:\t', float(acc.sum()) / a.size)
if __name__ == "__main__":
#加载iris数据集
data=load_iris()
X=data.data
Y=data.target
X_train,X_test,y_train,y_test=train_test_split(X,Y,test_size=0.25,random_state=1) #训练集和测试集
data_train = xgb.DMatrix(X_train,label=y_train)
data_test = xgb.DMatrix(X_test,label=y_test)
print (data_train)
print (type(data_train))
# 设置参数
param = {'max_depth': 3, 'eta': 1, 'silent': 1, 'objective': 'multi:softmax','num_class': 3} # logitraw
watchlist = [(data_test, 'eval'), (data_train, 'train')]
n_round = 7
bst = xgb.train(param, data_train, num_boost_round=4, evals=watchlist)
y_hat = bst.predict(data_test)
show_accuracy(y_hat, y_test, 'XGBoost ')
结果显示:
xgb.train(),bst.predicty
bst = xgb.train(param, data_train, num_boost_round=4, evals=watchlist)
y_hat = bst.predict(data_test)
xgb.train()和xgb.predict是xgboost训练和测试的方式
xgb.train()函数原型:
xgboost.train(params,dtrain,num_boost_round=10,evals=(),obj=None,feval=None,maxim