【问题标题】:Base estimator meaning in the context of Isolation forest [closed]隔离森林背景下的基本估计量含义[关闭]
【发布时间】:2021-01-09 19:17:36
【问题描述】:

我正在努力理解隔离森林中“基础估计器”的含义。

scikit-learn中Isolation Forest方法的参数之一是n_estimators;它在sklearn docs 中的描述如下:

集成中基本估计器的数量。

我尝试解释有关 Sklearn 的文档以及 Google 和 Youtube 上的内容 理解这个术语,但没有运气。有人可以解释一下它在 IF 上下文中的含义吗?

【问题讨论】:

    标签: machine-learning scikit-learn ensemble-learning


    【解决方案1】:

    tl;dr:它是original paper中称为隔离树(iTree)的一种特殊决策树:

    我们在本文中表明,可以有效地构建树结构来隔离每个实例。 [...] 树的这种隔离特性构成了我们检测异常的方法的基础,我们将这种树称为隔离树或 iTree。

    建议的方法称为 Isolation Forest 或 iForest,为给定的数据集构建 iTree 集合 [...]


    所有集成方法(Isolation Forest belongs)都由基本估计器组成(即它们正是基本估计器的集成);来自sklearn guide

    集成方法的目标是结合使用给定学习算法构建的多个基本估计器的预测,以提高单个估计器的泛化性/鲁棒性。

    例如,在Random Forest(可以说是隔离森林名称的灵感来源)中,这个基础估计器是一个简单的决策树:

    n_estimators : int, default=100

    森林中的树木数量。

    类似Gradient Boosting Trees 等算法(尽管 scikit-learn 文档将它们称为“boosting stage”,但它们仍然是决策树)、Extra Trees 等。

    在所有这些算法中,基本估计量是固定的(尽管它的具体参数可以根据集合参数中的设置而变化)。还有另一类集成方法,其中用作基本估计器的确切模型也可以由相应的参数base_estimator 设置;例如,这里是Bagging Classifier

    base_estimator : object, default=None

    适合数据集随机子集的基本估计器。如果没有,则基本估计器是决策树。

    AdaBoost:

    base_estimator : object, default=None

    构建增强集成的基本估计器。 [...] 如果没有,那么基本估计是DecisionTreeClassifier(max_depth=1)

    从历史上看,第一个集成是使用各种版本的决策树构建的,并且可以说今天仍然是决策树(或变体,如 iTrees)几乎专门用于此类集成;引用我在Execution time of AdaBoost with SVM base classifier 中的另一个答案:

    Adaboost(和类似的集成方法)是使用决策树作为基分类器(更具体地说,决策 stumps,即深度仅为 1 的 DT)构思的;如果您没有明确指定 base_classifier 参数,那么今天仍然有充分的理由假定它的值为 DecisionTreeClassifier(max_depth=1)。 DT 适合这种集成,因为它们本质上是不稳定分类器,而 SVM 则不是这种情况,因此后者在用作基分类器时不会提供太多功能。

    【讨论】:

      猜你喜欢
      • 2019-06-29
      • 1970-01-01
      • 1970-01-01
      • 2018-09-10
      • 2019-07-11
      • 2020-11-16
      • 2019-08-02
      • 2019-07-20
      • 2017-08-21
      相关资源
      最近更新 更多