【分类器】- KNN

一、分类算法中的学习概念
因为分类算法都是有监督学习,故分为以下2种学习。
1、急切学习:在给定的训练元组之后、接受到测试元组之前就构造好分类模型。
算法有:贝叶斯、基于规则的分类(决策树)、向后传播分类、SVM(支持向量机)、基于关联规则挖掘的分类。
2、懒惰学习:直到给定一个测试元组才开始构造分类模型。也称为基于实例的学习法。
算法有:KNN。
二、KNN的特点
    
优点:实现方便、支持增量学习、能对超多边形的复杂决策空间建模
缺点:计算量开销大、大规模存储支持。
三、KNN算法原理
非常简单、就是在测试元组中找和训练元组向量空间上最接近的K个点中,类别最多的那个分类。
向量空间距离无非那么几种:欧式、闵科夫斯基、曼哈顿等。
四、KNN算法的细节
1、注意属性在向量空间的规范化、规范化公式和聚类[0,1]规范化公式一样。
2、比较的属性如果是2元变量或者分类变量,设定好差值。(注意最大差区间仍要在规范化空间内部)
3、确实属性值的处理:
① 分类(2元变量)变量直接设置差值为规范化空间的最大值。
② 数值类型属性 若:
Ⅰ:2个元组对应属性均缺失,差值直接为规范化空间最大值。
Ⅱ:如果只有一个缺失,另一个取值为V,则距离差值为|1-V| 和
|0-V| 的最大值 (即Max(|规范化空间的上下界-V|))
4、确定K的值:通过对样本的实验(多次和人工结合),取出误差最小的分类结果。
5、对噪声的处理:在训练的过程中对噪声的元组直接Kill掉。
五、KNN算法的单机实现
1、准备训练数据、对数据预处理和训练:(具体实验和人工干预具体分析)
2、存储训练数据的结果
3、预处理测试数据
4、通过训练数据得到参数K
5、维护一个大小为K的PriorityQueue用于存储最近的KNNNode
6、随机从训练元组中选出K个元素计算好测试元素和这个训练元素的距离并且记录训练元组的组编号放入优先队列(优先堆)中。
7、遍历整个训练元组数据集合,如果测试距离小于优先队列的对头元素的距离。则移除对头、并且压入这个新的KNNNode,然后从新保持优先队列顺序。
8、遍历完成后,计算最大的分组的组号。则测试元组属于这个分组。
六、KNN算法的分布式实现
MAHOUT源码稍后补充。
                    

 

转载于:https://www.cnblogs.com/lixusign/archive/2012/06/13/2548242.html

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

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

相关文章

Java虚拟机栈介绍

与程序计数器一样,Java虚拟机栈(Java Virtual Machine Stack)也是线程私有的,它的生命周期 与线程相同。虚拟机栈描述的是Java方法执行的线程内存模型:每个方法被执行的时候,Java虚拟机都 会同步创建一个栈…

《关键对话——何谓关键对话》读书笔记(一)

《关键对话——何谓关键对话》读书笔记(一) 利用假期的时间,将关键对话阅读了一遍,书中提到的观点,方法,场景等很适合我目前处的状态,有的时候读起来仿佛就是自己身临其境,有种感同身…

从java读取Excel继续说大道至简 .

在上一篇博客《从复杂到简单,大道至简》中说道我们要把复杂的问题简单化,也就是要把问题细分,让大问题变成小问题,这样解决起来会相对容易,当我们把容易的小问题解决掉了,大问题自动就会迎刃而解。 所以今天…

Java堆介绍

对于Java应用程序来说,Java堆(Java Heap)是虚拟机所管理的内存中最大的一块。Java堆是被所 有线程共享的一块内存区域,在虚拟机启动时创建。此内存区域的唯一目的就是存放对象实例,Java 世界里“几乎”所有的对象实例都…

推荐算法工程师的成长之道

推荐算法工程师的成长之道 原创: gongyouliu 大数据与人工智能 3月20日 源链接:原文地址 本文,作者会基于自己的实践经验讲述推荐算法工程师的成长之道,这里的“道”有发展路径和道(道理、方法论、经验、智慧)两层意思。 所以本文…

java电子商务源码解读 b2b2c o2o

大型企业分布式互联网电子商务平台,推出PC微信APP云服务的云商平台系统,其中包括B2B、B2C、C2C、O2O、新零售、直播电商等子平台。 分布式、微服务、云架构电子商务平台 java b2b2c o2o 技术解决方案 开发语言: java、j2ee 数据库&#x…

jQuery上传插件-uploadify3.1使用说明

