k近邻算法(KNN k nearest neighbor),一种基本的分类和回归方法。
工作原理为:
存在一个样本数据集合,即训练样本集,且样本集中每个数据都有标签,我们知道样本集中每个数据与其所属分类的对应关系。输入没有标签的数据后,将新数据的每个特征与样本集中的数据对应的特征进行比较,然后算法提取样本集中特征最相似的数据。一般,我们只选择样本数据集中前k个最相似的数据,这里的k就是k-近邻算法的中k的出处,通常k不大于20.最后,选择k个最相似数据中出现次数最多的分类,作为新数据分类。
算法:
对未知类别属性的数据集中的每个点一次计算一下步骤
(1)计算已知类别数据集中的点与当前点之间的距离;
(2)按照距离递增次序排序;
(3)选取与当前点距离最小的k个点;
(4)确定前k个点所在类别上的出现频率
(5)返回前k个点出现频率最高的类别作为当前点的预测分类
简单python代码:
from numpy import * import operator def createDataSet(): group = array([[1.0,1.1],[1.0,1.0],[0,0],[0,0.1]]) labels = ['A','A','B','B'] return group,labels def classify0(inX,dataSet,labels,k): dataSetSize = dataSet.shape[0] diffMat = tile(inX,(dataSetSize,1))-dataSet sqDiffMat = diffMat**2 sqDistances = sqDiffMat.sum(axis=1) distances = sqDistances**0.5 #返回距离从小到大排序的序号 sortedDistIndicies =distances.argsort() print sortedDistIndicies classCount={} for i in range(k): #获取前k个对应的分类 votelabel = labels[sortedDistIndicies[i]] #统计每种分类的数量 classCount[votelabel] = classCount.get(votelabel,0) +1 #将统计得到得数量从大到小排量,分类数量较大的即为最终分类结果 sortedClassCount = sorted(classCount.iteritems(),key =operator.itemgetter(1),reverse=True) return sortedClassCount[0][0] if __name__=='__main__': group,labels = createDataSet() print group,labels count = classify0([0,0],group,labels,3) print count
相关推荐
机器学习实战-k-近邻算法改进约会网站的配对效果,包括KNN.py,datingTestSet.txt,datingTestSet2.txt,testknn.py
机器学习实战 - k近邻算法(KNN算法)总结 适合机器学习实战入门新手 K-近邻算法,又称为 KNN 算法,是数据挖掘技术中原理最简单的算法。 KNN 的工作原理:给定一个已知类别标签的数据训练集,输入没有标签的新数据...
《机器学习实战》-Ch2-k-近邻算法-源代码,笔记链接见:https://blog.csdn.net/qq_34243930/article/details/84948770
本代码主要利用Python工具实现k-近邻算法,简单明了,易于理解
本资源为源自于机器学习实战的第二章k近邻算法中的全部源代码,共分为3部分,第一部分是最简单的分类器,第二部分是改进的分类器,第三部分是用于识别手写数字。全部源代码+全部测试数据+详细注释。
机器学习实战2.2示例: 使用k-近邻算法改进约会网站的配对效果数据集
本实例参照机器学习实战一书在python3上将K-近邻算法进行实现,里面包括喜好分类和手写数字识别
k-近邻算法的课件。来自于菊安酱的机器学习实战12期的免费教程。内涵python源码。
KNN(K- Nearest Neighbor)法即K最邻近法,最初由 Cover和Hart于1968年提出,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一。该方法的思路非常简单直观:如果一个样本在特征空间中的K个最相似(即特征...
21世纪以来,在数据和计算能力指数式增长的支持下,机器学习算法在应用中取得了重大突破,如人脸识别、语音识别、自然语言处理、网页搜索、购物推荐、自动化交易等方面都取得了突破性进展,掀起了新一轮的人工智能...
K近邻算法实战,精确的高,感兴趣的可以看一看
额、、、最近开始学习机器学习嘛,网上找到一本关于机器学习的书籍,名字叫做《机器学习实战》。很巧的是,这本书里的算法是用Python语言实现的,刚好之前我学过一些Python基础知识,所以这本书对于我来说,无疑是...
K近邻算法,包括手写识别系统,简易实现。以及如何使用距离测量的方法分类物品;...依据机器学习实战数据完成K近邻算法约会网站和手写数字识别系统。备注:请注意python版本问题,其他实现中出现的问题欢迎交流哦。
NULL博文链接:https://zfm-06dk.iteye.com/blog/2083459
Python数据分析与机器学习实战课程,全套14.17G,仅有免密视频,课程目录: 01 人工智能入门指南 02 科学计算库-numpy 03 数据分析处理库-Pandas 04 可视化库-Matplotlib 05 机器学习入门算法实战-K近邻 06 线性回归...
5、K近邻算法实战(源码示例) 6、常用机器学习算法原理教程(ppt、pdf) 7、Python实现逻辑回归与梯度下降(源码示例) 8、项目实战-交易数据异常检测(源码示例) 9、使用sklearn构造决策树模型(源码示例) 10、...
使用python3.0版本修改了书本身使用的python2版本代码
机器学习实战_K近邻算法 ——手写数字预测 调用的是自己编写的分类器classify0,主要是为了学习理论原理;在实际是项目中通常调用工具包的api接口,比如sklearn,这也体现了python的一个便利性,不用总是自己造轮子...
kNN python 机器学习