Machine learning 具有高基数属性的决策树

Machine learning 具有高基数属性的决策树,machine-learning,classification,decision-tree,cardinality,Machine Learning,Classification,Decision Tree,Cardinality,我想学习一个决策树,它有一个合理的离散目标属性,有5个可能的不同值。 但是,有一些离散的高基数输入属性(1000个不同的可能字符串值),我想知道包含它们是否有意义。在包含用于训练决策树的属性时,是否有任何策略规定最大基数应为多少?没有最大基数,没有。当然,您可以忽略数据中实际未出现的值 您必须使用直接处理多标签分类特性的RDF实现,而不是将它们转换为一系列二进制指示符特性 对于具有n值的分类特征,特征上有2个^ n—2个可能的决策规则,这是一个太多而不可考虑的问题。我使用的启发式方法是,当您将数

我想学习一个决策树,它有一个合理的离散目标属性,有5个可能的不同值。
但是,有一些离散的高基数输入属性(1000个不同的可能字符串值),我想知道包含它们是否有意义。在包含用于训练决策树的属性时,是否有任何策略规定最大基数应为多少?

没有最大基数,没有。当然,您可以忽略数据中实际未出现的值

您必须使用直接处理多标签分类特性的RDF实现,而不是将它们转换为一系列二进制指示符特性


对于具有n值的分类特征,特征上有2个^ n—2个可能的决策规则,这是一个太多而不可考虑的问题。我使用的启发式方法是,当您将数据除以N个分类特征值时,计算目标的熵。然后根据熵对值进行排序,并通过考虑该列表的前缀来评估得到的N-2规则。

我知道OP没有在问题中发布任何代码,但如果能看到一些伪代码来表示您在这里描述的过程,那就太好了。。。我在高维数据集(>3000个特征)中也面临同样的问题,我正在寻找一种方法来设置最大基数的阈值,因此我知道哪些特征可以进行一次热编码,哪些特征需要丢弃或预处理成更粗的分组这听起来像是一种不同的设置(许多特征,而一个特征有很多值),和不同的过程(我没有建议删除功能)。大多数实现不需要对分类特性进行热编码,所以我不会这么做。决策树过程自然地进行特征选择,因为它随机尝试特征并保留有用的决策规则。生成的林无论如何只会使用少数功能,这意味着您可以从数据中删除这些功能。