【问题标题】:How to use categorical data in decision tree in python如何在python的决策树中使用分类数据
【发布时间】:2019-04-03 13:15:51
【问题描述】:

我有一个数据集,我从中提取了 12 个特征,用于使用决策树进行共指解析任务。这些功能的一些示例如下:

  • distance_feature():根据句子数量,i和j之间的距离。输出:0 或 1

    • Ispronoun_feature():如果名词短语是代词,则此功能设置为 true。

    • appositive_feature():此功能检查j 是否与i 并列。

创建所有这些特征以从数据集中提取结果后,我不知道如何选择根节点或如何使用 sci-kit 学习决策树算法,因为数据不是结构化的并且是分类的。我读过的一篇论文提到了熵和信息增益,但这两个属性的所有示例都是基于结构化数据集的。

【问题讨论】:

    标签: python machine-learning scikit-learn


    【解决方案1】:

    如果你有不同类别的不同特性,并且不想花时间自己编码,我建议使用CatBoost 框架,它也比树的标准 scikit 实现更快。

    检查此kaggle 以进行实施!

    【讨论】:

      【解决方案2】:

      使用 one-hot 编码。

      df = pd.get_dummies(df, [categorical_columns_you_want_to_encode])
      

      如果最终列过多,您可以对列进行预处理以删除不常见的值 - 例如,小于 1% 以避免列过多。

      【讨论】:

      • 实际上数据不是结构化的 我提取 i 和 j 的数据如下: فند','ریکمیورفند','ریکمیورفند','اعیایشاروانسلیکلمند','افیریتشاروارسنسوداینسارت','وی','آنان','نماینیکایمیروس',' اخانستان','طالبان','سنرالمحمدرایمنش','محمداشریکنی']和j = ['شركرستوقارتتسلاتعالهاسانستان','سرپرستهارتمعارةاسانستان] span>
      • 然后我为 i 和 j 的这些值创建了 12 个特征。因此,每个特征都有基于特征规范的自己的输出
      • 嗯。如果您想训练一个模型,我很确定将这些数据结构化,例如将所有数据放在同一个数据框中,而不仅仅是拥有唯一的类别。基本上,回到源数据并在一行 -> 一个标签的基础上提取它们。
      • 其实任务是从非结构化数据中提取。所以更改数据集是如此复杂。因为我们只有一些文本具有不同属性的标签。
      • 分类思想是基于 1 个事件 -> 1 个结果。您需要从数据集中提取事件,并且由于您确定了 12 个特征,每个事件将有 12 列和 1 个结果(或更多),将它们放入字典或数组或 pandas 表中,sklearn 可以处理休息。
      猜你喜欢
      • 2018-10-20
      • 2013-12-01
      • 2018-06-13
      • 1970-01-01
      • 2021-03-15
      • 2015-12-29
      • 2018-09-06
      • 2018-06-26
      • 2015-07-30
      相关资源
      最近更新 更多