【问题标题】:How to set up ID3 algorith in scikit-learn?如何在 scikit-learn 中设置 ID3 算法?
【发布时间】:2015-08-28 18:27:29
【问题描述】:

对于各种类型的树(ID3、CART、C4.5)有一个 DecisionTreeClassifier,但我不明白应该传递哪些参数来模拟传统的 ID3 algorithm 行为?

【问题讨论】:

    标签: python tree machine-learning scikit-learn


    【解决方案1】:

    文档说

    scikit-learn 使用 CART 算法的优化版本。

    因此您可能无法模拟教科书中的 ID3。

    http://scikit-learn.org/stable/modules/tree.html#tree-algorithms-id3-c4-5-c5-0-and-cart

    【讨论】:

      【解决方案2】:

      我不确定这是 sklearn 实现和 ID3 算法之间的唯一区别,但据我所知,您必须将 ID3 的标准从“gini”更改为“entropy”

      DecisionTreeClassifier(criterion="entropy")
      

      【讨论】:

      • 您知道如何提供分类属性作为输入吗?例如,X = [[True, False, True], [False,False, True], [True, True, False]], Y = [Class1, Class2, Class3]。在示例中,它们仅显示数字数据。谢谢
      • @AnkurBhatia 老问题,但以防万一有人仍然想知道,scikit 目前只支持数字数据。有关更多详细信息,请参阅他们的文档:scikit-learn.org/stable/modules/tree.html#
      • 要将分类数据转换为数值,您可以使用 scikit 的 preprocessing.OrdinalEncoder 以这种方式处理您的数据。
      • 此外,它仍在使用 CART。仅使用熵而不是 gini 作为标准。
      【解决方案3】:

      通过以下方式使用 Id3Estimator:

      from id3 import Id3Estimator
      estimator = Id3Estimator()
      

      然后拟合您的数据

      estimator.fit(X, y)
      

      【讨论】:

        猜你喜欢
        • 2013-07-16
        • 2021-09-16
        • 2018-03-18
        • 2023-04-03
        • 2013-04-10
        • 2016-07-15
        • 2018-09-23
        • 2016-03-12
        • 2014-07-13
        相关资源
        最近更新 更多