决策树如何识别给定文本数据集中的特征?

Posted

技术标签:

【中文标题】决策树如何识别给定文本数据集中的特征?【英文标题】:How does decision tree recognize the features from a given text dataset? 【发布时间】:2020-01-24 12:43:42 【问题描述】:

我有一个二进制分类文本数据,其中有 10 个文本特征。

我使用诸如 Bag of words、TFIDF 等各种技术将它们转换为数字。

我使用 hstack() 在处理完所有这些特征后再次将它们堆叠在一起。

将它们转换为数值特征后,每个特征现在都有大量列,因此转换后,我的数据集大约有 3000 列。

我的问题是,当我将此数据集放入决策树分类器 (sklearn) 时,分类器如何识别属于特定特征的列?

例如,3000 列中的前 51 列属于 US_states Bag of words。

现在,DT 将如何识别它?

PS:处理前的数据在pandas Dataframe中。

处理后是一个堆叠的numpy数组被输入到分类器中。

【问题讨论】:

欢迎来到 SO;你问的不清楚 - 你是什么意思“认识”? 简短回答:不会。 DT 不关心某个功能是否称为“US_states”或其他名称。 DT 必须知道一个特征中的类别,然后在计算各种特征的熵并找出信息增益后决定它需要多少个子节点。这就是为什么我问“认识” 这不是关于编程,而是关于决策树和 tfidf 算法,因此属于 datascience.stackexchange.com 或 stats.stackexchange.com。 【参考方案1】:

决策树无法识别属性来自哪些特征。

【讨论】:

那么它是如何工作的呢?我在这里不清楚。 DT要工作,它必须知道一个特征中的不同类别,计算信息增益并根据它创建子节点。 @Stergios 属性是决策树的特征。 是的,但它们都是混合的。我有 10 列,预处理后我有 3000 列。现在,如果它不知道哪一组列属于原始特征,它会如何工作?它将如何找到该特征中的类别并计算加权熵以进一步进行? 它不需要知道原始功能即可工作。

以上是关于决策树如何识别给定文本数据集中的特征?的主要内容,如果未能解决你的问题,请参考以下文章

机器学习实战-决策树

如何使用决策树中的 feature_importances_ 删除所有非零重要特征?

机器学习3—决策树学习笔记

Matlab:递归获取决策树

有没有办法手动修改从给定数据集中学习的决策树中设置的阈值?

有没有办法手动修改从给定数据集中学习的决策树中设置的阈值?