GBDT优化调参案例python
时间: 2023-11-07 20:59:08 浏览: 93
GBDT_Simple_Tutorial:python实现GBDT的回归、二分类以及多分类,将算法流程详情进行展示解读并可视化,庖丁解牛地理解GBDT。Gradient Boosting Decision Trees regression, dichotomy and multi-classification are realized based on python, and the details of algorithm flow are displayed, interpreted and visu
以下是一个GBDT优化调参案例的Python代码示例:
```python
import pandas as pd
from sklearn.ensemble import GradientBoostingRegressor
from sklearn.model_selection import GridSearchCV, train_test_split
# 加载数据集
data = pd.read_csv('data.csv')
# 将数据集划分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(data.drop('target', axis=1), data['target'], test_size=0.2, random_state=42)
# 定义GBDT模型
gbdt = GradientBoostingRegressor()
# 定义需要调节的参数范围
param_grid = {
'learning_rate': [0.1, 0.05, 0.01],
'n_estimators': [100, 200, 300],
'max_depth': [3, 4, 5],
'min_samples_split': [2, 3, 4],
'min_samples_leaf': [1, 2, 3]
}
# 使用GridSearchCV进行参数调优
gbdt_grid = GridSearchCV(gbdt, param_grid, cv=5, n_jobs=-1)
gbdt_grid.fit(X_train, y_train)
# 输出最优参数
print("Best parameters: ", gbdt_grid.best_params_)
# 在测试集上评估模型性能
print("Test R-squared score: ", gbdt_grid.score(X_test, y_test))
```
在上述代码中,首先加载数据集并将其划分为训练集和测试集。然后定义了一个GBDT模型,并指定需要调节的参数范围。接下来使用GridSearchCV进行参数调优,使用5折交叉验证,并设置n_jobs为-1以使用所有可用的CPU核心。最后输出最优参数和在测试集上的R2得分。可以根据需要调整参数范围和交叉验证的折数以获得更好的结果。
阅读全文