欢迎访问宙启技术站
智能推送

使用plot_importance()函数可视化特征重要性评估结果

发布时间:2024-01-11 17:57:57

plot_importance()函数是LightGBM模型中的一种可视化工具,用于展示特征重要性评估结果。该函数可以帮助我们确定哪些特征对模型的预测结果产生了更大的影响。

使用plot_importance()函数有以下几个步骤:

1. 导入必要的库和数据集。

import lightgbm as lgb
import numpy as np
import pandas as pd
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split

2. 加载数据集,并将其分为训练集和测试集。

data = load_iris()
X_train, X_test, y_train, y_test = train_test_split(data.data, data.target, test_size=0.2, random_state=42)

3. 构建LightGBM模型并训练。

lgb_train = lgb.Dataset(X_train, y_train)
lgb_test = lgb.Dataset(X_test, y_test, reference=lgb_train)

params = {
    'boosting_type': 'gbdt',
    'objective': 'multiclass',
    'metric': 'multi_logloss',
    'num_class': 3,
    'verbose': -1
}

model = lgb.train(params, lgb_train, valid_sets=[lgb_train, lgb_test], num_boost_round=100, early_stopping_rounds=10)

4. 使用plot_importance()函数绘制特征重要性图像。

import matplotlib.pyplot as plt

lgb.plot_importance(model)
plt.show()

以下是一个完整的使用示例:

import lightgbm as lgb
import numpy as np
import pandas as pd
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
import matplotlib.pyplot as plt

# 加载数据集
data = load_iris()
X_train, X_test, y_train, y_test = train_test_split(data.data, data.target, test_size=0.2, random_state=42)

# 构建LightGBM模型
lgb_train = lgb.Dataset(X_train, y_train)
lgb_test = lgb.Dataset(X_test, y_test, reference=lgb_train)

params = {
    'boosting_type': 'gbdt',
    'objective': 'multiclass',
    'metric': 'multi_logloss',
    'num_class': 3,
    'verbose': -1
}

model = lgb.train(params, lgb_train, valid_sets=[lgb_train, lgb_test], num_boost_round=100, early_stopping_rounds=10)

# 绘制特征重要性图像
lgb.plot_importance(model)
plt.show()

运行该代码,将得到一个展示特征重要性的图像。图像中的特征按照其重要性从高到低排列,并显示了每个特征对模型的贡献程度。越重要的特征在图像中的高度越高。通过分析这个图像,我们可以确定哪些特征对模型的预测结果产生了更大的影响,从而做出相应的特征选择或工程处理。