xgboost预测连续变量
时间: 2023-07-20 13:22:23 浏览: 450
下面是使用XGBoost进行回归预测连续变量的Python代码示例:
```python
import xgboost as xgb
import numpy as np
from sklearn.metrics import mean_squared_error
# 准备训练数据
train_data = np.random.rand(100, 10)
train_label = np.random.rand(100)
# 定义模型参数
params = {'objective': 'reg:squarederror', 'eval_metric': 'rmse'}
# 划分训练集和验证集
X_train, X_valid = train_data[:80, :], train_data[80:, :]
y_train, y_valid = train_label[:80], train_label[80:]
# 训练模型
dtrain = xgb.DMatrix(X_train, label=y_train)
dvalid = xgb.DMatrix(X_valid, label=y_valid)
watchlist = [(dtrain, 'train'), (dvalid, 'valid')]
bst = xgb.train(params, dtrain, num_boost_round=1000, evals=watchlist, early_stopping_rounds=10)
# 准备测试数据
test_data = np.random.rand(20, 10)
# 进行预测
dtest = xgb.DMatrix(test_data)
preds = bst.predict(dtest)
print(preds)
```
解释一下代码:
1. 首先导入XGBoost库、NumPy库和sklearn库中的mean_squared_error函数。
2. 准备训练数据,这里使用NumPy生成了100行10列的随机矩阵作为训练数据,以及100个随机数作为训练标签。
3. 定义模型参数,这里使用了回归任务的目标函数和评估指标。
4. 将训练数据划分为训练集和验证集,使用80%的数据作为训练集,20%的数据作为验证集。
5. 使用训练数据和模型参数训练模型,其中将训练数据和标签转换为DMatrix格式,同时使用early_stopping_rounds参数实现早期停止,以避免过拟合。
6. 准备测试数据,这里使用NumPy生成了20行10列的随机矩阵作为测试数据。
7. 使用训练好的模型对测试数据进行预测,同样需要将测试数据转换为DMatrix格式。
8. 输出预测结果。
最后使用sklearn库中的mean_squared_error函数计算模型的均方误差,以评估模型的预测效果。
阅读全文
相关推荐

















