lightgbm算法例题
时间: 2024-12-29 07:15:41 浏览: 12
### LightGBM 算法示例
#### 使用 LightGBM 进行分类任务的 Python 示例代码框架
为了更好地理解如何应用 LightGBM,在下面提供了一个完整的 Python 代码框架,用于加载数据集、预处理、训练模型以及评估性能。
```python
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score, f1_score, roc_auc_score
from lightgbm import LGBMClassifier
# 加载数据集 (此处以鸢尾花数据集为例)
data = pd.read_csv('iris.csv') # 假设文件名为 iris.csv
X = data.drop(columns=['species'])
y = data['species']
# 将类别标签转换为数值形式
y = y.map({'setosa': 0, 'versicolor': 1, 'virginica': 2})
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.3, random_state=42)
# 初始化并训练模型
lgbm = LGBMClassifier(random_state=42)
lgbm.fit(X_train, y_train)
# 预测
y_pred = lgbm.predict(X_test)
y_prob = lgbm.predict_proba(X_test)
# 模型评估
accuracy = accuracy_score(y_test, y_pred)
f1 = f1_score(y_test, y_pred, average='weighted')
roc_auc = roc_auc_score(pd.get_dummies(y_test), y_prob, multi_class='ovr')
print(f"LightGBM模型 - 准确率: {accuracy:.4f}, F1分数: {f1:.4f}, AUC-ROC: {roc_auc:.4f}")
```
这段代码展示了如何使用 `LGBMClassifier` 来构建一个简单的分类器,并对其进行了基本的性能评估[^3]。
#### 关于 LightGBM 的练习题建议
对于想要深入学习 LightGBM 的读者来说,可以尝试完成以下几个练习:
1. 修改上述例子中的参数设置(如 n_estimators 或 max_depth),观察这些变化对最终结果的影响。
2. 更换不同的数据集来验证 LightGBM 的泛化能力;可以选择 UCI Machine Learning Repository 中其他公开可用的数据集来进行实验。
3. 实现交叉验证功能,通过多次划分训练/测试集合的方式提高评价指标的可靠性。
4. 探索更多高级特性,比如特征重要性分析、早停机制等,进一步优化模型表现。
阅读全文