第十章 KNN算法
K近邻算法(K-Nearest Neighbors,KNN)是一种基本的分类与回归方法,属于监督学习算法。
其核心思想是通过计算给定样本与数据集中所有样本的距离,找到距离最近的K个样本,然后根据这K个样本的类别或值来预测当前样本的类别或值。
工作原理
计算距离:计算待分类样本与训练集中每个样本的距离。
选择K个近邻:根据计算的距离,选择距离最近的K个样本。
投票或平均:
-
分类任务:统计K个近邻各类别的数量,将待分类样本归为数量最多的类别。
-
回归任务:取K个近邻的平均值作为预测结果。
关键参数
距离度量方法:选择合适的距离度量方法,常见的有欧氏距离、曼哈顿距离、切比雪夫距离、闵可夫斯基距离等。
K值:K值的选择对结果影响很大。
- K值过小容易过拟合
- K值过大则可能欠拟合。
优缺点
KNN优点:
-
简单直观,易于理解和实现。
-
无需训练过程,直接利用训练数据进行预测。
KNN缺点:
-
计算量大,尤其是训练集较大时。
-
对噪声数据较敏感。
归一化
将数据按比例缩放到一个固定范围(通常是[0,1]或[-1,1])
- 消除量纲差异:不同特征的单位或量纲可能差异巨大(例如身高以米为单位,体重以千克为单位),归一化可消除这种差异,避免模型被大范围特征主导。
- 加速模型收敛:对于梯度下降等优化算法,归一化后特征处于相近的尺度,优化路径更平滑,收敛速度更快。
- 适配特定模型需求:某些模型(如神经网络、K近邻、SVM)对输入数据的范围敏感,归一化能显著提升其性能
标准化
将数据调整为均值为0、标准差为1的标准分布。
-
适应数据分布:将数据转换为均值为0、标准差为1的分布,适合假设数据服从正态分布的模型(如线性回归、逻辑回归)。
-
稳定模型训练:标准化后的数据对异常值的敏感度较低(相比归一化),鲁棒性更强。
-
统一特征尺度:与归一化类似,标准化也能消除量纲差异,但更关注数据的统计分布而非固定范围。