错误{:任务1失败 - “无法找到函数‘KNN’”

问题描述:

我试图运行R上的并行k近邻程序,但我得到这个错误:错误{:任务1失败 - “无法找到函数‘KNN’”

错误{:任务1失败 - “找不到功能“KNN””

这是程序:

library(class) 
library(doSNOW) 
library(foreach) 

train <- read.csv('train.csv') 
test <- read.csv('test.csv') 
trainY <- read.csv('trainY.csv') 
cl <- as.vector(as.matrix(trainY)) 

system.time(summary(knn(train, test, cl, k=25, prob = TRUE))) 


clus <- makeCluster(4) 
registerDoSNOW(clus) 
countrows=nrow(test) 

system.time(foreach(icount(countrows)) %dopar% { 
    summary(knn(train, test, cl, k=25, prob = TRUE)) 
}) 

stopCluster(clus) 

你需要调用每个节点上的library(class)foreach通过参数.packages可以轻松实现。

system.time(foreach(icount(countrows), .packages="class") %dopar% { 
    summary(knn(train, test, cl, k=25, prob = TRUE)) 
}) 

您可能还需要出口traintestcl

system.time(
    foreach(icount(countrows), .packages="class", 
      .export=c("train","test","cl")) %dopar% { 
    summary(knn(train, test, cl, k=25, prob = TRUE)) 
    } 
)