lgbm特征重要性可视化
时间: 2023-08-02 17:10:36 浏览: 228
lightgbmm_lgbm_lightGBM_
5星 · 资源好评率100%
好的,我可以帮你解决这个问题。LGBM(Light Gradient Boosting Machine)是一种常用的机器学习算法,它能够对数据进行快速高效的训练和预测。而特征重要性是指在模型中哪些特征对结果的影响更大,因此可视化特征重要性可以帮助我们更好地了解模型的表现。
以下是使用Python和LGBM包进行特征重要性可视化的代码:
```python
import lightgbm as lgb
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
# 加载数据
data = lgb.Dataset(X_train, label=y_train)
# 设置模型参数
params = {'boosting_type': 'gbdt',
'objective': 'regression',
'metric': {'l2', 'rmse'},
'num_leaves': 31,
'learning_rate': 0.05,
'feature_fraction': 0.9}
# 模型训练
lgb_model = lgb.train(params, data, num_boost_round=100)
# 特征重要性
importance = lgb_model.feature_importance()
feature_name = lgb_model.feature_name()
# 将特征重要性进行归一化
importance = np.array(importance) / np.sum(importance)
# 将特征重要性按照从高到低进行排序
idx_sorted = np.argsort(importance)[::-1]
# 可视化
sns.set(font_scale=1.2)
fig, ax = plt.subplots(figsize=(8, 6))
sns.barplot(x=importance[idx_sorted][:20], y=feature_name[idx_sorted][:20], color='blue')
plt.xlabel('Normalized Importance')
plt.ylabel('Features')
plt.title('Top 20 Feature Importance')
plt.show()
```
在这段代码中,我们首先加载数据并设置LGBM模型的参数。然后,我们使用训练数据训练模型,并使用feature_importance()函数计算特征重要性。接着,我们将特征重要性进行归一化,并按照从高到低的顺序排序。最后,使用seaborn包中的barplot函数进行可视化。
你可以根据自己的数据和需求进行调整和修改,希望对你有所帮助!
阅读全文