如何访问 R 中 predict() 函数的值进行存储?
How to access values of predict() function in R for storage?
我正在为 class 训练 K 最近邻模型。问题是他们要求我们用 whole 数据库训练它,except 用于被预测的行。
我的计划是初始化一个用于存储的向量,然后 运行 一个 for 循环遍历每一行,省略特定行进行训练,然后将预测值附加到向量,并在循环后计算准确度:
results <- c()
for (i in nrow(data) {
model.kknn <- train.kknn(data[-i,11]~., data = data[-i,1:10],kmax = 7, scale = TRUE)
pred <- predict(model,data[i,1:10])
results <- c(results,pred)
}
我希望向量 results
是一系列 1 和 0。但是,我尝试只循环第一行,results
的值是 2
。
打印时pred
值为:
[1] 1
Levels: 0 1
知道如何让 1 附加到向量 results
吗?
在for()部分指定1:N
,最好不要"grow"一个vector,而是初始化一个合适长度的空vector,然后填充。
N <- nrow(data)
results <- vector(length=N)
for (i in 1:N) {
model.knn <- train.kknn(data[-i,11]~., data=data[-i,1:10], kmax=7, scale=T)
results[i] <- predict(model.knn, data[i,1:10,drop=F])
}
我正在为 class 训练 K 最近邻模型。问题是他们要求我们用 whole 数据库训练它,except 用于被预测的行。
我的计划是初始化一个用于存储的向量,然后 运行 一个 for 循环遍历每一行,省略特定行进行训练,然后将预测值附加到向量,并在循环后计算准确度:
results <- c()
for (i in nrow(data) {
model.kknn <- train.kknn(data[-i,11]~., data = data[-i,1:10],kmax = 7, scale = TRUE)
pred <- predict(model,data[i,1:10])
results <- c(results,pred)
}
我希望向量 results
是一系列 1 和 0。但是,我尝试只循环第一行,results
的值是 2
。
打印时pred
值为:
[1] 1
Levels: 0 1
知道如何让 1 附加到向量 results
吗?
在for()部分指定1:N
,最好不要"grow"一个vector,而是初始化一个合适长度的空vector,然后填充。
N <- nrow(data)
results <- vector(length=N)
for (i in 1:N) {
model.knn <- train.kknn(data[-i,11]~., data=data[-i,1:10], kmax=7, scale=T)
results[i] <- predict(model.knn, data[i,1:10,drop=F])
}