返回

XGBoost实战代码指南:一步步构建预测模型

人工智能

  1. 数据准备

首先,我们需要加载数据并进行预处理。我们将使用天池大数据的 "商场中精确定位用户所在店铺" 竞赛的数据集。您可以从天池大数据的网站下载该数据集。

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 构建预测模型。您可以将这些知识应用到您的机器学习项目中,以提高模型的性能。