机器学习实战学习笔记 一 k-近邻算法

k-近邻算法很简单,这里就不赘述了,主要看一下python实现这个算法的一些细节。下面是书中给出的算法的具体实现。

def clssify(inX,dataset,label,k):#计算距离datasetSize = dataset.shape[0]diffMat = tile(inX,(dataSize,1))-datasetsqdiffMat = diffMat ** 2distance = sqdiffMat.sum(axis = 1)sorteddistance = distance.argsort()labelcount = {}for i in range(k):label_index = label[sorteddistance[i]]labelcount[label_index] = sortedlabel = sorted(labelcount.iteritems(),key = operator.itemgetlabelcount.get(label_index,0)+1ter(0),reverse = True)
    return sortedlabel[0][0]

  我学习python没多长时间,一句一句来学习这段代码,发现收获不小。首先来看第一句,dataset.shape[0]返回的是dataset这个array的行数。

tile这个函数非常牛逼啊,我只说它在这个里面是什么意思,我们知道inX是个向量,而dataset是个矩阵,两者之间要进行相减的运算,需要把这个向量也补成一个和dataset有相同行数列数的矩阵,怎么个补法呢。这就要看tile()的第二个参数了,也就是上面的(datasetsize,1),这个参数的意思就是把inX补成有datasetsize行数的矩阵。

假如inX是(1,2) datasetsize =3 那么经过tile()转换后产生了一个这样的矩阵([1,2],[1,2],[1,2])

然后和dataset相减就是根据矩阵的减法进行的。接下来看sqdiffMat.sum(axis = 1)这句,假如sqdiffMat是([1,2],[0,1],[3,4])关注下axis这个参数,它影响了你对矩阵求和时候的顺序,axis=0是按照行求和,axis=1是按照列进行求和,因此这样的求和结果就是([4,7])。至于argsort()这个函数的作用很简单,就是把向量中每个元素进行排序,而它的结果是元素的索引形成的向量。例子如下:

distance是这么个东西------([1,4,3])

经过distance.argsort()之后的结果是([0,2,1])

另外需要主意的一点是sorted()函数返回的是一个list。

转载于:https://www.cnblogs.com/lianwl/p/3314964.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/493808.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

最全的大数据解决方案(多图)

来源:网络大数据未来智能实验室是人工智能学家与科学院相关机构联合成立的人工智能,互联网和脑科学交叉研究机构。未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网&…

Foreach语法

先看例子&#xff1a; Random rand new Random(47);float f[] new float[10];for(int i 0; i < 10; i){f[i] rand.nextFloat();}for(float x: f) {System.out.println(x);} foreach语法&#xff1a; for(float x: f) {System.out.println(x);}转载于:https://www.cnblog…

图像分割

图像分割是指将图像中具有特殊意义的不同区域划分开来&#xff0c; 这些区域互不相交&#xff0c;每个区域满足灰度、纹理、彩色等特征的某种相似性准则。图像分割是图像分析过程中最重要的步骤之一&#xff0c;分割出的区域可以作为后续特征提取的目标对象。 本文主要包括以下…

重磅:IBM 340亿美元收购红帽软件,开源生态或将迎来重大变化

来源&#xff1a;人工智能和大数据北京时间10月29日上午消息&#xff0c;据报道&#xff0c;IBM周日宣布&#xff0c;将以约340亿美元价格收购开源软件和技术主要供应商红帽公司&#xff08;Red Hat&#xff09;。根据两家公司的联合声明&#xff0c;IBM将支付现金&#xff0c;…

ACM/ICPC竞赛

第04篇 ACM/ICPC竞赛之STL--vector 在STL的<vector>头文件中定义了vector&#xff08;向量容器模板类&#xff09;&#xff0c;vector容器以连续数组的方式存储元素序列&#xff0c;可以将vector看作是以顺序结构实现的线性表。当我们在程序中需要使用动态数组时&#xf…

阈值分割与区域分割

本文主要包括以下内容 阈值分割技术基于区域的图像分割技术本章的典型案例 基于LoG和Canny算子的精确边缘检测基于Hough变换的直线检测图像的四叉树分解 阈值分割 我们曾在3.5节学习过灰度阈值变换的相关知识&#xff0c; 利用灰度阈值变换分割图像就称为阈值分割&#xf…

边缘计算芯片格局分析

来源&#xff1a;半导体行业观察 近日&#xff0c;华为和比特大陆纷纷发布了针对边缘计算的新芯片产品。华为的Ascend系列采用达芬奇架构&#xff0c;其中Ascend 310功耗8W算力8TOPS正是针对边缘计算市场。而之后比特大陆发布的BM1682和BM1880也是针对边缘计算市场&#xff0c;…

基于PCA的人脸特征抽取

