k-近邻算法实例
1. 简单例子
步骤
1.1 计算已知点和被求点的距离
1.2 按距离递增排序
1.3 求出距离最近的前k个点的类别最大值作为目标分类
from numpy import *
import operator def createDateSet():
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)
distance = sqDistances ** 0.5
sortDistIndices = distance.argsort()
classCount = {}
for i in range(k):
voteIlable = labels[sortDistIndices[i]]
classCount[voteIlable] = classCount.get(voteIlable, 0) + 1
sortedClassCount = sorted(classCount.iteritems(),
key = operator.itemgetter(1), reverse=True)
return sortedClassCount[0][0] if __name__ == "__main__":
group, labels = createDateSet()
inX = [1.1, 0.2]
k = 3
aimClass = classify0(inX, group, labels, k)
print aimClass
语法解析
a. shape()得到矩阵的各个维度的长度
b. tile,举例
>>> a
[1, 2]
>>> tile(a, 2)
array([1, 2, 1, 2])
>>> tile(a, (2,2))
array([[1, 2, 1, 2],
[1, 2, 1, 2]])
>>> tile(a, (3, 2,2))
array([[[1, 2, 1, 2],
[1, 2, 1, 2]], [[1, 2, 1, 2],
[1, 2, 1, 2]], [[1, 2, 1, 2],
[1, 2, 1, 2]]])
c. sortDistIndices = distance.argsort() 得到排序后的名次,越大名次越大
d. sortedClassCount = sorted(classCount.iteritems(), key = operator.itemgetter(1), reverse=True) 对字典的值进行逆序(降序)排序
k-近邻算法实例的更多相关文章
- 从K近邻算法谈到KD树、SIFT+BBF算法
		转自 http://blog.csdn.net/v_july_v/article/details/8203674 ,感谢july的辛勤劳动 前言 前两日,在微博上说:“到今天为止,我至少亏欠了3篇文章 ... 
- k近邻算法
		k 近邻算法是一种基本分类与回归方法.我现在只是想讨论分类问题中的k近邻法.k近邻算法的输入为实例的特征向量,对应于特征空间的点,输出的为实例的类别.k邻近法假设给定一个训练数据集,其中实例类别已定. ... 
- 机器学习——KNN算法(k近邻算法)
		一 KNN算法 1. KNN算法简介 KNN(K-Nearest Neighbor)工作原理:存在一个样本数据集合,也称为训练样本集,并且样本集中每个数据都存在标签,即我们知道样本集中每一数据与所属分 ... 
- <转>从K近邻算法、距离度量谈到KD树、SIFT+BBF算法
		转自 http://blog.csdn.net/likika2012/article/details/39619687 前两日,在微博上说:“到今天为止,我至少亏欠了3篇文章待写:1.KD树:2.神经 ... 
- 分类算法----k近邻算法
		K最近邻(k-Nearest Neighbor,KNN)分类算法,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一.该方法的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的 ... 
- 1. K近邻算法(KNN)
		1. K近邻算法(KNN) 2. KNN和KdTree算法实现 1. 前言 K近邻法(k-nearest neighbors,KNN)是一种很基本的机器学习方法了,在我们平常的生活中也会不自主的应用, ... 
- 用Python从零开始实现K近邻算法
		KNN算法的定义: KNN通过测量不同样本的特征值之间的距离进行分类.它的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别.K通 ... 
- K近邻算法小结
		什么是K近邻? K近邻一种非参数学习的算法,可以用在分类问题上,也可以用在回归问题上. 什么是非参数学习? 一般而言,机器学习算法都有相应的参数要学习,比如线性回归模型中的权重参数和偏置参数,SVM的 ... 
- [转]K近邻算法
		什么是K近邻算法 何谓K近邻算法,即K-Nearest Neighbor algorithm,简称KNN算法,单从名字来猜想,可以简单粗暴的认为是:K个最近的邻居,当K=1时,算法便成了最近邻算法,即 ... 
- 算法入门系列2:k近邻算法
		用官方的话来说,所谓K近邻算法(k-Nearest Neighbor,KNN),即是给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的K个实例(也就是上面所说的K个邻居), 这K个 ... 
随机推荐
- 从.git文件夹探析git实现原理
			git是一款分布式代码版本管理工具,通过git能够更加高效地协同编程.了解git的工作原理将有助于我们使用git工具更好地管理项目.通过了解.git文件夹中的文件组成,我们可以从一个角度去窥探git的 ... 
- 《java.util.concurrent 包源码阅读》20 DelayQueue
			DelayQueue有序存储Delayed类型或者子类型的对象,没当从队列中取走元素时,需要等待延迟耗完才会返回该对象. 所谓Delayed类型,因为需要比较,所以继承了Comparable接口: p ... 
- cmd markdown  使用教程
			cmd markdown 使用教程 tags: 自制教程 李卓伦 目录: [TOC] 一.简介与安装 我们理解您需要更便捷更高效的工具记录思想,整理笔记.知识,并将其中承载的价值传播给他人,Cmd M ... 
- memcached 缓存数据库应用实践
			1.1 数据库对比 缓存: 将数据存储到内存中,只有当磁盘胜任不了的时候,才会启用缓存 缺点:断电数据丢失(双电),用缓存存储数据的目的只是为了应付大并发的业务. 数据库: mysql(关系型数据 ... 
- HDU 1014 Uniform Generator 欧几里得
			题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1014 解题思路: 1. 把题目意思读懂后,明白会输入两个数,然后根据题中的公式产生一系列伪随机数,看这 ... 
- 十一招让Ubuntu 16.04用起来更得心应手(转)
			ubuntu 16.04是一种长期支持版本(LTS),是Canonical承诺发布五年的更新版.也就是说,你可以让这个版本在电脑上运行五年! 这样一来,一开始就设置好显得特别重要.你应该确保你的软件是 ... 
- mysql事务使用 超简单
			MySQL的事务支持不是绑定在MySQL服务器本身,而是与存储引擎相关1.MyISAM:不支持事务,用于只读程序提高性能 2.InnoDB:支持ACID事务.行级锁.并发 3.Berkeley DB: ... 
- WinForm程序,实现只启动一个实例
			前言:在我们做的软件中,当点击图标运行时,正常的需求是只需要启动一个软件的实例,这是非常重要的一点,不然就显得我们的软件非常的山寨,笔者在工作中经常遇到同事没有注意这一点,看是不重要,实则非常的重要, ... 
- QT制作一个图片播放器
			前言:使用qt制作了一个简单的图片播放器,可以播放gif.png等格式图片 先来看看播放器的功能(当然是很简陋的,没有很深入的设计): 1.点击图片列表中图片进行播放. 2.自动播放,播放的图片的间隔 ... 
- Backbone简单示例
			要的资源: <script type="text/javascript" src="../dep/underscore-1.6.0.min.js"> ... 
