在机器学习中,K近邻(KNN)算法有哪些主要的优点和缺点?请从算法原理和应用角度分别阐述。
考察说明
考查对KNN算法特性的理解,包括其优缺点和适用场景。
回答思路
- 【回答框架 1】KNN是一种基于实例的懒惰学习算法,核心思想是对于新样本,根据特征空间中距离最近的K个已知样本的类别或数值进行预测。
- 【回答框架 2】优点包括:简单易懂,无需训练过程,适合多分类问题,对异常值不敏感(通过多数投票或平均),且理论基础成熟。
- 【回答框架 3】缺点包括:计算复杂度高,存储开销大,对高维数据性能下降(维度灾难),对样本不均衡敏感,且预测时需要遍历所有样本导致速度慢。
- 【回答框架 4】适用场景:样本量适中、特征维度较低、标签分布相对均衡的数据集,常用于推荐系统、图像识别等领域。
- 【关键点 1】KNN是懒惰学习算法,训练阶段仅存储样本。
- 【关键点 2】优点是实现简单、无需训练、适合多分类。
- 【关键点 3】缺点是计算和存储开销大,高维和样本不均衡时性能差。
- 【关键点 4】K值选择影响模型精度,交叉验证可辅助确定。
- 【易错点 1】忽略特征缩放会导致距离度量偏差,应进行标准化。
- 【易错点 2】K值过小易过拟合,过大易欠拟合,需结合数据调整。
- 【易错点 3】高维数据下距离度量失效,需考虑降维或使用适合的距离函数。