【发布时间】:2019-09-27 02:53:53
【问题描述】:
我刚刚使用 Smote 在我的数据集中完成了过采样,包含在 DMwR 包中。
我的数据集由两个类组成。原始分布是 12 对 62。所以,我编写了这个过采样的代码:
newData <- SMOTE(Score ~ ., data, k=3, perc.over = 400,perc.under=150)
现在,分布是 60 对 72。
但是,当我显示“newData”数据集时,我发现 SMOTE 是如何进行过采样的,并且有一些样本重复。
例如,样本编号 24 显示为 24.1、24.2 和 24.3。
这是正确的吗?这直接影响到分类,因为分类器将学习一个模型,其中包含将出现在测试中的数据,因此这在分类中是不合法的。
编辑: 我想我没有正确解释我的问题:
如您所知,SMOTE 是一种过采样技术。它从原始样本创建新样本,并为其修改特征值。但是,当我显示由 SMOTE 生成的新数据时,我得到了这个:
(这些值是特征的值)Sample50:1.8787547 0.19847987 -0.0105946940 4.420207 4.660536 1.0936388 0.5312777 0.07171645 0.008043167
样品 50.1:1.8787547 0.19847987 -0.0105946940 4.420207 4.660536 1.0936388 0.5312777 0.07171645
样本 50 属于原始数据集。样本 50.1 是 SMOTE 生成的“人工”样本。但是(这是我的问题),SMOTE 创建了一个重复样本,而不是创建一个修改“一点”特征值的人工样本。
希望你能理解我。
谢谢!
【问题讨论】:
-
所以您是说data.frame
data中的分类变量sample在SMOTE 处理后具有新的无效ID?这个变量的类是什么?您是否将其正确编码为一个因素? -
没有。我试图解释的是 SMOTE 重复值。请参阅我的新帖子以了解更多详细信息。
标签: r