uploadify ,简单实用的flash上传组件,兼容性良好。 现已有html5版本。 官方地址:http://www.uploadify.com/ 官方英文文档:http://www.uploadify.com/documentation/ Demos Download 使用方法(.net版本): 前台JS $("#id&q…

《关键对话——掌握关键对话》读书笔记(二)

《关键对话——掌握关键对话》读书笔记(二) 上一节中我们已经定义了关键对话,在面对关键对话时(比如老板给你安排了一项非常不合适的任务),你的选择可能只有如下两种: 1.当面表示反对,把老板惹怒 2.沉默接…

信息流推荐多样性

信息流推荐多样性 一、问题现状 信息流产品中一个常见的问题是多样性越来越差,造成这种问题的原因在于机器学习算法本身。下面通过一副系统循环图来介绍多样性差的问题。 资讯库随机推荐文章,由于是按照全库比例采样,娱乐占比较大&#xf…

Robocode教程2——你的第一个robo,取个好名字哦

摘自:http://site.douban.com/widget/notes/7736245/note/210029011/ 你需要准备的东西:1.c语言的知识和一点点的java知识,robocode意在学习java,不要要太深的java水平,你只要理解java和c的区别就可以了。2.robocode A…

《关键对话——从“心”开始,如何确定目标》读书笔记(三)

从“心”开始,如何确定目标、 我们的问题并不是行为本身是错误的,而是我们的动机有问题,即我们常常弄错要面对的目标。 一、从心开始 对话高手总是能做到从心开始。在开展高风险对话时,他们总是首先明确目的和动机,无…

UI设计师的面试过程

Palantir Technologies是一家提供分析、整合、可视化各种数据的IT型技术公司。在该公司,前端工程师和后端工程师有同样的面试过程,前端工程师也需要的一定的编程基础。该公司技术博客Palantir TeckBlog日前发表了一篇博文《The UI Design Interview》&am…

C语言代码实现数组(简单)

前一节课讲了数组的删除功能实现&#xff1a;删除功能 本节课内容我们实现数组的反转功能和冒泡排序功能&#xff1a; #include <stdio.h> #include <string.h> #include <malloc.h> #include <stdlib.h>struct Arr{int * pBase; //存储数组第一个元…

数据在市场运营中的应用

数据在市场运营中的应用 1. 背景 目前的产品运营、用户拉新、渠道投放、留存等都是靠人工进行策略制定&#xff0c;有的公司和部门完全靠着以前的经验在尝试互联网产品的市场营销和运营。这样不仅效率很低&#xff0c;而且效果也不显著。 主要存在的问题有以下几点&#xff…

C语言的typedef用法

案例1&#xff1a; #include <stdio.h> #include <string.h> #include <malloc.h>typedef int zhangsan; //为int在多取一个名字 zhangsan等价于intstruct Student{int sid;char sname[100];char sex;} ST;int main() {int i 10; //等价于zhangsan i10…

信息流项目计划和思路

目录 一、对项目的认识. 4 1&#xff0e;用户需求和竞品. 4 2. 项目现状. 4 3. 发展前景. 4 二、项目的业务方向和思路. 6 1. 业务方向. 6 2. 2020年目标. 6 3. 思路. 6 3.1用户留存提升&#xff08;6%->12%&#xff09;. 6 3.2日活提升&#xff08;30万->80万…

MySQL学习笔记_关于MySQL的字符类型VARCHAR长度知识总结

MySQL学习笔记_关于MySQL的字符类型VARCHAR长度知识总结 一.VARCHAR存储和行长度限制 1.VARCHAR(N)中&#xff0c;N指的是字符的长度,VARCHAR类型最大支持65535,指的是65535个字节,但并不支持65535长度的varchar&#xff0c;65535中应该包含了所有字段的长度、变长字段长度标示…

数据结构链表知识入门

链表定义: n个节点离散分配&#xff0c; 彼此通过指针相连 每个节点只有一个前驱节点&#xff0c;每个节点只有一个后续节点 首节点没有前驱节点尾节点没有后续节点 专业术语: 首节点:第一个有效节点尾节点:最后一个有效节点头结点: 1&#xff0c;第一个有效节点之前的那个节…

《关键对话——注意观察,如何判断对话氛围是否安全》读书笔记(四)

《关键对话——注意观察&#xff0c;如何判断对话氛围是否安全》读书笔记(四) 在对话过程中&#xff0c;既要关注对话内容&#xff08;即讨论的主题&#xff09;&#xff0c;也要观察对话气氛&#xff08;即参与者的反应&#xff09;。越早意识到你和对方退出了对话机制&#x…