【发布时间】:2016-08-08 12:15:14
【问题描述】:
在 python 中实现的 adaboost 算法究竟是如何为每个特征分配特征重要性的?我将它用于特征选择,我的模型在基于 feature_importance_ 的值应用特征选择时表现更好。
【问题讨论】:
标签: feature-selection adaboost ensemble-learning
在 python 中实现的 adaboost 算法究竟是如何为每个特征分配特征重要性的?我将它用于特征选择,我的模型在基于 feature_importance_ 的值应用特征选择时表现更好。
【问题讨论】:
标签: feature-selection adaboost ensemble-learning
当基分类器是决策树时,feature_importances_ 是 sklearn 的 adaboost 算法可用的属性。为了理解feature_importances_在adaboost算法中是如何计算的,首先需要了解它是如何为决策树分类器计算的。
决策树分类器:
feature_importances_ 将根据您选择的拆分条件而有所不同。当分割标准设置为“熵”时:DecisionTreeClassifier(criterion='entropy')feature_importances_相当于每个特征的信息增益。 Here is a tutorial 关于如何计算每个特征的信息增益(特别是幻灯片 7)。当您更改拆分标准时,feature_importances_ 不再等同于信息增益,但是您计算它的步骤与幻灯片 7 中的步骤相似(使用新的拆分标准代替熵)。
集成分类器:
现在让我们回到您最初的问题,即如何确定 adaboost 算法。 According to the docs:
这种重要性概念可以通过简单地平均每棵树的特征重要性来扩展到决策树集合
【讨论】: