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

Machine Learning Classification with only binary numbers

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

我将实现四种算法。 1.射频 2.登录注册 3.支持向量机 4.低密度脂蛋白

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

我使用了 caret 包来训练我的模型,这需要很多时间。我经常练习机器学习,但我不知道如何处理所有变量都是二进制的。
如何去除共线变量?

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

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

请检查 SVM(或 SVC)是否支持所有特征为布尔值。但通常它对二元分类效果很好。

我也建议尝试神经网络。

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

在我的代码中,我 运行 这个算法迭代不同的阈值:从 0.99 下降到 0.9。效果不错。