文档章节

机器学习之分类算法一:K-近邻算法

东方神剑
 东方神剑
发布于 2015/02/28 16:50
字数 942
阅读 1143
收藏 16

一、K-近邻算法

    K-近邻算法是一种分类算法,分类算法是监督学习算法,监督学习算法和无监督学习算法的最大区别就是监督学习需要告诉机器一些正确的事物,也就是训练数据集,而无监督学习算法则不需要事先准备这些,比如聚类算法。

    所谓的分类,就是要求数据都是离散型(标称型)的,且是数值型的。一下子说这么多概念术语很绕弯哈,数据从大的分类来说分为离散型(标称型)和连续型。离散的就是数据只能在有限的数据集中(比如:是/否,1/2/3,a/b/c,红/白/黑),连续型的属于无限集(比如:全体实数集),对于离散型的适合采用分类器方式也就是分类算法解决,而连续型适合使用线性回归算法解决,但这也不是绝对的。

    K-近邻算法的优点:精度高、对异常值不敏感(个别噪音数据对结果的影响不是很大);缺点是:计算复杂度高、空间复杂度高(当数据维度变大,矩阵求距离运算相当耗时耗资源);适用数据范围:数值型和标称型(求距离需要要求数据是数值类型)。

    我们就用教材中的例子简单说一下该算法的工作原理,假设我有六部电影A(3,104,爱情片)、B(2,100,爱情片)、C(1,81,爱情片)、D(101,10,动作片)、E(99,5,动作片)、F(98,2.动作片),其中第一个数字代表电影中打斗镜头次数、第二个数字代表亲吻镜头次数,那么现在有一个新电影G(18,90,?),它属于爱情片还是动作片呢?其实我们一眼就能判断出来属于爱情片!理由呢?

    K-近邻算法采用的是求距离方式。A(x1,y1,z1)、B(x2,y2,z2),则d=√(x2-x1)2+(y2-y1)2+(z2-z1)2

    计算结果为(20.5,18.7,19.2,115.3,117.4,118.9),按距离由小到大排序,所谓的K-近邻就是选取最相近的K个,比如K=3,也就是(18.7,19.2,20.5)对应的电影是B、C、A,他们中绝大多数都是爱情片(这里其实全部都是爱情片)。所以我们认为G就是爱情片。

    这就是K-近邻算法的工作原理。

    下面再把书中给出的一个示例结合代码给大家说一下怎么去编程。

    假设我在坐标系中有四个点,分别是(1.0,1.1)、(1.0,1.0)、(0,0)、(0,0.1),这四个点分别是属于A、A、B、B类别。我们需要预测(0,0)这个点属于什么类别,实际上(0,0)已经在已知的训练数据集中,这没关系,我们仅仅是做个小测试而已。

    给出的代码与教材中代码一致,不过初学者很难看懂每一步都是什么含义,所以我把一些注释加了上去。具体的运行流程可以参考教材中的步骤。当最终结果返回了“B”,证明我们是对的。

 

 

© 著作权归作者所有

共有 人打赏支持
东方神剑

东方神剑

粉丝 64
博文 126
码字总数 93166
作品 0
朝阳
程序员
基于Python的机器学习算法实现-K-近邻算法(一)

基于Python的机器学习算法实现-K-近邻算法(一) 前言 本博客的内容是基于清华大学李航老师的《统计学习方法》、南京大学周志华老师的《机器学习》以及外国书籍《Machine Learning in Actio...

meiqi0538
05/07
0
0
机器学习笔记(一):K-近邻算法

首先作为机器学习的入门,我们必须了解的是什么是机器学习.简单来说,机器学习就是把无序的数据变成有用的信息. 作为机器学习领域的先驱,Arthur Samuel在 IBM Journal of Research and Develo...

qq_33952157
02/19
0
0
机器学习入门KNN近邻算法(一)

1 机器学习处理流程: 2 机器学习分类: 有监督学习 1 分类 2 回归 无监督学习 1 聚类 半监督学习 3 K-近邻算法原理 KNN概述 工作原理 入门案例 : 电影类型分析 KNN近邻机器学习案例2 4 KNN用于...

诚实善良小郎君
07/16
0
0
K最近邻(k-Nearest Neighbor) 浅析

K最近邻(k-Nearest Neighbor,KNN)分类算法的核心思想是如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。KNN算法可用于多...

刘敬
05/08
0
0
关于机器学习中的一些常用方法的补充

前言 机器学习相关算法数量庞大,很难一一穷尽,网上有好事之人也评选了相关所谓十大算法(可能排名不分先后),它们分别是: 1. 决策树 2. 随机森林算法 3. 逻辑回归 4. 支持向量机 5. 朴素...

chenhu73
06/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

InvalidKeyException: Illegal key size

Caused by: java.lang.RuntimeException: java.security.InvalidKeyException: Illegal key size 解决方案:去官方下载JCE无限制权限策略文件。 jdk 5: http://www.oracle.com/technetwork/j......

自由的开源
7分钟前
0
0
JAVA秒杀实现以及优化原理

秒杀与其他业务最大的区别在于:秒杀的瞬间, (1)系统的并发量会非常的大 (2)并发量大的同时,网络的流量也会瞬间变大。 关于(2),最常用的办法就是做页面静态化,也就是常说的前后端分...

小贱是个程序员
11分钟前
1
0
Spring Aop之Advisor解析

在上文Spring Aop之Target Source详解中,我们讲解了Spring是如何通过封装Target Source来达到对最终获取的目标bean进行封装的目的。其中我们讲解到,Spring Aop对目标bean进行代理是通过Ann...

爱宝贝丶
13分钟前
0
0
Java高级工程师面试阿里,阿里云,天猫,菜鸟,涉及到的知识点

前言: 分享 Java高级工程师面试阿里,阿里云,天猫,菜鸟,涉及到的知识点,文章有点长,但比较全面,阅读时间15分钟左右,干货满满。 一、HashMap的那些事 1.1、HashMap的实现原理 1.1.1、...

Java大蜗牛
38分钟前
2
0
nginx模块学习五 expires 浏览器缓存

缓存原理 语法 Syntax: expires [modified] time;expires epoch | max | off;Default: expires off;Context: http,server,location,if in location 例/etc/nginx/conf.d/default.con......

Romanceling
49分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部