对于那些希望在 JMP v16 中使用 kNN 进行交叉验证的用户来说,这是一个提醒……
Word 附件表明,对于k = 3 :
| | 训练 R2 | 验证 R2 |
| 第二个展览 | 0.92839 | 0.90874 |
| 第三个展览 | 0.9706 | 0.9086 |
验证集的 R2 值接近,但不完全相同。虽然差异不大,但训练集的 R2 值差异并不大:0.93 vs 0.97。
关于此问题的文档尚未找到,尽管有文档提到,kNN 算法会根据使用“已保存的预测值”还是“保存的预测公式”生成不同的预测列,这很可能解释了拟合统计数据的差异。然而,我们不知道哪一组相互竞争的拟合统计数据是正确的。
我们需要准确的训练 R2 结果来正确衡量模型表现出的过度拟合程度。
JMP v16 对 kNN 使用了新的算法,因此在 JMP v15 或更早版本中不存在这种差异。
我还附上了用于生成 Word 文档中显示的结果的 JMP 数据文件。
您是否可能正在比较来自不同模型的 r 平方? 例如,您的表具有与 KNN 模型完全不同的拟合统计数据的最小二乘模型。
我按照您在 JMP 15 和 16 中的数据集的描述运行了 KNN。 版本 15 和 16 的训练和验证 r 平方统计量略有不同,但非常相似。 (随机种子是一样的),脚本是吹的。 不包括 14 和 15 之间的比较,它们是相同的。
如果 JMP Dev 的某个人没有发表评论,请发送一条说明至support@jmp.com并参考此讨论线程。 虽然我不知道任何细节,但我怀疑 KNN 背后的方法已更新以支持非常宽的表。 JMP16 可能提供了更精确的估计。

K Nearest Neighbors(
Validation( :"Train/Validate"n ),
Y( :MSRP ),
X(
:"Curb Weight (lbs)"n, :"Displacement (cc)"n, :Cylinders, :Horsepower,
:MPG City, :MPG Highway, :"Length (in)"n, :Seating Capacity,
:"Torque (lbs/ft)"n, :"Wheelbase (in)"n, :Car Type, :Make
),
K( 10 ),
Set Random Seed( 123 ),
Response( "MSRP", Plot Actual by Predicted( 1 ) )
)