知识卡片
KNN的k值决定过拟合与欠拟合的走向
内容
[[KNN是懒惰学习只能做局部解释]]的效果高度依赖k的取值:k太小时模型只参考极少数近邻,训练误差小但容易被噪声带偏、鲁棒性差(过拟合);k太大时参考的近邻范围过宽、丢失局部细节,导致欠拟合。没有一个固定公式能算出最优k,通常做法是从较小的值出发,结合交叉验证按业务更看重的指标(精确率还是召回率)挑一个折衷值。
参考来源
- 位置:《数据科学工程实践》第11章《机器学习模型可解释性》"11.2.3 KNN"一节(源文件:_epub-src/OEBPS/Text/part0062.xhtml)
- 结论依据:原文明确"若k值过小,模型训练的误差虽然会小,但模型的鲁棒性会较弱,容易导致过拟合;反之,若k值过大,泛化误差减小,会导致模型欠拟合……没有一个固定的方法,一般是根据样本的分布,选择一个较小的值,再通过交叉验证选择一个合适的k值",并举例"若用户希望获得一个精准率高的模型,建议k取值15;如果更倾向于得到一个召回率更高的模型,则建议k取值45"。
- 原始内容:对于k值的选择,没有一个固定的方法,一般是根据样本的分布,选择一个较小的值,再通过交叉验证选择一个合适的k值。若k值过小,模型训练的误差虽然会小,但模型的鲁棒性会较弱,容易导致过拟合;反之,若k值过大,泛化误差减小,会导致模型欠拟合……若用户希望获得一个精准率高的模型,建议k取值15;如果更倾向于得到一个召回率更高的模型,则建议k取值45。