从训练集中删除重复项以进行分类

机器算法验证 机器学习 分类 数据挖掘 物流 分层
2022-03-09 19:44:38

假设我有一堆用于分类问题的行:

X1,...XN,Y

在哪里X1,...,XN是特征/预测变量和Y是行的特征组合所属的类。

许多特征组合及其类在数据集中重复出现,我用它来拟合分类器。我只是想知道删除重复项是否可以接受(我基本上group by X1 ... XN Y在 SQL 中执行)?谢谢。

PS:

这是针对类先验非常偏斜的仅二进制存在数据集

2个回答

不,这是不可接受的。重复提供了证据的分量。

如果您删除重复项,四叶草与普通三叶草一样重要,因为每个三叶草都会出现一次,而在现实生活中,每 10,000 颗普通三叶草就有一棵四叶草。

即使您的先验“非常偏斜”,正如您所说,训练集的目的是积累现实生活经验,如果丢失频率信息,您将无法实现。

我同意前面的回答,但这是我的保留意见。建议在分离样本以对特定分类器(例如决策树)进行训练和测试时删除重复项。比如说,你的 20% 的数据属于一个特定的类别,并且14th渗透到测试中的那些,然后诸如决策树之类的算法将使用重复样本创建通往该类的网关。这可能会在测试集上提供误导性结果,因为本质上存在一个非常特定的通往正确输出的网关。

当您将该分类器部署到全新的数据时,如果没有类似于上述 20% 样本的样本,它的表现可能会非常差。

争论:有人可能会争辩说这种情况指向一个有缺陷的数据集,但我认为这对于现实生活中的应用程序来说是正确的。

删除神经网络、贝叶斯模型等的重复项是不可接受的。