这更像是一个概念问题,而不是与决策树的实现有关。
我有一个特征向量说V1,V2,V3,target_variable
如果向量是a,b,c,true那么,使用正常的决策树,我们可以对数据集进行分类。
但是如果变量 V1 是一个集合{x,y,z},b,c,true,我该如何实现呢?
我认为使用 x,y,z 作为维度而不是类别的方法,但问题是类别的数量非常庞大,如果数百万。此解决方案无法扩展。
有没有有效的方法来处理这个问题?
这更像是一个概念问题,而不是与决策树的实现有关。
我有一个特征向量说V1,V2,V3,target_variable
如果向量是a,b,c,true那么,使用正常的决策树,我们可以对数据集进行分类。
但是如果变量 V1 是一个集合{x,y,z},b,c,true,我该如何实现呢?
我认为使用 x,y,z 作为维度而不是类别的方法,但问题是类别的数量非常庞大,如果数百万。此解决方案无法扩展。
有没有有效的方法来处理这个问题?
您认为分类特征被视为多个维度(即多个特征)的直觉是正确的。对于搜索每个拆分的所有特征/类别的基于树的算法,数百万个类别将是有问题的。随机森林将是您的项目尝试的一个很好的模型,因为它对特征进行了采样。大多数软件实现都允许您设置样本比例,因此如果需要加快拆分搜索,您可以将您的样本比例设置得非常低。
或者,您可以将数据集输入 Lasso 或 Elastic Net 模型,以去除噪声变量并大幅减少所考虑的类别数量。Lasso 和 Elastic Net 都被证明在特征数量远远超过观察数量的数据集上表现良好(例如,处理基因组数据)。