第一章 全网最详细的Python入门思维导图,果断收藏
第二章 Python桌面应用开发(PyQT)入门思维导图,果断收藏
第三章 Python数据分析(Numpy和Pandas学习)入门思维导图,果断收藏
第四章 Python人工智能概念之机器学习基础入门思维导图,果断收藏
第五章 机器学习之KNN最邻近分类算法入门思维导图,果断收藏
文章目录
- 人工智能学习路径
- KNN算法简介
- 一、KNN算法入门思维导图
- 二、KNN学习优缺点
- 三、kNN算法步骤
- 四、KNN应用分析
- 总结
KNN算法简介
KNN(K-Nearest Neighbor)最邻近分类算法是数据挖掘分类(classification)技术中最简单的算法之一,其指导思想是”近朱者赤,近墨者黑“,即由你的邻居来推断出你的类别。
KNN的核心思想是先计算每个样本与单个特征空间上的距离(距离可有欧式距离、曼哈顿距离、马氏距离等),再找出与每个样本距离最近的k个点,最后将其归类为k个邻居中类别最多的那一类;
适用场景:一般多用于分类任务,也可用来处理回归任务。
一、KNN算法入门思维导图 二、KNN学习优缺点
优点
- 原理简单,易于理解;
- 对异常值不敏感;
- 对数据的特征类型没有明确的要求;
缺点
- 样本不平衡问题,容易将样本分入类别中样本较多的那一类;
- 特征较多时,计算复杂度高,空间复杂度高;
- 相比决策树,KNN的可解释性不强;
关键点:
- k值的选取,k值为10以内的奇数(奇数是为了避免出现打成平手的情况),也可以通过交叉验证的方式来选取得到合适的k值。
- 计算测试数据与各个训练数据之间的距离;
- 按照距离递增的顺序进行排序;
- 选择距离最近的k个样本数据;
- 计算前k个样本所在类别的频率/均值;
- 返回前k个样本出现频率最高/(加权)均值作为测试数据的类别/预测值
假设我们需要对麻雀,鸽子,老鹰三种鸟成年个体进行分类。由于三种鸟具有明显不同的外形特征,那么可以选择外形作为特征,外形特征则可以选取翼展、体重、身高三个维度生成样本数据。
一组假设的样本数据:
归一化以后:
假设某只鸟属于这三种类别中的一种,其体型特征数据为翼展0.4米,体重0.3公斤,身高0.25米,使用KNN算法计算该鸟最可能的类别,经过归一化,这组数据为(0.2,0.06,0.25),通过欧式距离计算这只鸟与其他几个样本的距离:
老鹰=sqrt((0.2-1.0)^2 + (0.06-1.0)^2 + (0.25-1.0)^2)≈1.4443
鸽子=sqrt((0.2-0.25)^2 + (0.06-0.1)^2 + (0.25-0.3)^2)≈0.0812
麻雀=sqrt((0.2-0.1)^2 + (0.06-0.01)^2 + (0.25-0.1)^2)≈0.1871
通过距离比对,这只鸟的特征数据与鸽子距离最近,那么最后的分类结果就是鸽子这个类别。
总结
KNN(K- Nearest Neighbor),即K最邻近算法,是数据挖掘分类技术中最简单的方法之一。简单来说,它是根据“邻近”这一特征来对样本进行分类。导图中使用鸢尾花数据集利用KNN进行分类案例,详细可以参照下面链接
Python matplotlib绘制散点图之基本配置–鸢尾花案例



