使用XGboost 预测的案例,并提供相应代码
时间: 2024-09-19 21:09:23 浏览: 51
XGBoost(Extreme Gradient Boosting)是一个强大的梯度提升库,常用于机器学习中的分类和回归任务。下面是一个简单的例子,展示如何使用Python的XGBoost库预测房价:
首先,假设我们有一个经典的房价预测数据集,如波士顿房价数据集(Boston Housing Dataset),我们可以加载数据并进行预处理。
```python
import xgboost as xgb
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
import pandas as pd
# 加载数据
boston = load_boston()
df = pd.DataFrame(boston.data, columns=boston.feature_names)
df['PRICE'] = boston.target # 将标签添加到DataFrame
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(df.drop('PRICE', axis=1), df['PRICE'], test_size=0.2, random_state=42)
# 定义DMatrix对象,它是XGBoost的数据结构
dtrain = xgb.DMatrix(X_train, label=y_train)
dtest = xgb.DMatrix(X_test, label=y_test)
# 设置模型参数
param = {
'eta': 0.3, # 学习率
'max_depth': 3, # 树的最大深度
'objective': 'reg:squarederror' # 目标函数,对于回归任务通常选择这个
}
# 训练模型
num_round = 100 # 迭代次数
bst = xgb.train(param, dtrain, num_round)
# 预测
y_pred = bst.predict(dtest)
```
在这个例子中,我们首先加载数据、划分数据集,然后创建了XGBoost的`DMatrix`对象。接着设置了训练参数,包括学习率、树的最大深度等。通过`xgb.train`函数训练模型,最后用模型对测试集进行预测。
阅读全文