如何解释 cv.kknn(kknn 包)的交叉验证输出

tne*_*sas 6 r knn cross-validation

我试图解释在尝试交叉验证 k 最近邻模型的数据时得到的结果。我的数据集设置如下

变量 1(int) | 变量2(整数)| 变量 3(int) | 变量4(整数)| 响应(因子)

选择模型后,我将 80% 的数据分成 cvdata,20% 用于测试。

我的代码的一次迭代如下:

    cv <- cv.kknn(formula = Response~., cvdata, kcv = 10, k = 7, kernel = 'optimal', scale = TRUE)
    cv
Run Code Online (Sandbox Code Playgroud)

当我运行“cv”时,它只返回一个 list(),其中包含一些看似随机的数字作为行名、观察到的结果变量 (y) 和预测结果变量 (yhat)。我正在尝试计算测试集的某种准确性。我应该将 y 与 yhat 进行比较来验证吗?

编辑:输出添加到下面

    [[1]]
         y        yhat
    492 1 0.724282776
    654 0 0.250394372
    427 0 0.125159894
    283 0 0.098561768
    218 1 0.409990851

    [[2]]
     [1] 0.2267058 0.1060212
Run Code Online (Sandbox Code Playgroud)

小智 2

[[2]] 中的第一个元素是平均绝对误差,第二个元素是均方误差。假设 df 是您的数据框,那么可以通过mean(abs(df$y - df$yhat)) 和mean((df$y - df$yhat)^2) 轻松测试这些值。