我有一个数据集,其中包含全国学生及其成绩的社会经济指标。更具体地说,此数据集包含36个变量,其中约有3000万学生作为预测变量,然后学生的评分作为响应。
我的目标是能够预测学生是否会失败(即,就成绩而言,处于该国最底层的2%人口中)。我知道数据集不平衡(98%:2%)的分类会带来偏差。根据一些研究,我计划通过增加少数派类别中错误分类的成本来解决这一问题。
有人可以确认这是正确的方法吗(我认为没有更好的方法了吗?而且,鉴于此数据集的性质,有人可以帮助我选择一种机器学习算法来实现这一目标吗?
我正在Google Colab中使用TensorFlow 2.0。我已经使用熊猫将所有数据编译到一个.feather文件中。
在数据集不平衡的情况下,使用加权类是最常见的方法,但是对于二进制分类问题,具有如此大的数据集(30M训练示例),代表第一类,而第二类则为98% ,我可以说很难防止使用加权类对模型进行unbiased对抗第一类,因为与减少训练集大小来保持平衡没有太大不同。
将数据集拆分为训练,评估和测试集。
对于评估指标,我建议使用这些替代方法。
a。确保至少有+ 20%,代表两者的第二类评估和测试集。
b。将评估指标设置为精度,并调出模型精度(而不是使用f1分数)。
c。将评估指标设置为Cohen's kapp score(系数)。
从我自己的角度,我更喜欢使用b。
由于您正在使用张量流,所以我假设您熟悉深度学习。因此,使用深度学习而不是机器学习,无论如何,这使您能够有许多其他选择,这是机器学习和深度学习方法的一些步骤。
用于机器学习算法
用于深度学习算法
对于深度学习第五种方法有时效果很好,我建议尝试使用1、3。