所以我在R的一个项目中工作,遇到了一个问题,就是如何将KNN模型与一些数据进行拟合。当我运行类的knn和DMwR库的knn时,得到了不同的结果。我使用心理学软件包的每周数据得出了相同的结果。拟合的混淆矩阵给出了显著不同的结果,预测结果之间的比较也是如此。
我不知道为什么这两个函数返回不同的结果。也许有人可以查看我的示例代码,让我知道发生了什么。
library(ISLR)
WTrain <- subset(Weekly, Year <= 2008)
WTest <- subset(Weekly, Year >= 2009)
library(caret)
library(class)
fitClass <- knn(train = data.matrix(WTrain$Lag2), test = data.matrix(WTest$Lag2), cl=WTrain$Direction, k=5)
confusionMatrix(data = fitClass, reference = WTest$Direction)
library(DMwR)
fitDMwR <- kNN(Direction~Lag2,train = WTrain, test = WTest, norm=FALSE, k=5)
confusionMatrix(table(fitDMwR == 'Down', WTest$Direction =='Down'))
results <- cbind(fitClass,fitDMwR)
head(results)