lightgbmRegressor实战python代码,及重要参数解释
时间: 2024-02-07 19:01:58 浏览: 104
以下是一个使用LightGBM进行回归任务的Python代码示例:
```python
import lightgbm as lgb
import numpy as np
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
# 加载数据集
boston = load_boston()
X_train, X_test, y_train, y_test = train_test_split(boston.data, boston.target, test_size=0.2, random_state=42)
# 将数据集转换成LightGBM需要的数据格式
train_data = lgb.Dataset(X_train, label=y_train)
test_data = lgb.Dataset(X_test, label=y_test)
# 设置参数
params = {
'boosting_type': 'gbdt',
'objective': 'regression',
'metric': 'mse',
'num_leaves': 31,
'learning_rate': 0.05,
'feature_fraction': 0.9,
'bagging_fraction': 0.8,
'bagging_freq': 5,
'verbose': 0
}
# 训练模型
num_round = 100
model = lgb.train(params, train_data, num_round)
# 预测
y_pred = model.predict(X_test)
# 评估
mse = mean_squared_error(y_test, y_pred)
print('MSE: ', mse)
```
这里是LightGBM模型的重要参数解释:
- `boosting_type`: 提升树类型,可选'gbdt', 'dart', 'goss'。默认为'gbdt'。
- `objective`: 目标函数。对于回归问题,设置为'regression'。对于分类问题,可选择'multiclass', 'binary'等。默认值为'gbdt'。
- `metric`: 评估指标。对于回归问题,可选'mse'、'rmse'等。对于分类问题,可选择'auc'等。默认值为'gbdt'。
- `num_leaves`: 每棵树的叶子节点数。
- `learning_rate`: 学习率。每次迭代时更新权重的步长。
- `feature_fraction`: 每次迭代中使用特征的比例。用于加速训练和防止过拟合。
- `bagging_fraction`: 每次迭代中使用的样本比例。用于加速训练和防止过拟合。
- `bagging_freq`: bagging的频率。每n次迭代执行一次bagging操作。
- `verbose`: 显示训练过程。默认为0,不显示。1表示显示。
阅读全文