0415学习笔记:实施kNN算法

转载 2018年04月15日 12:52:47
def classify0(inX, dataSet, labels, k): #inX is input vector, dataSet is training set 用于分类的输入向量是inX,输入的训练样本集为dataSet,标签向量为labels,最后的参数k表示用于选择最近邻居的数目
    dataSetSize = dataSet.shape[0] #返回行数
    diffMat = tile(inX, (dataSetSize,1)) - dataSet #tile创建datasetsize维数组
    sqDiffMat = diffMat ** 2
    sqDistances = sqDiffMat.sum(axis=1)#axis=1表示按行相加
    distance = sqDistances ** 0.5
    sortedDistIndicies = distance.argsort()#数据按照从小到大的次序排序,argaort返回排序后元素在原对象中的下标
    classCount = {} #建立label:label出现次数字典
    for i in range(k):
        voteIlabel = labels[sortedDistIndicies[i]]
        classCount[voteIlabel] = classCount.get(voteIlabel,0) + 1
    sortedClassCount = sorted(classCount.iteritems(),
                              key = operator.itemgetter(1),reverse = True)
#将classCount字典分解成元组列表,然后使用程序第二行导入运算符模块的itemgetter方法,按照第二个元素的次序对元组进行排序
    return sortedClassCount[0][0]

##k-近邻算法是基于实例的学习,使用算法时必须有接近实际数据的训练样本数据。

#k-近邻算法必须保存全部数据集,如果训练数据集很大,必须使用大量的存储控件。此外,由于必须对数据集中的每个数据计算距离值,实际使用时可能非常耗时。

#k-近邻算法的另一个缺陷是它无法给出任何数据的基础结构信息,因此我们也无法知晓平均实例样本和典型实例样本具有社么特征

测试数据所在分类

kNN.classify([0,0],group,labels,3)

DTO的迷思,以及“对象”和“数据结构”

“对象不应该有public的field,应该用getter/setter将field封装起来。”我们对于这个规则已经太熟悉,熟悉得完全忘记了它的由来。Uncle Bob提出了一个问题:完全用于传输数据...
  • gigix
  • gigix
  • 2004-02-27 10:25:00
  • 3690

【机器学习】k-近邻算法(kNN) 学习笔记

【机器学习】k-近邻算法(kNN) 学习笔记标签(空格分隔): 机器学习kNN简介kNN算法是做分类问题的。思想如下:KNN算法的思想总结一下:就是在训练集中数据和标签已知的情况下,输入测试数据,将测...
  • fuxuemingzhu
  • fuxuemingzhu
  • 2017-04-03 19:31:46
  • 1673

机器学习算法笔记之1:kNN算法

一、k近邻算法 1、概述 k近邻(k-NearestNeighbor,简称kNN)算法是一种常见的监督学习算法。其工作机制可概括为:给定测试样本,基于某种距离度量找出训练集中与其距离最近的k个训练样本...
  • marsjhao
  • marsjhao
  • 2017-03-15 20:57:16
  • 1162

knn 算法

  • 2008年08月20日 23:15
  • 2KB
  • 下载

机器学习实战 笔记一:kNN分类算法

开发机器学习应用程序的步骤: 1、收集数据 2、准备输入数据 3、分析输入数据 4、训练算法 5、测试算法 6、使用算法 第一个算法:k-近邻算法 k-近邻算法的一般流...
  • ytyb2012
  • ytyb2012
  • 2017-03-23 20:41:43
  • 158

Python机器学习实战kNN分类算法

自学《机器学习实战》一书,书中的代码亲自敲一遍,努力搞懂每句代码的含义: 今天将第一章kNN分类算法的笔记总结一下。 # -*- coding: utf-8 -*- """ k-近邻算法小结: k...
  • huludan
  • huludan
  • 2016-03-23 21:29:42
  • 1620

Python实现KNN算法

  • 2018年02月21日 12:28
  • 909B
  • 下载

kNN算法及实例(一)

kNN算法又称为k近邻分类(k-nearest neighbor classification)算法。简单的分类就是待分类的数据与哪条已分类的数据相同,那么它们就属于同一个类别,但是现实中多数数据不可...
  • congqi4525
  • congqi4525
  • 2017-05-07 21:35:01
  • 999

KNN算法简介

KNN(k-nearest neighbor)是一个简单而经典的机器学习分类算法,通过度量”待分类数据”和”类别已知的样本”的距离(通常是欧氏距离)对样本进行分类。 这话说得有些绕口,且来分解一番:...
  • huidaoyinhe
  • huidaoyinhe
  • 2016-04-01 17:05:55
  • 1751
收藏助手
不良信息举报
您举报文章:0415学习笔记:实施kNN算法
举报原因:
原因补充:

(最多只允许输入30个字)