KNN算法及python实现

作者: maxZhang | 来源:发表于2017-09-19 13:40 被阅读378次

KNN算法又称最邻近规则分类((K-Nearest Neighbor)

由Cover和Hart在1968年提出了邻近算法。是机器学习中的一种分类算法。是一种实例学习(instance-based learning)和懒惰学习(lazy learning)的算法,因为每一次学习是根据实例而来。懒惰学习,因为在处理训练集时未建立任何的模型,而是在开始归类时进行和已知类型的比较进行分类。下面我们看一个常见的KNN分类问题,也就是电影类型的划分如下 pic1 我们把以上表格中的数据转换成坐标形式如下 pic2 通过上面的转换,也就是把问题变成了对未知点类型的判定了(Romance类型或Action类型)

算法详述

通过上面点的转化后,我们根据KNN算法判定它的具体类型。KNN算法判定步骤如下:
a.选择参数的范围,即参数的个数我们计为k
b.计算未知实例与我们选取范围内的实例距离
c.根据少数服从多刷的投票法则(majority-voting),让未知实例归类为K个最邻近样本中最多数的类别
注意点: 因为最终用到少数服从多数的原则,所以选取k的时候我们务必选取奇数。

我们知道平面中两个点的距离计算公式为: pic3 在上面的例子中,得出A-F点距离G点的距离分别为:
d_ag 20.518284528683193
d_bg 18.867962264113206
d_cg 19.235384061671343
d_dg 115.27792503337315

d_eg 117.41379816699569
d_fg 118.92854997854805
选择K等于3,则发现前3个距离最近,所以G点归为Romance类型电影,如果K=3中有一部Action类型,本着少数服从多数,仍然归纳为Romance类型电影。

当多维实例计算时,公式如下: pic4 注意点:为了考虑分类算法的健壮性,一般我们还会加上权重判断,例如权重为1/d。具体看下图的例子,如果我们不考虑权重,当我们取k=13时候,发现蓝色的点更多归类为蓝色类,但从下面的图应该归类为红色。 pic5

python代码实现

python里面已经内置了鸢尾花分类实例,下面以鸢尾花为例子进行KNN分类预测

from sklearn import neighbors
from sklearn import datasets

# 创建KNN分类器
knn = neighbors.KNeighborsClassifier()

#加载python中默认的鸢尾花分类数据
iris = datasets.load_iris()

#输出数据 包括特征值和target部分
print(iris)

#根据已经有的数据进行训练
knn.fit(iris.data, iris.target)

#作出预测, 花瓣的值
predicatedLabel = knn.predict([[0.1, 0.2, 0.3, 0.4]])

#输出预测标记
print(predicatedLabel)

相关文章

  • K近邻(KNN)算法详解及Python实现

    K近邻(KNN)算法详解及Python实现 今天浏览网页看到一篇用Python实现K近邻(KNN)算法的详解教程,...

  • 利用Python进行数字识别

    思路 通过Python实现KNN算法。而KNN算法就是K最近邻(k-Nearest Neighbor,KNN)分类...

  • k-近邻算法

    算法实现:python knn.py test.py

  • KNN算法及python实现

    KNN算法又称最邻近规则分类((K-Nearest Neighbor) 算法详述 通过上面点的转化后,我们根据KN...

  • 机器学习-KNN算法

    python实现: #coding:utf-8 ''' KNN算法 ''' fromnumpyimport* im...

  • 分类算法之K最近邻算法(KNN)的python实现

    分类算法之K最近邻算法(KNN)的Python实现 KNN的定义 所谓K近邻算法,即是给定一个训练数据集,对新的输...

  • KNN近邻算法总结

    目录 一、KNN近邻算法思想 二、KNN模型三大要素 三、KNN算法实现步骤 四、KNN算法的KD树实现 五、总结...

  • KNN算法python实现

    KNN算法python实现。 原理 可参考其它地方 优点 算法简单,精度比较高 易于理解,易于实现,不需要训练 缺...

  • KNN算法及算法实现

    K近邻法 k近邻(k-nearest neighbor,k-NN)十一中基本分类与回归方法,k近邻法假设给定一个训...

  • knn算法及实现

    什么是KNN 在解释KNN之前,我先给大家举个例子:假如现在院子里分别在不同的栅栏里饲养了10只鸡,8条狗,5只猫...

网友评论

    本文标题:KNN算法及python实现

    本文链接:https://www.haomeiwen.com/subject/lplhsxtx.html