Scikit learn XGBoost绘图重要性F分数值>;100
我已经为我的模型中的所有特性绘制了XGBoost特性重要性,如下图所示。但是您可以看到图中的F分数值没有标准化(不在0到100的范围内)。如果你知道为什么会这样,请告诉我。我是否需要在plot_重要性函数中传递任何参数以进行规范化Scikit learn XGBoost绘图重要性F分数值>;100,scikit-learn,xgboost,xgbclassifier,Scikit Learn,Xgboost,Xgbclassifier,我已经为我的模型中的所有特性绘制了XGBoost特性重要性,如下图所示。但是您可以看到图中的F分数值没有标准化(不在0到100的范围内)。如果你知道为什么会这样,请告诉我。我是否需要在plot_重要性函数中传递任何参数以进行规范化 绘图的特征重要性由其参数决定 重要性\u类型,默认为重量。有3个选项:weight、gain和cover。不过,它们都不是一个百分比 对于此方法,请从中选择: 重要性类型(str,默认为“权重”)–重要性的计算方式:“权重”、“增益”或“覆盖” “权重”是特征在树中
绘图的特征重要性由其参数决定
重要性\u类型
,默认为重量
。有3个选项:weight
、gain
和cover
。不过,它们都不是一个百分比
对于此方法,请从中选择:
重要性类型(str,默认为“权重”)–重要性的计算方式:“权重”、“增益”或“覆盖”
- “权重”是特征在树中出现的次数
- “增益”是使用该功能的拆分的平均增益
- “覆盖率”是使用功能的分割的平均覆盖率,其中覆盖率定义为受分割影响的样本数
功能\u重要性\u
按照您的意愿进行规范化,您可以自己绘制,但它将是一个手工制作的图表
首先,确保将分类器的importance\u type
参数设置为上面列举的选项之一(构造函数的默认值为gain
,因此如果不更改它,您将看到与plot\u importances
绘制的内容不符)
best_model=xgb.xgb分类器(重要性_type='weight')
之后,您可以尝试以下内容:
将熊猫作为pd导入
最佳模型、功能和重要性_
#在我的玩具示例中:数组([0.21473685,0.19157895,0.28842106,0.30526316],dtype=float32)
最佳模型特征重要性总和()
# 1.0
#构建一个具有重要功能的简单数据框架
#您可以将命名fN更改为更具可读性的名称
fs=len(最佳模型、特征、重要性)
df=pd.DataFrame(zip([f“f{n}”表示范围内的n(fs)],最佳模型。特征重要性,列=['Features','feature importances'])
df=df.设置索引(“特征”).排序值(“特征重要性”)
#构建水平条字符
ax=df.plot.barh(颜色='red',alpha=0.5,网格=True,图例=False,title='Feature importance',figsize=(15,5))
#注释条形图,根据本SO答案改编:
# https://stackoverflow.com/questions/25447700/annotate-bars-with-values-on-pandas-bar-plots
对于p,zip中的值(ax.patches,df['Feature Importance']):
ax.注释(圆形(值,2),(p.get_width()*1.005,p.get_y()*1.005))
通过这种方法,我得到了如下图表,与原始图表非常接近:
绘图的特征重要性由其参数决定
重要性\u类型
,默认为重量
。有3个选项:weight
、gain
和cover
。不过,它们都不是一个百分比
对于此方法,请从中选择:
重要性类型(str,默认为“权重”)–重要性的计算方式:“权重”、“增益”或“覆盖”
- “权重”是特征在树中出现的次数
- “增益”是使用该功能的拆分的平均增益
- “覆盖率”是使用功能的分割的平均覆盖率,其中覆盖率定义为受分割影响的样本数
功能\u重要性\u
按照您的意愿进行规范化,您可以自己绘制,但它将是一个手工制作的图表
首先,确保将分类器的importance\u type
参数设置为上面列举的选项之一(构造函数的默认值为gain
,因此如果不更改它,您将看到与plot\u importances
绘制的内容不符)
best_model=xgb.xgb分类器(重要性_type='weight')
之后,您可以尝试以下内容:
将熊猫作为pd导入
最佳模型、功能和重要性_
#在我的玩具示例中:数组([0.21473685,0.19157895,0.28842106,0.30526316],dtype=float32)
最佳模型特征重要性总和()
# 1.0
#构建一个具有重要功能的简单数据框架
#您可以将命名fN更改为更具可读性的名称
fs=len(最佳模型、特征、重要性)
df=pd.DataFrame(zip([f“f{n}”表示范围内的n(fs)],最佳模型。特征重要性,列=['Features','feature importances'])
df=df.设置索引(“特征”).排序值(“特征重要性”)
#构建水平条字符
ax=df.plot.barh(颜色='red',alpha=0.5,网格=True,图例=False,title='Feature importance',figsize=(15,5))
#注释条形图,根据本SO答案改编:
# https://stackoverflow.com/questions/25447700/annotate-bars-with-values-on-pandas-bar-plots
对于p,zip中的值(ax.patches,df['Feature Importance']):
ax.注释(圆形(值,2),(p.get_width()*1.005,p.get_y()*1.005))
通过这种方法,我得到了如下图表,与原始图表非常接近:
我对绘图的重要性也有同样的问题!你能解决这个问题吗?谢谢我对情节的重要性也有同样的问题!你能解决这个问题吗?谢谢