1

我尝试在 R 上使用 ROSE 库来重新平衡我的数据集中的目标变量。这是我的数据集的信息。

  • 我的原始数据集共有 132056 条记录。
  • 目标变量中共有 279 例 (0.21%) 次要类。
  • 目标变量中大类共131777例(99.79%)。

我想对数据集进行欠采样,以使次要类的百分比增加到 5%。

这是我的代码:

df_Under <- ovun.sample(Target ~ ., data = df, method = "under", N =5580, seed = 1)

但是,运行上面的代码后,我收到以下错误消息。

"Error in (function (formula, data, method, subset, na.action, N, p = 0.5,  :Too few observations." 

我尝试使用 ROSE 的其他方法,例如“over”和“both”,但出现相同的错误。

我该如何解决这个问题?

亲切的问候,

4

3 回答 3

2

我面临着同样的问题。问题实际上出在具有 NA/Nan 列(变量)的数据集中。

请尝试在 NA 删除后运行代码。

让我知道这是否有帮助。

于 2019-03-19T07:12:15.217 回答
0

我相信您希望您的代码使用p = 0.05(5%) 而不是p = 0.5(50%) 就像您拥有的那样(这是函数的默认值),并over像您在帖子中提到的那样进行采样以提高少数类的样本大小:

df_Under <- ovun.sample(Target ~ ., data = df, method = "over", N =5580, seed = 1, p = 0.05)
于 2018-07-04T06:24:16.560 回答
0

data.balanced.under <- ovun.sample(Target ~ ., data = df, method = "under",p= 0.5)$data

这将解决您的问题

于 2018-07-19T07:05:39.720 回答