scikit adaboost feature_importance_
scikit adaboost feature_importance_
python中实现的adaboost算法究竟是如何为每个特征分配特征重要性的?我将它用于特征选择,我的模型在基于 feature_importance_ 的值应用特征选择方面表现更好。
当基本分类器是决策树时,feature_importances_
是 sklearn 的 adaboost 算法可用的属性。为了理解 feature_importances_
在 adaboost 算法中是如何计算的,您需要首先了解它是如何为决策树分类器计算的。
决策树分类器:
feature_importances_
将根据您选择的拆分标准而有所不同。当分割标准设置为"entropy"时:DecisionTreeClassifier(criterion='entropy')
,feature_importances_
相当于每个特征的信息增益。 Here is a tutorial 关于如何计算每个特征的信息增益(特别是幻灯片 7)。当您更改拆分标准时,feature_importances_
不再等同于信息增益,但是您计算它所采取的步骤与幻灯片 7 中采取的步骤类似(使用新的拆分标准代替熵)。
集成分类器:
现在让我们return回答您最初的问题,即它是如何确定 adaboost 算法的。 According to the docs:
This notion of importance can be extended to decision tree ensembles by simply averaging the feature importance of each tree
python中实现的adaboost算法究竟是如何为每个特征分配特征重要性的?我将它用于特征选择,我的模型在基于 feature_importance_ 的值应用特征选择方面表现更好。
当基本分类器是决策树时,feature_importances_
是 sklearn 的 adaboost 算法可用的属性。为了理解 feature_importances_
在 adaboost 算法中是如何计算的,您需要首先了解它是如何为决策树分类器计算的。
决策树分类器:
feature_importances_
将根据您选择的拆分标准而有所不同。当分割标准设置为"entropy"时:DecisionTreeClassifier(criterion='entropy')
,feature_importances_
相当于每个特征的信息增益。 Here is a tutorial 关于如何计算每个特征的信息增益(特别是幻灯片 7)。当您更改拆分标准时,feature_importances_
不再等同于信息增益,但是您计算它所采取的步骤与幻灯片 7 中采取的步骤类似(使用新的拆分标准代替熵)。
集成分类器:
现在让我们return回答您最初的问题,即它是如何确定 adaboost 算法的。 According to the docs:
This notion of importance can be extended to decision tree ensembles by simply averaging the feature importance of each tree