大数据算法:kNN算法
\一、kNN算法概述
kNN是k-Nearest Neighbour的缩写,这是一种非常简单且易于理解的分类算法。回想我们从小到大在认知事物的过程当中,我们是如何判断一种事物是属于哪种类别的?通常的一种思路就是,分析当前这个事物与我们之前所知道的类别特征进行比对,找出最接近的一类,然后就可以把这个东西归属于这一个类别。kNN算法大致就是这么一个思路,直接通过测量不同特征值之间的距离来达到分类的目的。
kNN中的k是指在分类过程中,我们选择样本数据中前k个最相似的数据,以出现次数最多的分类,作为新数据的分类。这里的k通常是不大于20的正整数,k取3或者5的情况比较常见。
二、kNN算法的原理
首先是训练模型。对kNN而言,在编码过程中训练模型实际上就是记录训练集的所有数据,所以我们常说kNN没有训练模型这一过程。
接着是测试模型。测试过程有以下几个步骤:
1. 依次计算测试集数据与训练集各个数据之间的距离;
2. 对计算处理的距离进行递增排序;
3. 选择距离最小的k个数据;
4. 选择这k个数据中出现频率最高的类别作为测试数据的预测分类。
最后是评价模型。根据测试结果计算模型预测分类的准确率。
整个过程看上去非常简单、直观、明了。需要说明的是,文中一直提到的距离这个概念,指的是闵可夫斯基距离(Minkowski distance),对应数学上的Lp范数。
当p=1时,为曼哈顿距离(Manhattan distance),也称L1距离;
当p=2时,为欧式距离(Euclidean distance),也称L2距离;
当p=∞时,为切比雪夫距离(distance)。
在我们使用kNN算法时,常用L1距离和L2距离,且以L2距离使用更多。
三、算法评价
优点:kNN是最简单、最有效的分类器;精度高;对异常值(边缘值)不敏感。
缺点:需要记录所有训练集的数据,空间复杂度高;需要进行大量的计算,计算复杂度高;无法提取出数据内涵的结构信息。
注意点:由于计算距离时使用的是离散型数据,所以kNN算法常用于特征值为数值型和标称型的数据。如果数据特征值为连续值,则需要根据实际情况,对特征值进行离散采样或者采用其他算法模型。
大数据算法:kNN算法的更多相关文章
- 大数据的常用算法(分类、回归分析、聚类、关联规则、神经网络方法、web数据挖掘)
在大数据时代,数据挖掘是最关键的工作.大数据的挖掘是从海量.不完全的.有噪声的.模糊的.随机的大型数据库中发现隐含在其中有价值的.潜在有用的信息和知识的过程,也是一种决策支持过程.其主要基于人工智能, ...
- 【ArchSummit干货分享】个推大数据金融风控算法实践
作者:个推高级数据工程师 晓骏 众所周知,金融是数据化程度最高的行业之一,也是人工智能和大数据技术重要的应用领域.随着大数据收集.存储.分析和模型技术日益成熟,大数据技术逐渐应用到金融风控的各个环节. ...
- 数据挖掘之分类算法---knn算法(有matlab例子)
knn算法(k-Nearest Neighbor algorithm).是一种经典的分类算法.注意,不是聚类算法.所以这种分类算法 必然包括了训练过程. 然而和一般性的分类算法不同,knn算法是一种懒 ...
- 数据挖掘之分类算法---knn算法(有matlab样例)
knn算法(k-Nearest Neighbor algorithm).是一种经典的分类算法. 注意,不是聚类算法.所以这样的分类算法必定包含了训练过程. 然而和一般性的分类算法不同,knn算法是一种 ...
- 二. 大数据常用的算法和数据结构 <<大数据日知录>> 读书笔记
基本上是hash实用的各种举例 布隆过滤器 Bloom Filter 常用来检测某个原色是否是巨量数据集合中的成员,优势是节省空间,不会有漏判(已经存在的数据肯定能够查找到),缺点是有误判(不存在的数 ...
- 《大数据日知录》读书笔记-ch3大数据常用的算法与数据结构
布隆过滤器(bloom filter,BF): 二进制向量数据结构,时空效率很好,尤其是空间效率极高.作用:检测某个元素在某个巨量集合中存在. 构造: 查询: 不会发生漏判(false negativ ...
- 大数据 --> 一致性Hash算法
一致性Hash算法 一致性Hash算法(Consistent Hash)
- 机器学习笔记--KNN算法1
前言 Hello ,everyone. 我是小花.大四毕业,留在学校有点事情,就在这里和大家吹吹我们的狐朋狗友算法---KNN算法,为什么叫狐朋狗友算法呢,在这里我先卖个关子,且听我慢慢道来. 一 K ...
- 机器学习实战(笔记)------------KNN算法
1.KNN算法 KNN算法即K-临近算法,采用测量不同特征值之间的距离的方法进行分类. 以二维情况举例: 假设一条样本含有两个特征.将这两种特征进行数值化,我们就可以假设这两种特种分别 ...
- 机器学习【三】k-近邻(kNN)算法
一.kNN算法概述 kNN算法是用来分类的,其依据测量不同特征值之间的距离,其核心思想在于用距离目标最近的k个样本数据的分类来代表目标的分类(这k个样本数据和目标数据最为相似).其精度高,对异常值不敏 ...
随机推荐
- window JNI_CreateJavaVM启动java程序
https://blog.csdn.net/earbao/article/details/51889605 #define _CRT_SECURE_NO_WARNINGS 1 #inclu ...
- 为了好好看球,学霸们用深度学习重建整个比赛3D全息图
http://mp.ofweek.com/vr/a745673021206 周四晚上11点,万众瞩目的世界杯终于开踢了,虽然意大利.荷兰.智利.中国(手动滑稽)等强队没能进入本届世界杯,但C罗梅西谁主 ...
- 轻量级MVC框架的实现
_ 写一个通用控制器,在开发的时候只用写模型和视图. 注:请求路径和模型的对应关系 step1.添加一个注解@RequestMapping /** 自定义注解:用于配置请求路径和处理器的对应关系. * ...
- Cookie&Session与自定义session
cookie与session的区别? cookie是保存在浏览器端的键值对 session是保存在服务器端的键值对 session依赖于cookie 摘自: http://bubkoo.com/201 ...
- linux下mysql 8.0安装
安装本身同mysql 5.7,仍然建议使用tar.gz解压版,而非rpm安装包版. mysql已经将之前的mysql_native_password认证,修改成了caching_sha2_passwo ...
- 20145311王亦徐 《网络对抗技术》 Web安全基础实践
2014531王亦徐 <网络对抗技术> Web安全基础实践 实验内容 利用WebGoat平台尝试了一些XSS.CSRF.SQL注入攻击 基础问题回答 1.SQL注入攻击原理,如何防御原理: ...
- bzoj 1419 Red is good - 动态规划 - 概率与期望
Description 桌面上有R张红牌和B张黑牌,随机打乱顺序后放在桌面上,开始一张一张地翻牌,翻到红牌得到1美元,黑牌则付出1美元.可以随时停止翻牌,在最优策略下平均能得到多少钱. Input 一 ...
- iOS开发 -------- 九宫格坐标计算
一 要求 完成下面的布局 二 分析 寻找规律,每一个UIView的x坐标和y坐标 三 实现思路 (1) 明确每一块用得是什么View; (2) 明确每个View之间的父子关系,每个视图都只有一个父视图 ...
- 浅谈Log4j2日志框架及使用
目录 1.日志框架 2.为什么需要日志接口,直接使用具体的实现不就行了吗? 3.log4j2日志级别 4.log4j2配置文件的优先级 5.对于log4j2配置文件的理解 6.对于Appender的理 ...
- linux服务器的所有服务web/dns/dhcp/vsftp-nfs-samba的配置
nfs是sun开发的 network filesystem 网络文件系统,相当于win的映射网络驱动器, 可以将一台nfs服务器上的目录"挂载"到本地机器上的 一个 本地目录 一样 ...