尝试为比训练数据更多的测试数据预测标签时出现警告消息
Warning message when trying to predict labels for more test data than training data
当我 运行 此代码(或与此相关的任何类似代码)时:
x1 <- c(runif(100, 0.0, 10.0))
y1 <- c(runif(100, 0.0, 10.0))
data <- data.frame(x1, y1)
data$label <- with(data, ifelse((x1-5)^2 + (y1-5)^2 < 9, 1, 0))
lm_fit <- lm(formula = label ~ .,data = data)
x_vals <- seq(0, 10, 0.25)
y_vals <- seq(0, 10, 0.25)
grid <- expand.grid(x_vals, y_vals)
predict(lm_fit, grid)
我收到一条警告消息:
'newdata' had 1681 rows but variables found have 100 rows
我也没有预测到所需的标签。我不明白 R 在这里做什么,有人可以帮忙吗?
如果测试数据中的变量名称与训练数据中的变量名称匹配,则警告消失:
x1 <- c(runif(100, 0.0, 10.0))
y1 <- c(runif(100, 0.0, 10.0))
data <- data.frame(x1, y1)
data$label <- with(data, ifelse((x1-5)^2 + (y1-5)^2 < 9, 1, 0))
lm_fit <- lm(formula = label ~ .,data = data)
x_vals <- seq(0, 10, 0.25)
y_vals <- seq(0, 10, 0.25)
grid <- expand.grid(x_vals, y_vals)
colnames(grid) <- c('x1', 'y1')
predict(lm_fit, grid)
当我 运行 此代码(或与此相关的任何类似代码)时:
x1 <- c(runif(100, 0.0, 10.0))
y1 <- c(runif(100, 0.0, 10.0))
data <- data.frame(x1, y1)
data$label <- with(data, ifelse((x1-5)^2 + (y1-5)^2 < 9, 1, 0))
lm_fit <- lm(formula = label ~ .,data = data)
x_vals <- seq(0, 10, 0.25)
y_vals <- seq(0, 10, 0.25)
grid <- expand.grid(x_vals, y_vals)
predict(lm_fit, grid)
我收到一条警告消息:
'newdata' had 1681 rows but variables found have 100 rows
我也没有预测到所需的标签。我不明白 R 在这里做什么,有人可以帮忙吗?
如果测试数据中的变量名称与训练数据中的变量名称匹配,则警告消失:
x1 <- c(runif(100, 0.0, 10.0))
y1 <- c(runif(100, 0.0, 10.0))
data <- data.frame(x1, y1)
data$label <- with(data, ifelse((x1-5)^2 + (y1-5)^2 < 9, 1, 0))
lm_fit <- lm(formula = label ~ .,data = data)
x_vals <- seq(0, 10, 0.25)
y_vals <- seq(0, 10, 0.25)
grid <- expand.grid(x_vals, y_vals)
colnames(grid) <- c('x1', 'y1')
predict(lm_fit, grid)