模型准确率低于无信息率?

机器算法验证 准确性
2022-04-07 20:48:29

我有一个具有两个类的预测变量的数据集;真假。99.99% 的值属于假类。在这种情况下,无信息率为 99.99%。因此,我构建的任何模型都需要具有高于无信息率的准确度。

很难击败无信息率。在这种情况下,拥有 70-80% 准确度的模型是否有任何价值?如果不是,我有什么方法可以提高模型的准确性?我尝试了各种技术,例如过采样少数类、欠采样多数类和 SMOTE,但很难超越原样的准确性。

3个回答

这是一个强有力的论据,为什么你永远不应该使用不连续的不正确的准确性评分规则。任何诱使您从样本中删除数据的评分规则都必须是虚假的,这也应该是一个线索。如果您真的对全有或全无分类感兴趣,那么只需忽略所有数据并预测观察结果始终属于多数类。更好的是开发一个概率模型(例如逻辑回归)并使用适当的准确度分数来评估模型的值(对数概率评分规则 = 偏差 = 对数似然 = 伪R2以此目的; 布赖尔分数)。

在高度倾斜的数据集中,要超越默认准确度可能非常困难,构建成功模型的能力可能取决于您拥有多少正面示例以及模型的目标是什么。即使有非常强的偏斜,建立合理的模型也是可能的,例如,ipinyou数据集有大约 250 万个负例,而只有几千个正例。

对于像 ipinyou 这样的倾斜数据集,使用 AUC 进行训练会有所帮助,因为这会查看 ROC 曲线下的区域,因此仅预测一个类并不能提高分数。使用此类数据集可能面临的其他挑战是大小,因此确保您可以实际处理数据很重要,并且可能会影响您使用的语言(Python、R 等),处理发生的位置(计算机或云上) ,以及您尝试使用的算法。线性方法可能难以处理高度倾斜的数据,而随机森林或 XGboost 等非线性方法可能更有效。

考虑到仔细的特征工程也很重要,稀疏矩阵和 1 热向量编码也可以帮助您发现高度倾斜数据中的模式。

如果我正确理解了这个问题,还应该提到许多“标准”模型统计数据在测试集上毫无意义,因为您可能只在训练集上应用了不平衡调整技术。在这种情况下,正如@Jonno Bourne 指出的那样,AUC 将是更好的准确度度量。