当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R themis bsmote 边界-SMOTE算法


BSMOTE 使用类之间边界区域中这些案例的最近邻来生成少数类的新示例。

用法

bsmote(df, var, k = 5, over_ratio = 1, all_neighbors = FALSE)

参数

df

data.frame 或小标题。必须有 1 个因子变量和其余的数值变量。

var

字符,包含因子变量的变量名称。

k

一个整数。用于生成少数类新示例的最近邻居的数量。

over_ratio

多数频率与少数频率之比的数值。默认值 (1) 表示对所有其他级别进行采样,使其具有与最常出现的级别相同的频率。值为 0.5 意味着少数级别的行数(最多)(大约)是多数级别的一半。

all_neighbors

两个borderline-SMOTE方法的类型。默认为 FALSE。查看具体信息。

data.frame 或 tibble,具体取决于 df 的类型。

细节

此方法的用法方式与 smote() 相同,期望不是在少数类的每个点周围生成点,而是首先将每个点分类到框 "danger" 和 "not" 中。对于每个点,计算 k 个最近邻点。如果所有邻居都来自不同的类别,则它会被标记为噪声并放入 "not" 框中。如果超过一半的邻居来自不同阶层,则被标记为“危险”。

如果all_neighbors = FALSE,则将在其自己的类中的最近邻居之间生成点。如果all_neighbors = TRUE,则将在任何最近的邻居之间生成点。请参阅可视化示例。

参数neighbors控制新示例的创建方式。对于每个当前存在的少数类示例,将创建 X 个新示例(这由参数 over_ratio 控制,如上所述)。这些示例将通过使用来自少数类每个示例的 neighbors 最近邻居的信息来生成。参数neighbors控制使用多少个邻居。

此步骤中使用的所有列都必须是数字且没有丢失数据。

参考

韩辉、Wen-Yuan王、Bing-Huan毛。 Borderline-smote:不平衡数据集学习中的一种新的过采样方法。国际智能计算会议,第 878-887 页。施普林格,2005。

也可以看看

step_bsmote() 用于此方法的步骤函数

其他直接实现:adasyn()nearmiss()smotenc()smote()tomek()

例子

circle_numeric <- circle_example[, c("x", "y", "class")]

res <- bsmote(circle_numeric, var = "class")

res <- bsmote(circle_numeric, var = "class", k = 10)

res <- bsmote(circle_numeric, var = "class", over_ratio = 0.8)

res <- bsmote(circle_numeric, var = "class", all_neighbors = TRUE)
源代码:R/bsmote_impl.R

相关用法


注:本文由纯净天空筛选整理自大神的英文原创作品 borderline-SMOTE Algorithm。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。