首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SMOTE如何从分类数据中创建新数据?

SMOTE如何从分类数据中创建新数据?
EN

Stack Overflow用户
提问于 2018-12-06 13:27:53
回答 1查看 2.3K关注 0票数 2

我在R中使用了SMOTE来创建新的数据,而且效果很好。当我进一步研究SMOTE是如何工作的,我找不到答案,SMOTE是如何处理分类数据的。

本文给出了一个仅用数值表示的例子(第10页)。但我仍然不知道SMOTE是如何从分类示例数据中创建新数据的。

这是到论文的链接:https://arxiv.org/pdf/1106.1813.pdf

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-06 14:34:43

这确实是一件值得注意的重要事情。在你提到的论文中,第6.1节和6.2节描述了名义连续且只是名义变量的情况下可能的程序。然而,DMwR不使用类似的东西。

如果您查看SMOTE的源代码,可以看到主要工作是由DMwR:::smote.exs完成的。我现在简要地解释一下这个过程。

总结是,因素级别的顺序很重要,目前似乎存在一个关于因素变量的错误,这使得事情发生了相反的。也就是说,如果我们想找到一个接近因子水平"A“的观察结果,那么"A”以外的任何东西都被视为“接近”,而"A“级的则被视为”遥远的“。因此,因素变量越多,它们的级别就越少,并且有越少的连续变量,这个bug的影响就应该越大。

因此,除非我错了,否则函数不应该与因子一起使用。

作为一个例子,让我们考虑具有一个连续变量和一个因子变量的perc.over = 600的情况。然后,我们使用与欠采样类相对应的子数据帧(例如,50行)到达smote.exs,并按如下方式进行。

  1. 矩阵T包含除类变量之外的所有变量。对应于连续变量的列保持不变,而因子或字符被强制转换为整数。这意味着要素级别的顺序是必不可少的。
  2. 接下来,我们产生50 *6=300个新观测。为此,我们为现有的50个观测(i = 1,.,50)创建了6个新观测(n = 1,.,6)。
  3. 我们用xd <- scale(T, T[i, ], ranges)对数据进行缩放,使xd显示出与第一次观测的偏差.例如,我们可能有一个

代码语言:javascript
复制
#             [,1]  [,2]
# [1,]  0.00000000  0.00
# [2,] -0.13333333  0.25
# [3,] -0.26666667  0.25

这意味着i= 2,3的连续变量小于i =1,但i= 2,3的因子级别“更高”。

  1. 然后,通过运行for (a in nomatr) xd[, a] <- xd[, a] == 0,我们忽略了第二列中与因子水平偏差相关的大部分信息:对于那些与第一次观测具有相同因子水平的情况,我们将偏差设置为1,否则为0。(我认为应该是相反的,这意味着它是一个bug;我要报告它。)
  2. 然后,我们设置dd <- drop(xd^2 %*% rep(1, ncol(xd))),它可以看作是第一次观测的每一个观测值的平方距离向量,kNNs <- order(dd)[2:(k + 1)]给出了k最近邻的指数。它的目的是2:(k + 1),因为第一个元素应该是i (距离应该是零)。但是,在本例中,第一个元素实际上并不总是i,因为第4点确认了一个bug。
  3. 现在,我们创建了类似于第一次观测的第n次新观测。首先,我们选择一个最近的邻居,neig <- sample(1:k, 1)。然后,difs <- T[kNNs[neig], ] - T[i, ]是这个邻居和第一次观测之间的分量上的区别,例如,

代码语言:javascript
复制
difs
# [1] -0.1 -3.0

这意味着邻居的值在这两个变量上都较低。

  1. 新的情况是通过运行:T[i, ] + runif(1) * difs构造的,它确实是I变量和邻域之间的凸组合。这一行只适用于连续变量。对于这些因素,我们有c(T[kNNs[neig], a], T[i, a])[1 + round(runif(1), 0)],这意味着新的观测将有相同的因子水平,与第一次观测的概率为50%,与这个被选中的邻居有50%的机会。这是一种离散插值。
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53652522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档