R: model.frame.default(公式 = class ~ 步骤 + 类型 + 数量 + :) 错误:对象不是矩阵
R: Error in model.frame.default(formula = class ~ step + type + amount + :) : object is not a matrix
我是 R 的新手,我正在尝试使用 here 中的数据。我尝试对其进行过采样,但 Error in model.frame.default
发生了。
- 初审
oversample_data <- ovun.sample(class ~ ., data = sample_dataset, p = 0.5, seed = 1, method="over")$data
但是
Error in model.frame.default(formula = class ~ step + type + amount +
: object is not a matrix
已显示。
- 这就是为什么我想出二次试验,先把数据集变成矩阵,然后再做过采样
org_dataset <- as.matrix(org_dataset[complete.cases(org_dataset), ])
data_balanced_over <- ovun.sample(class ~ ., data = org_dataset, p = 0.5, seed = 1, method = "over")$data
但是它说
Error in model.frame.default(formula = class ~ step + type + amount +
: 'data' must be a data.frame, not a matrix or an array
这让我很困惑...过采样的正确方法是什么?
问题是您为 ovun.sample
设置的公式。您所指的数据集中没有名为 class
的变量。
公式的 documentation of the ROSE package 表示
The left- hand-side (response) should be a vector specifying the class labels. The right- hand-side should be a series of vectors with the predictors.
因此,您必须指定一个包含 class 标签的变量。鉴于数据集,我假设这将是 isFraud
。那么调用将是
oversample_data <- ovun.sample(isFraud ~ ., data = sample_dataset, p = 0.5, seed = 1, method="over")$data
我是 R 的新手,我正在尝试使用 here 中的数据。我尝试对其进行过采样,但 Error in model.frame.default
发生了。
- 初审
oversample_data <- ovun.sample(class ~ ., data = sample_dataset, p = 0.5, seed = 1, method="over")$data
但是
Error in model.frame.default(formula = class ~ step + type + amount + : object is not a matrix
已显示。
- 这就是为什么我想出二次试验,先把数据集变成矩阵,然后再做过采样
org_dataset <- as.matrix(org_dataset[complete.cases(org_dataset), ])
data_balanced_over <- ovun.sample(class ~ ., data = org_dataset, p = 0.5, seed = 1, method = "over")$data
但是它说
Error in model.frame.default(formula = class ~ step + type + amount + : 'data' must be a data.frame, not a matrix or an array
这让我很困惑...过采样的正确方法是什么?
问题是您为 ovun.sample
设置的公式。您所指的数据集中没有名为 class
的变量。
公式的 documentation of the ROSE package 表示
The left- hand-side (response) should be a vector specifying the class labels. The right- hand-side should be a series of vectors with the predictors.
因此,您必须指定一个包含 class 标签的变量。鉴于数据集,我假设这将是 isFraud
。那么调用将是
oversample_data <- ovun.sample(isFraud ~ ., data = sample_dataset, p = 0.5, seed = 1, method="over")$data