我正在尝试制作一个可根据用户输入预测价格的应用程序。如何预测新值的响应?
我试图做以下事项:
1.向数据集添加新观察
2.训练所有的观察结果,但新的观察结果
3.测试新的观察结果
但是当我将响应变量的不同值放入新观察中时,预测会发生变化,因此它似乎无法发挥作用。
假设数据有7个变量的100个观察值 这将是我尝试过的代码。
data <- rbind(data, c(1,2,3,4,5,6,7))
prediction <- knn.reg(data[1:100,], test = dataset[101,],
data[1:100,]$response_variable, k = 8, algorithm="kd_tree")
prediction$pred
提前感谢您的帮助。
答案 0 :(得分:0)
首先,您尚未定义dataset
。我猜你的代码应该是:
dataset <- rbind(data, c(1,2,3,4,5,6,7))
prediction <- knn.reg(dataset[1:100,], test = dataset[101,],
y = dataset[1:100,]$response_variable, k = 8, algorithm="kd_tree")
prediction$pred
在任何情况下,您似乎都不应该将响应变量作为训练和测试集中的列包含在内(我通过使用knn.reg
函数找到了这一点。)所以,如果你的响应变量是data
的第7列,那么你可以改为
dataset <- rbind(data, c(1,2,3,4,5,6,7))
prediction <- knn.reg(dataset[1:100,-7], test = dataset[101,-7],
y = dataset[1:100,]$response_variable, k = 8, algorithm="kd_tree")
prediction$pred
例如,这是一个带有一些补充数据的测试用例。
set.seed(1)
data <- data.frame(matrix(sample(1:7, 700, replace=T), nr=100))
colnames(data)[7] <- "response_variable"
dataset <- rbind(data, c(1,2,3,4,5,6,7))
prediction <- knn.reg(dataset[1:100,-7], test = dataset[101,-7],
dataset[1:100,]$response_variable, k = 8, algorithm="kd_tree")
prediction$pred