我有50个预测变量和1个目标变量。我的所有预测变量和目标变量都只是二进制数0和1。我正在使用R.执行我的分析。
我将实现四种算法。 射频 2.日志注册 3. SVM 4. LDA
我有以下问题:
我将它们全部转换成因子。在将变量输入我的其他算法之前,我应该如何处理我的变量。
我使用插入包来训练我的模型,这需要很长时间。我经常练习ML,但我不知道如何处理所有变量二进制 如何删除共线变量?
答案 0 :(得分:1)
我不是R用户,而是Python。打赌有一个共同的方法: 1.检查列。如果“0”或“1”的数量为>,则删除列。总量的95%(您可以尝试2.5%甚至1%以后)。 2.默认运行简单的随机森林并获得特征重要性。您可以使用LDA处理不必要的列。 3.检查目标列。如果它非常不平衡,请尝试过采样或下采样。或者使用可以处理不平衡目标列的分类方法(如XGBoost)。
对于线性回归,您需要计算相关矩阵并删除相关列。其他方法可以没有它。
请检查SVM(或SVC)是否支持所有功能是否为布尔值。但通常它对二进制分类非常有用。
我也建议尝试神经网络。
PS关于共线变量。我为我的项目在Python上编写了一个代码。这很简单 - 你可以这样做: - 绘图相关矩阵 - 找到具有某个阈值的相关性的对 - 删除与目标变量具有低相关性的列(您还可以检查要删除的列不重要,否则请尝试其他方式,可能是联合列)
在我的代码中,我针对不同的阈值迭代地运行该算法:从0.99下降到0.9。效果很好。