解决对不平衡集进行分类预测分析的方法之一包括对多数类进行欠采样(其他方法包括:对多数类进行欠采样,合成新的少数类......)。
所以假设以后我们使用这些解决方案中的任何一个,然后我们用新生成的数据集训练一个算法。这种训练有素的算法是否有助于预测来自该系统的更多数据,这些数据通常是不平衡的?
或者说得更具体一点,一般来说,是否有可能用平衡的训练集训练模型,以便我们可以有效地预测不平衡的预测集?或者两者都应该通常是平衡的或不平衡的?
谢谢!
塞尔吉
解决对不平衡集进行分类预测分析的方法之一包括对多数类进行欠采样(其他方法包括:对多数类进行欠采样,合成新的少数类......)。
所以假设以后我们使用这些解决方案中的任何一个,然后我们用新生成的数据集训练一个算法。这种训练有素的算法是否有助于预测来自该系统的更多数据,这些数据通常是不平衡的?
或者说得更具体一点,一般来说,是否有可能用平衡的训练集训练模型,以便我们可以有效地预测不平衡的预测集?或者两者都应该通常是平衡的或不平衡的?
谢谢!
塞尔吉
这是可能的。考虑 KNN。当你训练一个模型时,它基本上会“记住”训练集。现在,当您使用模型预测不平衡的数据集时,模型只是从内存中读取,所以没有问题。
例如,假设您训练一个年龄组从 10 岁到 80 岁均匀分布的模型。现在您有一个测试集,其中每个人都是 70-80 岁。KNN 只需找出您老人的邻居(比如您的训练数据中的 60-80 位老人),然后计算加权平均值。
使用平衡训练集来预测不平衡的测试集并不是很有挑战性。反之则更具挑战性。
当您在训练期间最小化的损失函数与您用于评估的指标不同时,类平衡是必要的。问题的答案:
一般来说,是否有可能用平衡的训练集训练模型,以便我们可以有效地预测不平衡的预测集?
取决于损失函数的选择和“有效性”的度量(评估指标)。如果两个类在评估(例如 ROC AUC)中被赋予同等重要性,而不是在损失函数中,那么平衡将导致性能提高。
这个问题的答案与您正在处理的实际问题非常相关。我花了三年时间修改 SMOTE 算法来解决一个问题,接下来的两年尝试设计一个有偏分类器来处理另一个问题。事实上,在学术界,与整体准确度相比,我们非常关心平均准确度。在这里,您应该处理不平衡数据问题。但实际上,在很多情况下你会发现他们关心的是整体准确度而不是平均准确度。当丢失任何样本的成本相同时,它就会产生。如果您没有任何考虑,那么问题是:我可以最大化平均准确率和整体准确率吗?这取决于您使用的功能。在某些情况下,他们丢失少数样本的成本更高,那么你需要设计一个有偏见的分类器。您的问题的答案:如果平衡数据可以最大限度地提高平均准确性和整体准确性,那么最好这样做。如果平衡数据不能最大化两者,那么你需要考虑问题的需求。