我正在尝试做一些涉及大量因子类型变量(单词、描述、时间、基本上非数字的东西)的机器学习工作。我通常依赖于 randomForest
但它不适用于具有 >32 个级别的因子。
有人可以建议一些好的替代方案吗?
最佳答案
树方法不起作用,因为可能的 split 数量随着级别的数量呈指数增长。然而,对于单词,通常通过为每个单词(描述等)创建指示符变量来解决这个问题 - 这样分割可以一次使用一个单词(是/否),而不是选择所有可能的组合。一般来说,您始终可以将级别扩展为指标(某些模型隐式地执行此操作,例如 glm)。在 ML 中使用其他方法(例如 SVM 等)处理文本也是如此。所以答案可能是您需要考虑输入数据结构,而不是方法。或者,如果您在级别上有某种顺序,则可以将其线性化(因此只有 c-1 分割)。
关于R机器学习包处理大量级别的因素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8596109/