我正在使用KNN模型对数字位数数据集进行分类,这是指示绘制数字的坐标数据集。我非常有信心我已经正确构建了模型,但是我坚持对其进行交叉验证。
查找了很多示例,但发现它们与我的示例相似,或者对整数而不是整数进行了分类。
set.seed(2)
labels = pendigits.train$Number_Drawn
initial_model <- knn(
train=pendigits.train, test=pendigits.test, cl=labels, k=10
)
table(pendigits.test$Number_Drawn, initial_model)
knnFit_model <- train(
pendigits.train, labels,
method = "knn",
preProcess = c("center", "scale"),
tuneLength = 10,
trControl = trainControl(method = "cv")
)
cross_validation_prediction <- predict(
knnFit_model,
newdata = pendigits.test
)
table(cross_validation_prediction)
0 1 1.2 1.4 1.5 1.6 1.8 2 2.2 2.4 2.6 3 3.4 3.8 4 4.2 4.6 4.8 5 5.2 5.4 5.8 6 6.4 7 7.2 7.4 7.8 8 9 354 329 17 14 1 3 8 360 1 3 1 335 2 1 353 2 7 2 331 1 1 2 336 2 351 8 6 3 332 332
我希望表格(cross_validation_prediction)能给我一些东西 类似于带有表(pendigits.test $ Number_Drawn,initial_model)的输出
0 1 2 3 4 5 6 7 8 9
0 351 0 0 0 0 0 9 0 2 1
1 0 344 19 0 1 0 0 0 0 0
2 0 1 363 0 0 0 0 0 0 0
3 0 1 0 334 0 0 0 0 0 1
4 0 0 0 0 353 10 1 0 0 0
5 0 0 0 7 0 327 0 0 0 1
6 0 0 0 0 0 0 336 0 0 0
7 0 14 1 0 0 0 0 349 0 0
8 1 0 0 0 0 1 0 0 334 0
9 0 2 0 8 0 0 0 4 1 321
但获得输出
0 1 1.2 1.4 1.5 1.6 1.8 2 2.2 2.4 2.6 3 3.4 3.8 4 4.2 4.6 4.8
5 5.2 5.4 5.8 6 6.4 7 7.2 7.4 7.8 8 9
354 329 17 14 1 3 8 360 1 3 1 335 2 1 353 2 7 2
331 1 1 2 336 2 351 8 6 3 332 332
我真的不明白为什么我得到不同的结果。