机器学习day1(KNN算法)
·
1. KNN算法简介
K最近邻(K-Nearest Neighbors,KNN)算法是一种简单而有效的监督学习算法,既可以用于分类问题,也可以用于回归问题。它的核心思想是:如果一个样本在特征空间中的K个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。
2. KNN算法原理
KNN算法的工作原理可以概括为以下几个步骤:
- 计算距离:计算测试样本与训练集中每个样本的距离(如欧氏距离、曼哈顿距离等)
- 选择K值:确定K值(最近邻的数量)
- 找出K个最近邻:根据距离排序,选择距离最小的K个训练样本
- 投票决策:对于分类问题,统计K个最近邻中各类别的数量,将测试样本归为数量最多的类别;对于回归问题,取K个最近邻的平均值作为预测值
3. KNN算法优缺点
优点:
- 简单易懂,易于实现
- 无需训练过程,适合在线学习
- 对异常值不敏感
- 适用于多分类问题
缺点:
- 计算量大,需要存储所有训练数据
- 对高维数据效果不佳(维度灾难)
- 需要选择合适的K值和距离度量
- 对不平衡数据集敏感
4. 预测学生数据示例


5. 鸢尾花数据集预测
鸢尾花数据集是机器学习中最经典的数据集之一,包含三种鸢尾花的四个特征:花萼长度、花萼宽度、花瓣长度、花瓣宽度。


6. KNN算法参数调优
6.1 K值选择
K值的选择对KNN算法的性能有重要影响:
- K值太小:模型复杂,容易过拟合,对噪声敏感
- K值太大:模型简单,可能欠拟合,忽略局部特征
- 经验法则:通常选择奇数K值,避免平票情况
6.2 距离度量
常用的距离度量方法:
- 欧氏距离:最常用的距离度量
- 曼哈顿距离:适用于网格状路径
- 闵可夫斯基距离:欧氏距离和曼哈顿距离的泛化
- 余弦相似度:适用于文本分类等高维稀疏数据
6.3 权重函数
可以为不同的邻居分配不同的权重:
- 均匀权重:所有邻居权重相等
- 距离权重:距离越近的邻居权重越大
更多推荐
所有评论(0)