摘要:K近邻(k-NearestNeighbor,K-NN)算法是一个有监督的机器学习算法,也被称为K-NN算法,由Cover和Hart于1968年提出,能够用于解决分类问题和回归问题。
k-近邻算法,也叫KNN算法,是一个很是适合入门的算法算法
拥有以下特性:机器学习
● 思想极度简单学习
● 应用数学知识少(近乎为零)3d
● 对于各位开发者来讲,不少不擅长数学,而KNN算法几乎用不到数学专业知识rest
● 效果好orm
○ 虽然算法简单,但效果出奇的好blog
○ 缺点也是存在的,后面会进行讲解开发
● 能够解释机器学习算法使用过程当中的不少细节问题get
○咱们会利用KNN算法打通机器学习算法使用过程,研究机器学习算法使用过程当中的细节问题数学
● 更完整的刻画机器学习应用的流程
○ 对比经典算法的不一样之处
○ 利用pandas、numpy学习KNN算法
上图中的数据点是分布在一个特征空间中的,一般咱们使用一个二维的空间演示
横轴表示肿瘤大小,纵轴表示发现时间。
恶性肿瘤用蓝色表示,良性肿瘤用红色表示。
此时新来了一个病人
如上图绿色的点,咱们怎么判断新来的病人(即绿色点)是良性肿瘤仍是恶性肿瘤呢?
k-近邻算法的作法以下:
取一个值k=3(此处的k值后面介绍,如今你们能够理解为机器学习的使用者根据经验取得了一个经验的最优值)。
k近邻判断绿色点的依据就是在全部的点中找到距离绿色点最近的三个点,而后让最近的点所属的类别进行投票,咱们发现,最近的三个点都是蓝色的,因此该病人对应的应该也是蓝色,即恶性肿瘤。
本质:两个样本足够类似,那么他们两个就具备更高几率属于同一个类别。
但若是只看一个,可能不许确,因此就须要看K个样本,若是K个样本中大多数属于同一个类别,则被预测的样本就极可能属于对应的类别。这里的类似性就依靠举例来衡量。
这里我再举一个例子
● 上图中和绿色的点距离最近的点包含两个红色和一个蓝色,此处红色点和蓝色点的数量比为2:1,则绿色点为红色的几率最大,最后判断结果为良性肿瘤。
● 经过上述发现,K近邻算法善于解决监督学习中的分类问题