请阐述 K 近邻(KNN)算法的基本工作流程。
考察说明
考察对 KNN 算法核心流程的理解。
回答思路
- 【回答框架 1】KNN 是一种基于实例的监督学习算法,核心思想是给定一个待预测样本,在特征空间中找到与其最近的 K 个训练样本,根据这些邻居的类别(分类)或数值(回归)进行预测。
- 【回答框架 2】算法步骤:1. 数据预处理(如归一化,消除量纲影响);2. 计算待预测样本与所有训练样本的距离(常用欧氏距离,也可以使用曼哈顿距离、余弦相似度等);3. 选择距离最小的 K 个邻居;4. 分类问题采用多数投票,回归问题采用均值或加权平均。
- 【回答框架 3】K 值的选取影响模型复杂度,K 过小容易过拟合,K 过大则模型过于简单。通常通过交叉验证选择最优 K。
- 【回答框架 4】KNN 为懒惰学习,训练阶段只存储数据,预测阶段才进行计算,因此预测时间复杂度和数据量成正比,适用于数据规模适中的场景。
- 【关键点 1】KNN 基于特征空间中 K 个最近邻居的多数投票(分类)或均值(回归)进行预测。
- 【关键点 2】距离度量常用欧氏距离,需进行特征归一化。
- 【关键点 3】K 值通过交叉验证选择,影响模型偏差和方差。
- 【关键点 4】模型是懒惰学习,预测阶段实时计算,适合小规模数据。
- 【易错点 1】当数据分布不平衡时,多数投票可能偏向样本量大的类别,需要加权或改进方法。
- 【易错点 2】特征维度过高时,距离度量效果下降,需考虑降维或使用适合高维的距离度量。
- 【易错点 3】K 值选取不当导致过拟合或欠拟合,不能只凭经验,应通过验证确定。