执行正确数据分析的步骤

Steps to perform correct data analysis

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

我知道我应该将数据集分成train-test-validation然后进行插补(我想用mice的方法logreg)。 我对此有一些疑问:

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

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

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

就我个人而言,我会这样做:

  1. 是的,我会在拆分数据集之前估算这些值。
  2. 我会在估算数据后降低维度,我还会删除接近零的方差预测变量。
  3. 我会使用包 caretCheck this out。所有这些都可以在 train 调用中用一行代码完成,例如 preProcess = c( "nzv","knnImpute","pca")