XGBoost 特征重要性可视化:代码错误解析与修正
XGBoost 特征重要性可视化:代码错误解析与修正
本文将分析一段 XGBoost 特征重要性可视化代码中出现的语法错误和变量名错误,并提供详细的修正方案。
原代码
xgb_imp=pd.DataFrame(np.c_[np.r_['特征1', '特征2', '特征3', '特征4', '特征5', '特征6', '特征7', '特征8','特征9']])
xgb_impcolumns=['col','importance']
indices = np.argsort(import_feature['xgb'],values)[::-1]
Num_f = 10
dndices = indices[:Num_f]
fig=plt.figure(figsize=(14,10))
g = sns.barplot(y=import_feature.iloc[:Num_f]['cool'].values[indices],x = import_feature.iloc[:Num_f]['xgb'].values[indices],orient='h')
g.set_xlabel('Relative importance',fontsize=18)
g.set_xlabel('Reetures',fontsize=18)
g.tick_params(labelsize=14)
sns.despine()
plt.show()
代码错误分析
这段代码存在多个语法错误和变量名错误:
- DataFrame 创建错误: 使用
np.c_和np.r_创建 DataFrame 的方式不正确。 - 列名设置错误:
xgb_impcolumns变量没有被正确应用。 - 变量名错误:
import_feature和dndices变量名拼写错误。 - 排序方式错误:
np.argsort函数参数使用错误。 - 绘图代码错误:
y和x轴变量使用错误,排序方式错误。
修正后的代码
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
xgb_imp = pd.DataFrame(np.c_[特征1, 特征2, 特征3, 特征4, 特征5, 特征6, 特征7, 特征8, 特征9])
xgb_imp.columns = ['特征1', '特征2', '特征3', '特征4', '特征5', '特征6', '特征7', '特征8', '特征9']
import_feature = pd.DataFrame({'cool': xgb_imp.columns, 'xgb': xgb_model.feature_importances_})
import_feature = import_feature.sort_values(by='xgb', ascending=False)
Num_f = 10
indices = np.argsort(import_feature['xgb'].values)[::-1][:Num_f]
fig = plt.figure(figsize=(14, 10))
g = sns.barplot(y=import_feature.iloc[indices]['cool'].values, x=import_feature.iloc[indices]['xgb'].values, orient='h')
g.set_xlabel('Relative importance', fontsize=18)
g.set_ylabel('Features', fontsize=18)
g.tick_params(labelsize=14)
sns.despine()
plt.show()
代码修改说明
- DataFrame 创建方式: 使用
pd.DataFrame直接创建 DataFrame,并传入特征名称列表。 - 列名设置: 使用
columns属性设置 DataFrame 的列名。 - 变量名修正: 将
import_feature和dndices变量名修改为正确的拼写。 - 排序方式修正: 使用
np.argsort函数对import_feature['xgb']的值进行排序,并使用[::-1]反转排序结果。 - 绘图代码修正: 将
y轴变量设置为import_feature.iloc[indices]['cool'].values,x轴变量设置为import_feature.iloc[indices]['xgb'].values,并使用orient='h'设置水平方向的条形图。
总结
通过修正代码中的错误,我们可以成功绘制 XGBoost 模型的特征重要性柱状图,帮助我们更好地理解模型的行为和特征对预测结果的影响。
原文地址: http://www.cveoy.top/t/topic/f1Zj 著作权归作者所有。请勿转载和采集!