机器学习分类只有二进制数

时间:2017-10-22 05:38:13

标签: r machine-learning data-science

我有50个预测变量和1个目标变量。我的所有预测变量和目标变量都只是二进制数0和1。我正在使用R.执行我的分析。

我将实现四种算法。     射频     2.日志注册     3. SVM     4. LDA

我有以下问题:
我将它们全部转换成因子。在将变量输入我的其他算法之前,我应该如何处理我的变量。

我使用插入包来训练我的模型,这需要很长时间。我经常练习ML,但我不知道如何处理所有变量二进制 如何删除共线变量?

1 个答案:

答案 0 :(得分:1)

我不是R用户,而是Python。打赌有一个共同的方法: 1.检查列。如果“0”或“1”的数量为>,则删除列。总量的95%(您可以尝试2.5%甚至1%以后)。 2.默认运行简单的随机森林并获得特征重要性。您可以使用LDA处理不必要的列。 3.检查目标列。如果它非常不平衡,请尝试过采样或下采样。或者使用可以处理不平衡目标列的分类方法(如XGBoost)。

对于线性回归,您需要计算相关矩阵并删除相关列。其他方法可以没有它。

请检查SVM(或SVC)是否支持所有功能是否为布尔值。但通常它对二进制分类非常有用。

我也建议尝试神经网络。

PS关于共线变量。我为我的项目在Python上编写了一个代码。这很简单 - 你可以这样做:   - 绘图相关矩阵   - 找到具有某个阈值的相关性的对   - 删除与目标变量具有相关性的列(您还可以检查要删除的列不重要,否则请尝试其他方式,可能是联合列)

在我的代码中,我针对不同的阈值迭代地运行该算法:从0.99下降到0.9。效果很好。