【发布时间】:2017-08-01 07:02:51
【问题描述】:
我有一个混合数据(定量和分类)来预测一个定量变量。在输入 R 中的 glm 模型之前,我已将分类数据转换为因子。我的数据具有分类变量,其中大多数具有超过 150 个级别。当我尝试将它们提供给 glm 模型时,由于这些因素具有更多级别,它会因内存问题而失败。我们可以设置一个阈值并只接受达到一定数量级别的变量。但是,我需要将这些具有更多层次的因素嵌入到模型中。有没有什么方法可以解决这个问题。
编辑:数据集有 120000 行和 50 列。当使用model.matrix 展开数据时,共有 4772 列。
【问题讨论】:
-
你能发布错误信息吗?我不清楚这是否与内存有关。
-
我尝试不设置阈值,RStudio 会话中止。然后,当我探索设置一个阈值以拒绝变量到具有更多级别(> 150)的模型中时,它工作得很好。
-
如果你的数据是稀疏的,使用稀疏矩阵可能会解决问题(例如包
glmnet)。 -
您有多少观察结果?预测模型矩阵中有多少列:使用类似
ncol(model.matrix( outcome ~ . , data=yourdataframe))的东西。您是什么意思它因内存问题而失败:您是否收到警告/错误/消息等? -
预测模型矩阵有 4772 列。我只是说执行模型需要花费很多时间
标签: r machine-learning regression glm data-science