我们将应用PCA技术来抽取人脸特征。一幅人脸照片往往由比较多的像素构成&#xff0c;如果以每个像素作为1维特征&#xff0c;将得到一个维数非常高的特征向量&#xff0c; 计算将十分困难&#xff1b;而且这些像素之间通常具有相关性。这样&#xff0c;利用PCA技术在降低维数的…

[置顶] 删除:大数据取舍之道读书笔记

1 对于人类而言&#xff0c;遗忘一直是常态&#xff0c;而记忆才是例外。然而&#xff0c;由于数字技术与全球网络的发展&#xff0c;这种平衡已经被打破了。如今&#xff0c;往事正像刺青一样刻在我们的数字皮肤上&#xff0c;遗忘已经变成了例外&#xff0c;而记忆却成了常态…

超市的100年发展史:好日子终结 亚马逊无人店是趋势

来源&#xff1a;网易智能 电商巨头亚马逊已经在旧金山、西雅图和芝加哥等地开设了多家无人便利店Amazon Go&#xff0c;它们向顾客展现了无缝购物体验这种未来购物模式&#xff0c;它依赖于高科技追踪技术&#xff0c;消费者只需将商品从货架上取下&#xff0c;并放入帆布手提…

图像识别初步

本文主要包括以下内容 模式与模式识别的基本概念过度拟合最小距离分类器基于相关的模板匹配本章的典型案例分析 基于最小距离分类器的鸾尾属植物分类基于相关技术的图像模式匹配 模式识别概述 模式识别(Pattern Recognition)是人类的一项基本智能&#xff0c;在日常生活中…

下一个人才大缺口:量子计算研究人员

来源&#xff1a;36Kr初创公司Zapata Computing的创始人兼首席执行官克里斯托弗萨瓦&#xff08;Christopher Savoie&#xff09;表示&#xff0c;他向三位专攻量子计算的外国科学家提供了就业机会&#xff0c;他在等他们的工作签证获得批准。但几个月过去了&#xff0c;这家位…

LIBCMTD.lib与libcpmtd冲突的解决方法。

error: 1>uafxcwd.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2YAPAXIZ) 已经在 LIBCMTD.lib(new.obj) 中定义 1>uafxcwd.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete(void *)" (??…

基于PCA和SVM的人脸识别

svm推广到多类情况 一对多的最大响应策略(one against all) 假设有A 、B、C.. D四类样本需要划分。在抽取训练集的时候&#xff0c;分别按照如下4种方式划分。 A. 所对应的样本特征向量作为正集&#xff08;类标签为1), B、C、D所对应的样本特征向量作为负集&#xff08;类…

为何协作机器人能够兴起?“协作机器人-激烈的市场谁能杀出重围”

来源&#xff1a;机器人大讲堂作者&#xff1a;包文涛&#xff0c;哈尔滨工业大学机器人研究所工学硕士&#xff0c;在机器人和工业自动化领域有超过10年的专业经验。曾任职于ABB集团&#xff0c;先后在新加坡、美国、加拿大等地工作&#xff0c;在产品管理、技术方案、项目工程…

5款新颖的ReSharper插件

ReSharper是著名的代码生成工具。自ReSharper 8.0版本发布以来&#xff0c;新的扩展管理器、模板设置、分发安装等功能改革使得对插件的要求变高。接下来小编整理了5款新颖插件。 JetBox 当开发者工作在不同的机器设备时&#xff0c;这个插件可以利用DropBox同步ReSharper设置。…

机器学习实战之K近邻算法

k近邻算法概述 简单地说,K近邻算法采用测量不同特征值之间的距离方法进行分类。 优 点 :精度高、对异常值不敏感、无数据输入假定。 缺点:计算复杂度高、空间复杂度高。 适用数据范围:数值型和标称型。 它的工作原理是:存在一个样本数 据集合,也称作训练样本集,并且样本集…

神经网络的叛离:32年前从心理学与生理学分离的瞬间

来源&#xff1a;大数据文摘编译&#xff1a;Andy反向传播算法隶属于深度学习&#xff0c;它在解决模型优化问题的方面有着重要的地位。这一算法由被誉为深度学习之父的Geoffrey Hinton提出。1986年&#xff0c;他发表了名为Learning representations by back-propagating erro…

希尔排序-插入改进

引自&#xff1a;http://hi.baidu.com/gsgaoshuang/item/17a8ed3c24d9b1ba134b14c2 学习算法的一个好网站 http://student.zjzk.cn/course_ware/data_structure/web/paixu/paixu8.2.2.1.htm 希尔排序&#xff08;Shell Sort&#xff09;又称为缩小增量排序&#xff0c;输入插入…

机器学习实战之决策树

你是否玩过二十个问题的游戏,游戏的规则很简单:参与游戏的一方在脑海里想某个事物,其他参与者向他提问题,只允许提20个问题,问题的答案也只能用对或错回答。问问题的人通过 推断分解,逐步缩小待猜测事物的范围。决策树的工作原理与20个问题类似,用户输人一系列数 据,然后给出游…