0

我有一个包含 69 列和 50000 行的数据集。我的数据集只包含二进制变量和数值变量。此外,一些二元变量有一些缺失值(约 5%)。

我知道我应该将数据集划分为 train-test-validation 然后执行插补(我想使用带有方法的鼠标logreg)。我对此有一些疑问:

  1. 我应该只对训练集还是对测试集和验证集进行插补?如果没有,我如何在测试和验证集中填写 NA?

  2. 我的教授告诉我应该减少数据集的维度。我可以使用 PCA 来执行此操作吗?我必须在插补之前还是之后这样做?我必须将其仅应用于火车测试还是其他两组?

  3. 此外,我曾尝试使用鼠标,但它在我的数据集上速度非常慢(估算一半数据大约需要 50 分钟)。你知道有什么方法可以加快这个过程吗?(我在这个论坛上读到过类似的方法,quickpred()但它需要指定最小相关性,我不知道它在我的数据集上有多少。

4

1 回答 1

0

就个人而言,这就是我会做的:

  1. 是的,我会在拆分数据集之前估算这些值。
  2. 在估算数据后,我会降低维度,并且还会移除接近零的方差预测变量。
  3. 我会使用这个包caret看看这个。所有这些事情都可以在train调用中用一行代码完成,比如preProcess = c( "nzv","knnImpute","pca")
于 2019-04-21T14:00:18.693 回答