文档章节

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

东方神剑
 东方神剑
发布于 2015/02/28 16:50
字数 942
阅读 1142
收藏 16
点赞 0
评论 0

一、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”,证明我们是对的。

 

 

© 著作权归作者所有

共有 人打赏支持
东方神剑

东方神剑

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

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

meiqi0538 ⋅ 05/07 ⋅ 0

机器学习笔记(一):K-近邻算法

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

qq_33952157 ⋅ 02/19 ⋅ 0

K最近邻(k-Nearest Neighbor) 浅析

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

刘敬 ⋅ 05/08 ⋅ 0

机器学习实战---KNN算法的应用小例

ok,今天花了一天时间看了小人书(机器学习实战),并且撸到了KNN算法,并完成了一个KNN算法的应用 真的!!!小人书是本特别不错的适合入门ML的书!!!!! 没有繁杂的数学推导过程,先给出概念和实战应用...

qq_39525832 ⋅ 05/28 ⋅ 0

浅谈机器学习分类算法

目前随着人工智能的发展,机器学习的应用领域日益宽泛,各种机器学习适应不同的应用场景,而机器学习差别的关键点之一就在于所使用算法的不同,今天就为大家介绍 4 种主要的分类算法。 朴素贝...

又拍云 ⋅ 2017/12/19 ⋅ 0

视觉机器学习2----KNN算法

参考博客:点击打开链接 KNN理论成熟,是最简单的机器学习方法之一,可以用它来实现分类和回归,是监督学习方法之一。 KNN算法基本思想:输入没有标签即未经分类的新数据,首先提取新数据的特...

dz4543 ⋅ 05/07 ⋅ 0

KNN练习实例

KNN 概述 k-近邻(kNN, k-NearestNeighbor)算法是一种基本分类与回归方法,我们这里只讨论分类问题中的 k-近邻算法。` 点击详情学习 k 近邻算法的输入为实例的特征向量,对应于特征空间的点...

JasonhavenD ⋅ 2017/12/09 ⋅ 0

入门 | 机器学习新手必看10大算法

本文介绍了机器学习新手需要了解的 10 大算法,包括线性回归、Logistic 回归、朴素贝叶斯、K 近邻算法等。 在机器学习中,有一种叫做「没有免费的午餐」的定理。简而言之,它指出没有任何一种...

机器之心 ⋅ 02/01 ⋅ 0

机器学习(二):k近邻法(kNN)

引言:     k近邻法(k-nearest neighbor, kNN)是一种基本分类与回归方法,其基本做法是:给定测试实例,基于某种距离度量找出训练集中与其最靠近的k个实例点,然后基于这k个最近邻的信...

eeeee123456 ⋅ 04/13 ⋅ 0

python 超全sklearn教程,数据挖掘从入门到入坑

最近工作中遇到了一些数据建模的问题,趁这几天有时间,把数据挖掘过程中一些流程规范和常见的机器学习问题总结一下。本篇博文涵盖的内容有机器学习的概念,模型分类(有监督、无监督),pyt...

qwop446 ⋅ 2017/09/16 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

JavaScript零基础入门——(八)JavaScript的数组

JavaScript零基础入门——(八)JavaScript的数组 欢迎大家回到我们的JavaScript零基础入门,上一节课我们讲了有关JavaScript正则表达式的相关知识点,便于大家更好的对字符串进行处理。这一...

JandenMa ⋅ 54分钟前 ⋅ 0

sbt网络问题解决方案

转自:http://dblab.xmu.edu.cn/blog/maven-network-problem/ cd ~/.sbt/launchers/0.13.9unzip -q ./sbt-launch.jar 修改 vi sbt/sbt.boot.properties 增加一个oschina库地址: [reposit......

狐狸老侠 ⋅ 今天 ⋅ 0

大数据,必须掌握的10项顶级安全技术

我们看到越来越多的数据泄漏事故、勒索软件和其他类型的网络攻击,这使得安全成为一个热门话题。 去年,企业IT面临的威胁仍然处于非常高的水平,每天都会看到媒体报道大量数据泄漏事故和攻击...

p柯西 ⋅ 今天 ⋅ 0

Linux下安装配置Hadoop2.7.6

前提 安装jdk 下载 wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.7.6/hadoop-2.7.6.tar.gz 解压 配置 vim /etc/profile # 配置java环境变量 export JAVA_HOME=/opt/jdk1......

晨猫 ⋅ 今天 ⋅ 0

crontab工具介绍

crontab crontab 是一个用于设置周期性被执行的任务工具。 周期性执行的任务列表称为Cron Table crontab(选项)(参数) -e:编辑该用户的计时器设置; -l:列出该用户的计时器设置; -r:删除该...

Linux学习笔记 ⋅ 今天 ⋅ 0

深入Java多线程——Java内存模型深入(2)

5. final域的内存语义 5.1 final域的重排序规则 1.对于final域,编译器和处理器要遵守两个重排序规则: (1)在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用...

江左煤郎 ⋅ 今天 ⋅ 0

面试-正向代理和反向代理

面试-正向代理和反向代理 Nginx 是一个高性能的反向代理服务器,但同时也支持正向代理方式的配置。

秋日芒草 ⋅ 今天 ⋅ 0

Spring 依赖注入(DI)

1、Setter方法注入: 通过设置方法注入依赖。这种方法既简单又常用。 类中定义set()方法: public class HelloWorldOutput{ HelloWorld helloWorld; public void setHelloWorld...

霍淇滨 ⋅ 昨天 ⋅ 0

马氏距离与欧氏距离

马氏距离 马氏距离也可以定义为两个服从同一分布并且其协方差矩阵为Σ的随机变量之间的差异程度。 如果协方差矩阵为单位矩阵,那么马氏距离就简化为欧氏距离,如果协方差矩阵为对角阵,则其也...

漫步当下 ⋅ 昨天 ⋅ 0

聊聊spring cloud的RequestRateLimiterGatewayFilter

序 本文主要研究一下spring cloud的RequestRateLimiterGatewayFilter GatewayAutoConfiguration @Configuration@ConditionalOnProperty(name = "spring.cloud.gateway.enabled", matchIfMi......

go4it ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部