返回
XGBoost实战代码指南:一步步构建预测模型
人工智能
2024-02-14 21:14:55
- 数据准备
首先,我们需要加载数据并进行预处理。我们将使用天池大数据的 "商场中精确定位用户所在店铺" 竞赛的数据集。您可以从天池大数据的网站下载该数据集。
import pandas as pd
# 加载数据
data = pd.read_csv('mall_data.csv')
# 数据预处理
data.dropna(inplace=True)
data = data[data['shop_id'] != -1]
# 分割数据
X = data.drop('shop_id', axis=1)
y = data['shop_id']
2. 特征工程
接下来,我们需要对数据进行特征工程。特征工程是指对原始数据进行转换和组合,以提取出更有利于模型学习的特征。
# 特征工程
X['floor_category'] = X['floor'].astype('category')
X['floor_category'] = X['floor_category'].cat.codes
X['weekday_category'] = X['weekday'].astype('category')
X['weekday_category'] = X['weekday_category'].cat.codes
X['hour_category'] = X['hour'].astype('category')
X['hour_category'] = X['hour_category'].cat.codes
3. 模型训练
现在,我们可以开始训练 XGBoost 模型了。
import xgboost as xgb
# 模型训练
model = xgb.XGBClassifier()
model.fit(X, y)
4. 超参数优化
为了提高模型的性能,我们可以对 XGBoost 的超参数进行优化。
# 超参数优化
param_grid = {
'max_depth': [3, 5, 7],
'learning_rate': [0.1, 0.05, 0.01],
'n_estimators': [100, 200, 300]
}
grid_search = GridSearchCV(model, param_grid, cv=5)
grid_search.fit(X, y)
best_params = grid_search.best_params_
5. 模型评估
最后,我们需要对模型的性能进行评估。
# 模型评估
y_pred = model.predict(X)
accuracy = accuracy_score(y, y_pred)
print('准确率:', accuracy)
6. 结论
通过本指南,您已经了解了如何使用 XGBoost 构建预测模型。您可以将这些知识应用到您的机器学习项目中,以提高模型的性能。