我的监督学习训练数据是从实际数据中获得的;在实际案例中,有一个类别的发生频率低于其他类别,仅占所有案例的 5% 左右。
准确地说,前 2 个类在 95% 的训练数据中,最后一个在 5% 中。在保持数据比率不变的情况下进行训练将使准确率在正确的第一步达到 50%,并立即达到 90%+,这是没有意义的。
我是否应该排除第 1 类和第 2 类的一些数据,使 3 类的样本数量相等?但这不是现实世界的比率。
我的监督学习训练数据是从实际数据中获得的;在实际案例中,有一个类别的发生频率低于其他类别,仅占所有案例的 5% 左右。
准确地说,前 2 个类在 95% 的训练数据中,最后一个在 5% 中。在保持数据比率不变的情况下进行训练将使准确率在正确的第一步达到 50%,并立即达到 90%+,这是没有意义的。
我是否应该排除第 1 类和第 2 类的一些数据,使 3 类的样本数量相等?但这不是现实世界的比率。
您可以将分层交叉验证与应用于训练数据的不平衡学习技术相结合。分层可确保当您将数据拆分为训练和测试时,类之间的频率比率将保持不变,因此测试数据将始终是“真实的”。
但是,在训练模型时(当然,只使用训练数据),不平衡可能会产生负面影响。因此,请查看一些可以纠正这种情况的不平衡学习技术。例如,您可以尝试以下方法:
等等。
您还应该注意用于评估测试数据的预测性能的指标。此处的准确性可能会产生误导,因此您可能会发现敏感性和特异性(针对每个类别单独计算)等指标更具信息性。