帮我写一段代码,用LightGBM进行多分类任务
时间: 2023-06-04 11:07:34 浏览: 58
好的,以下是使用 LightGBM 进行多分类任务的代码示例:
```python
import lightgbm as lgb
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
# 加载数据集
iris = load_iris()
X, y = iris.data, iris.target
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
# 转换数据格式为 LightGBM 能够接受的格式
lgb_train = lgb.Dataset(X_train, y_train)
lgb_eval = lgb.Dataset(X_test, y_test, reference=lgb_train)
# 设置模型参数
params = {
'boosting_type': 'gbdt',
'objective': 'multiclass',
'num_class': 3,
'metric': 'multi_error',
'num_leaves': 31,
'learning_rate': 0.05,
'feature_fraction': 0.9,
'bagging_fraction': 0.8,
'bagging_freq': 5,
'verbose': 0
}
# 训练模型
gbm = lgb.train(params,
lgb_train,
num_boost_round=1000,
valid_sets=lgb_eval,
early_stopping_rounds=10)
# 预测测试集
y_pred = gbm.predict(X_test, num_iteration=gbm.best_iteration)
# 打印准确率
print("Accuracy:", sum(y_test == y_pred.argmax(axis=1)) / len(y_test))
```
这段代码用 LightGBM 实现了对 iris 数据集的多分类任务。在训练过程中,我们设置了多分类的目标函数为 `multiclass`,同时设定了类别数量、评价指标、学习率等参数。在预测时,我们利用训练好的模型预测测试数据,并计算准确率。
由于实现机器学习算法需要大量时间的实验和经验,因此建议你在实际应用时,参考文档和教程,根据具体情况调整模型参数和整体流程。