假设您有一个可用的SciPy环境,可以使用pip轻松安装 XGBoost。 例如:
sudo pip install xgboos
您可以在XGBoost安装说明(https://xgboost.readthedocs.io/en/latest/build.html)中了解有关在您的平台上安装和构建XGBoost的更多信息。
XGBoost模型可以使用包装类直接在scikit-learn框架中使用,XGBClassifier用于分类,XGBRegressor用于回归问题。 这是在Python中使用XGBoost的推荐方法。 从 UCI 机器学习库下载 Pima Indians 糖尿病数据集。它是二进制分类的一个很好的测试数据集,因为所有输入变量都是数字的,这意味着问题可以直接建模而无需数据准备。 我们可以通过构造它并调用**model.fit()**函数来训练XGBoost 模型进行分类:
model = XGBClassifier()
model.fit(X_train, y_train)
然后可以通过在新数据上调用**model.predict()**函数来使用该模型进行预测。
y_pred = model.predict(X_test)
我们可以将这些结合起来如下:
# First XGBoost model for Pima Indians dataset
from numpy import loadtxt
from xgboost import XGBClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
# load data
dataset = loadtxt('pima-indians-diabetes.csv', delimiter=",")
# split data into X and y
X = dataset[:,0:8]
Y = dataset[:,8]
# split data into train and test sets
seed = 7
test_size = 0.33
X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size=test_size, random_state=seed)
# fit model on training data
model = XGBClassifier()
model.fit(X_train, y_train)
# make predictions for test data
y_pred = model.predict(X_test)
predictions = [round(value) for value in y_pred]
# evaluate predictions
accuracy = accuracy_score(y_test, predictions)
print("Accuracy: %.2f%%" % (accuracy * 100.0))
在下一课中,我们将研究如何使用早期停止来限制过度拟合。