XGBoost是一个快速且可扩展的梯度提升库,用于预测分析。以下是一个简单的Python代码示例,展示如何使用XGBoost库进行回归分析。
首先,确保安装了xgboost
库:
pip install xgboost
然后,使用XGBoost进行回归分析的示例代码:
import xgboost as xgb
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_boston
# 加载波士顿房价数据集
boston = load_boston()
X, y = boston.data, boston.target
# 划分数据集为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
# 转换数据为DMatrix格式,因为XGBoost要求输入的数据格式为DMatrix
dtrain = xgb.DMatrix(X_train, label=y_train)
dtest = xgb.DMatrix(X_test, label=y_test)
# 参数设置
params = {
'eta': 0.1, # 学习率
'max_depth': 6, # 树的最大深度
'objective': 'reg:linear', # 目标函数为线性回归
'eval_metric': 'mae' # 评估指标为平均绝对误差
}
# 训练模型
num_round = 10 # 训练轮数
watchlist = [(dtrain, 'train'), (dtest, 'test')]
model = xgb.train(params, dtrain, num_round, watchlist)
# 进行预测
y_pred = model.predict(xgb.DMatrix(X_test))
# 计算模型评估指标
from sklearn.metrics import mean_absolute_error
print('Mean Absolute Error:', mean_absolute_error(y_test, y_pred))
这段代码展示了如何加载数据、划分数据集、设置XGBoost参数、训练模型以及评估模型。在实际应用中,你可能需要根据数据和问题调整参数以获得最佳性能。