我在尝试进行一些机器学习工作,这些工作涉及到大量的因子类型变量(如词语、描述、时间,基本上都是非数值类型的数据)。我通常依赖于randomForest
,但它无法处理超过32个层次的因子。
谁能推荐一些好的替代方案?
回答:
树形方法行不通,因为可能的分割数量会随着层次数量的增加而呈指数级增长。然而,对于词语,通常的解决方法是为每个词(或描述等)创建指示变量——这样分割就可以一次使用一个词(是/否),而不是选择所有可能的组合。一般来说,你总是可以将层次扩展为指示变量(有些模型会隐式地这样做,例如glm)。在机器学习中处理文本时使用其他方法(如SVM等)也是如此。因此,答案可能是你需要考虑你的输入数据结构,而不是方法本身。另外,如果你的层次之间存在某种顺序,你可以将其线性化(这样只有c-1个分割)。