机器学习-无监督学习-KNN算法

机器学习—无监督学习-KNN算法
1.KNN算法是什么?
KNN算法是一种监督式学习算法,核心思想是用距离最近的k个样本数据的分类来代表目标数据的分类。从原理上来说,
存在一个训练样本集,这个数据训练样本的数据集合中的每个样本都包含数据的特征和目标变量(即分类值),输入新的不含目标变量的数据,将该数据的特征与训练样本集中每一个样本进行比较,找到最相似的k个数据,这k个数据出席那次数最多的分类,即输入的具有特征值的数据的分类。
原理举例:
训练样本集中包含一系列数据,这个数据包括样本空间位置(特征)和分类信息(即目标变量,属于红色三角形还是蓝色正方形),要对中心的绿色数据的分类。运用kNN算法思想,距离最近的k个样本的分类来代表测试数据的分类,那么:
当k=3时,距离最近的3个样本在实线内,具有2个红色三角和1个蓝色正方形**,因此将它归为红色三角。
当k=5时,距离最近的5个样本在虚线内,具有2个红色三角和3个蓝色正方形**,因此将它归为蓝色正方形。
机器学习-无监督学习-KNN算法
2.KNN算法解决什么样的场景?以及应用的特性
(1).简单、易实现、易理解,无需参数估计及训练(监督学习:可以看到,kNN算法首先需要一个训练样本集,这个集合中含有分类信息,因此它属于监督学习。 通过计算距离来衡量样本之间相似度,算法简单,易于理解和实现。)
(2).适用于多分类问题
(3).总的思想是:“物以类聚”
3.KNN算法的优点和缺点?
优点
(1)监督学习:可以看到,kNN算法首先需要一个训练样本集,这个集合中含有分类信息,因此它属于监督学习。
(2)通过计算距离来衡量样本之间相似度,算法简单,易于理解和实现。
(3)对异常值不敏感

缺点
(4)需要设定k值,结果会受到k值的影响,通过上面的例子可以看到,不同的k值,最后得到的分类结果不尽相同。k一般不超过20。
(5)计算量大,需要计算样本集中每个样本的距离,才能得到k个最近的数据样本。
(6)训练样本集不平衡导致结果不准确问题。当样本集中主要是某个分类,该分类数量太大,导致近邻的k个样本总是该类,而不接近目标分类。
4.KNN算法实现流程
机器学习-无监督学习-KNN算法