我正在研究类别非常不平衡的分类问题。为了解决这个问题,我使用了替换过采样。 (如下所示:http://machinelearningmastery.com/tactics-to-combat-imbalanced-classes-in-your-machine-learning-dataset/ )。
然后我将数据集(过采样的数据集)划分为训练和测试集并训练朴素贝叶斯算法。当我想测试时,是否可以使用精度测量。据我所知,对于样本量较低的类,我已经添加了样本的副本。所以我的test_set包含火车组的精确副本。混淆矩阵怎么样,在过采样数据集上使用混淆矩阵意味着什么?这是一个好习惯吗?
答案 0 :(得分:3)
首先回答一个问题:你想要实现什么?换句话说 - 你的模特应该做什么“在野外”。评估指标必须简单地回答这个问题,没有别的。其次 - 始终第一个拆分数据,然后进行预处理。当你尝试按照你的建议复制一些数据时,这是至关重要的 - 如果你先复制然后拆分你可能最终在火车和测试中都有相同的点,这对你来说太可怕了估计。
特别是 - 您正在处理不平衡的数据集。主要问题是为什么它是不平衡的?是因为真实数据是不平衡的(例如 - 你正在处理具有不同稀有阳性类别的二进制分类),或者它是收集数据的一些奇怪方式的结果,这实际上不是随机样本来自基础过程(例如,通常类是完全平衡的,但是您的标记数据集不是,因为人们更喜欢在您的问题中标记正样本)。如果真实数据不平衡,那么不能改变测试集中的平衡,这将完全打破您将尝试从实验中得出的任何结论。测试数据必须是真实数据的代表性样本。你永远不能“为了你自己的需要”改变它。如果后者为真 - 那么您可以尝试更改测试以使其更类似于真实数据(与之前相同的参数)。
您可以做的是修改指标以匹配您关注的内容(是的,过采样测试数据可以达到相同的效果,但了解您在此处执行的操作至关重要 - 您可以修改指标,但无法触摸测试设置,如果你想获得有效的概率推理一般)。如果您只关心具有随机数据点的正确分类概率的模型 - 使用准确性。如果您更关心某个类(在经常出现的不平衡情况下) - 您可以通过将不同的成本附加到FP或FN并基于混淆矩阵计算您自己的指标,来增加错误成本。请记住,如果您使用自定义指标,则必须“告诉”您的模型。 90%的分类器我们假设你关心准确性,并且它们最大化它。如果您更改指标 - 再次“分类”的“天真”应用可能会导致无效的结论(在模型选择方面)。
总结一下: