KNN:

  1.数据挖掘分类技术中最简单的方法之一。

  2.也称为邻近算法,K最近邻分类算法

  3.每个样本都可以用它最接近的k个邻居来代表

  4.一般,距离使用欧式距离或曼哈顿距离(通常,k≤20)

python代码实现

  例子:

    已有的分类数据:

      A:(1.0,2.0)

      A:(1.2,0.1)

      B:(0.1,1.4)

      B:(0.3,3.5)

    测试数据:(1.1,0.3)

    推测结论(正确):A

  代码:

from array import array

from numpy import *
import operator ## 给出训练数据以及对应的类别
def createDataset():
group = array([[1.0,2.0],[1.2,0.1],[0.1,1.4],[0.3,3.5]])
labels = ['A','A','B','B']
return group,labels ###通过KNN进行分类
def classify(input,dataSet,label,k):
dataSize = dataSet.shape[0]
####计算欧式距离
diff = tile(input,(dataSize,1))-dataSet
sqdiff = diff ** 2
squareDist = sum(sqdiff,axis=1)###行向量分别相加,从而得到新的一个行向量
dist = squareDist ** 0.5 ##对距离进行排序
sortedDisIndex = argsort(dist)##argsort()根据元素的值从大到小对元素进行排序,返回下标 classCount={}
for i in range(k):
voteLabel =label[sortedDisIndex[i]]
###对选取的k个样本所属的类别个数进行统计
classCount[voteLabel] = classCount.get(voteLabel,0) + 1
###选取出现的类别次数最多的类别
maxCount = 0
for key,value in classCount.items():
if value > maxCount:
maxCount =value
classes =key return classes ##函数入口
if __name__ == '__main__':
dataSet,labels = createDataset()
input = array([1.1,0.3])
K=3
output = classify(input,dataSet,labels,K)
print("测试数据为:",input,"分类结果为:",output)

    运行结果:

    

KNN算法之图像处理一的更多相关文章

  1. KNN算法之图像处理二

    1.看了诸多博客,初步得到结论是:KNN不适合做图像分类. 2.如果偏要用此方法进行图像分类,距离计算为:对应的每个像素代表的像素值进行绝对差值计算,最后求和.这就是“图像的距离”

  2. 机器学习--kNN算法识别手写字母

    本文主要是用kNN算法对字母图片进行特征提取,分类识别.内容如下: kNN算法及相关Python模块介绍 对字母图片进行特征提取 kNN算法实现 kNN算法分析 一.kNN算法介绍 K近邻(kNN,k ...

  3. 机器学习实战 之 KNN算法

    现在 机器学习 这么火,小编也忍不住想学习一把.注意,小编是零基础哦. 所以,第一步,推荐买一本机器学习的书,我选的是Peter harrigton 的<机器学习实战>.这本书是基于pyt ...

  4. KNN 算法-实战篇-如何识别手写数字

    公号:码农充电站pro 主页:https://codeshellme.github.io 上篇文章介绍了KNN 算法的原理,今天来介绍如何使用KNN 算法识别手写数字? 1,手写数字数据集 手写数字数 ...

  5. 【Machine Learning】KNN算法虹膜图片识别

    K-近邻算法虹膜图片识别实战 作者:白宁超 2017年1月3日18:26:33 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本系列文章是作者结 ...

  6. KNN算法

    1.算法讲解 KNN算法是一个最基本.最简单的有监督算法,基本思路就是给定一个样本,先通过距离计算,得到这个样本最近的topK个样本,然后根据这topK个样本的标签,投票决定给定样本的标签: 训练过程 ...

  7. kNN算法python实现和简单数字识别

    kNN算法 算法优缺点: 优点:精度高.对异常值不敏感.无输入数据假定 缺点:时间复杂度和空间复杂度都很高 适用数据范围:数值型和标称型 算法的思路: KNN算法(全称K最近邻算法),算法的思想很简单 ...

  8. 什么是 kNN 算法?

    学习 machine learning 的最低要求是什么?  我发觉要求可以很低,甚至初中程度已经可以.  首先要学习一点 Python 编程,譬如这两本小孩子用的书:[1][2]便可.   数学方面 ...

  9. 数据挖掘之KNN算法(C#实现)

    在十大经典数据挖掘算法中,KNN算法算得上是最为简单的一种.该算法是一种惰性学习法(lazy learner),与决策树.朴素贝叶斯这些急切学习法(eager learner)有所区别.惰性学习法仅仅 ...

随机推荐

  1. mac终端 login: login: Could not determine audit condition

    手速太快,误操作:sudo chmod -R 777 / 这会导致终端命令用不了了,再次打开终端提示: Last login: Fri Jul 13 10:09:35 on ttys001 login ...

  2. Elasticsearch入门和查询语法分析(ik中文分词)

    全文搜索现在已经是很常见的功能了,当然你也可以用mysql加Sphinx实现.但开源的Elasticsearch(简称ES)目前是全文搜索引擎的首选.目前像GitHub.维基百科都使用的是ES,它可以 ...

  3. 20155210潘滢昊 2016-2017-2《Java程序设计》第一周学习总结

    20155210 2016-2017-2<Java程序设计>第一周学习总结 教材学习内容总结 1.1.1: 本节主要讲了Java的由来,1995年5月23日是Java公认的诞生日.还有版本 ...

  4. 学号 20155311 2016-2017-2 《Java程序设计》第1周学习总结

    学号 2016-2017-2 <Java程序设计>第1周学习总结 教材学习内容总结 JAVA三大平台**:Java SE.Java EE .Java ME. Java SE四个组成部分:J ...

  5. 课下测试CH01补交

    课下测试CH01补交 ( 单选题 | 1 分) Amdahl定律说明,我们对系统的某个部分做出重大改进,可以显著获得一个系统的加速比. A . 正确 B . 错误 正确答案: B 你的答案: 未作答 ...

  6. P,NP,NPC的通俗解释

    这或许是众多OIer最大的误区之一.    你会经常看到网上出现“这怎么做,这不是NP问题吗”.“这个只有搜了,这已经被证明是NP问题 了”之类的话.你要知道,大多数人此时所说的NP问题其实都是指的N ...

  7. 成都Uber优步司机奖励政策(4月15日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  8. 实时备份工具之inotify+rsync

    1.inotify简介 inotify 是一个从 2.6.13 内核开始,对 Linux 文件系统进行高效率.细粒度.异步地监控机制, 用于通知用户空间程序的文件系统变化.可利用它对用户空间进行安全. ...

  9. C#:设置CefSharp的一些参数,比如忽略安全证书

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 本次记录如何设置CefSharp忽略安全证书,以及他的一些其他配置 参考网址: https://peter.s ...

  10. macOS 10.14 Mojave 开发环境配置Apache多PHP版本

    第1部分:macOS 10.14 Mojave Web开发环境 在macOS上开发Web应用程序真是一种乐趣.设置开发环境有很多选择,包括广受欢迎的MAMP Pro,它在Apache,PHP和MySQ ...