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算法)总结 适合机器学习实战入门新手 K-近邻算法,又称为 KNN 算法,是数据挖掘技术中原理最简单的算法。 KNN 的工作原理:给定一个已知类别标签的数据训练集,输入没有标签的新数据...
在本实践项目中,我们将深入探讨如何利用机器学习中的k-近邻算法(K-Nearest Neighbors,简称KNN)来改进约会网站的配对效果。KNN是一种非参数监督学习方法,常用于分类和回归任务。在这个案例中,我们将关注其在...
《机器学习实战》是机器学习领域的一本经典教材,它以实践为导向,深入浅出地讲解了各种机器学习算法。Ch2章节主要聚焦在k-近邻(k-Nearest Neighbors, KNN)算法上,这是一种基础且重要的监督学习算法,广泛应用于...
在这个资源包中,你将找到《机器学习实战》这本书第二章关于k近邻算法的全部源代码,涵盖了从基础到进阶的应用,以及用于测试的完整数据集,并且每段代码都配有详细的注释。 首先,让我们深入了解k近邻算法的核心...
K-近邻算法的基本概念** KNN算法的核心思想是:对于给定的新样本,找到训练集中与之最近的k个样本,根据这k个样本的类别进行投票,以多数票决定新样本的类别。这里的“近”通常用欧氏距离、曼哈顿距离或余弦相似度...
本文档将深入探讨使用k-近邻(k-Nearest Neighbors, k-NN)算法实现的手写数字识别系统,该系统基于《机器学习实战》一书中的示例。这个项目旨在帮助读者理解k-NN算法的工作原理,并通过实际操作提升其在机器学习领域...
### 机器学习实战2.2示例:使用k-近邻算法改进约会网站的配对效果数据集 #### 概述 本示例基于《机器学习实战》中的一个经典案例,利用k-近邻(k-Nearest Neighbors, k-NN)算法来改善约会网站的配对效果。k-NN是...
《模式识别与机器学习实战》第二讲主要探讨了K-近邻算法,这是一种在机器学习领域广泛应用的基础算法。K-近邻算法(K-Nearest Neighbor, kNN)以其简单的概念和灵活的适用性,成为了分类任务中的一个重要工具。算法...
**K-近邻(KNN)算法**是机器学习领域中一种基础且直观的分类算法。它的核心思想是根据输入样本最接近的K个训练样本的类别来预测新样本的类别。KNN算法最早由Cover和Hart在1968年提出,是一种基于实例的学习方法,...
这个“机器学习实战k-NN实例二手写识别数据集”是一个用于实践k-NN算法的典型案例,它涉及到图像处理和模式识别。二手写识别是计算机视觉领域的一个经典任务,旨在通过分析手写字符的特征来自动识别字符类别。 首先...
《机器学习实战》是一部深入浅出的机器学习入门书籍,其中第二章主要讲解了K-近邻算法(K-Nearest Neighbors,简称kNN)。K-近邻算法是一种基于实例的学习方法,属于监督学习的范畴,常用于分类和回归问题。在本章节...
本资源包“机器学习实战-knn算法代码及数据集”专注于KNN算法的实现与应用,特别是针对手写数字识别的问题。下面将详细介绍KNN算法及其在手写数字识别中的应用。 一、KNN算法基础 1. 算法原理:KNN算法基于...
8. **实战代码**:提供的压缩包文件"K-近邻算法"可能包含了实现KNN算法的Python代码,通常会用到sklearn库中的`KNeighborsClassifier`类。代码中可能包括数据预处理、模型训练、预测和评估等步骤。 通过学习和理解...
**k-近邻算法概述** k-近邻(k-Nearest Neighbor,简称k-NN)是一种基础且直观的监督学习算法,广泛应用于分类和回归问题。它的核心思想是“物以类聚,人以群分”,即一个样本的类别可以根据其最接近的邻居来决定。...
**机器学习实战之K邻近算法** 在众多的机器学习算法中,K邻近算法(K-Nearest Neighbors,简称kNN)是一种基础且重要的监督学习方法。它基于实例学习,通过找到训练集中与未知样本最接近的k个邻居,来预测其类别或...
2. k-近邻算法 k-近邻算法是一种常用的分类算法,它的主要思想是根据实例的相似度来预测目标变量的值。k-近邻算法有很多变种,例如k-近邻分类、k-近邻回归等。 3. 决策树 决策树是一种常用的分类算法,它的主要...
在《机器学习实战-中文版1》中,第一章主要介绍了机器学习的基础概念和关键术语。机器学习是人工智能的一个分支,它让计算机系统能够从数据中自动学习和改进,而无需显式编程。书中强调了随着传感器技术的发展和海量...
K近邻算法实战,精确的高,感兴趣的可以看一看
额、、、最近开始学习机器学习嘛,网上找到一本关于机器学习的书籍,名字叫做《机器学习实战》。很巧的是,这本书里的算法是用Python语言实现的,刚好之前我学过一些Python基础知识,所以这本书对于我来说,无疑是...