【问题标题】:How to access values of predict() function in R for storage?如何访问 R 中 predict() 函数的值进行存储?
【发布时间】:2020-09-01 21:43:27
【问题描述】:

我正在为一个班级训练一个 K-最近邻模型。问题是他们要求我们用整个数据库训练它,除了要预测的行。

我的计划是初始化一个用于存储的向量并运行一个 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 循环似乎应该是:for(i in 1:nrow(data))。 nrow(data) 只是一个长度 = 1 的向量。

标签: r vector data-science knn


【解决方案1】:

在for()部分指定1:N,最好不要“增长”一个向量,而是初始化一个合适长度的空向量并填充。

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])
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-02-11
    • 1970-01-01
    • 2021-09-27
    • 1970-01-01
    • 2011-09-07
    • 2015-12-01
    • 1970-01-01
    • 2014-11-25
    相关资源
    最近更新 更多