本章主要内容:

  1. k-临近算法是通过对象本身的特征将对象划分到某一类型中去,比如电影中的题材类型的分类是,可能就会考虑到电影中出现的镜头出现的次数的多少将电影划分为动作电影,爱情电影等等,本次的随笔参考了《机器学习实战》中第二章节,将电影自动进行分类。
  2. 从文本文件中解析和导入数据
  3. 使用matplotlib创建散点图
  4. 归一化数值

言归正传,首先介绍一些关于K临近算法(KNN):

  1. 工作原理

存在已知的数据集,并且已知的数据集中的每个数都有标签,也就是说我们知道已知数据集的每个元素的分类情况,在输入新的没有标签的数据之后,将新的数据的每个特征与样本集中的数据特征进行比较,然后算法提取样本集中特种最相近的数据的分类标签。

2. 电影的事例

电影名称   打斗镜头 亲昵的镜头 电影类型
California man 3 104   爱情片
He's not really inot dudes  2 100 爱情片
BeautifulWomen 1 84 爱情片
Kevin longblade 101   10 动作片
Robo slayer 300 101 5 动作片
Apple II 98 2 动作片
?某个电影 18 90 未知

从表中可以看到不同分类的电影,其中的分类信息也是很明确的,但是未知电影与样本集的其他电影的距离,分别为20.5,18.7,19.2,115,3,117,4,118.9。可以找到K个距离最近的电影,假设k=3,则最近的距离的电影为C,H, B三个,,按照knn临近算法,距离最近的三部电影的类型决定了未知电影的类型,而这三部全是爱情片,因此我们可以从中推断未知电影史爱情片。

3. 上个例子中的knn算法的实现

(1) 计算已知类别数据集中的点与当前点的之间的距离;

(2) 按照距离的递增一次排序;

(3) 选取与当前点距离最小的k个点;

(4) 确定前k个点所在的分类的出现频率;

(5) 返回前k个点出现频率最高的类别的作为当前点的预测类别。

4.  下一博文将把python作为主要语言进行语法展示,将整个功能用python语言进行实现。

自己按照书上的讲解,进行简单的描述,有大段的内容是来自书本上,本文就是想把自己的一个思路理清楚,同时相当于把笔记做好了,贵在坚持。

k-临近算法学习的更多相关文章

  1. [Machine-Learning] K临近算法-简单例子

    k-临近算法 算法步骤 k 临近算法的伪代码,对位置类别属性的数据集中的每个点依次执行以下操作: 计算已知类别数据集中的每个点与当前点之间的距离: 按照距离递增次序排序: 选取与当前点距离最小的k个点 ...

  2. 机器学习(Machine Learning)算法总结-K临近算法

    一.算法详解 1.什么是K临近算法 Cover 和 Hart在1968年提出了最初的临近算法 属于分类(classification)算法 邻近算法,或者说K最近邻(kNN,k-NearestNeig ...

  3. 秒懂机器学习---k临近算法(KNN)

    秒懂机器学习---k临近算法(KNN) 一.总结 一句话总结: 弄懂原理,然后要运行实例,然后多解决问题,然后想出优化,分析优缺点,才算真的懂 1.KNN(K-Nearest Neighbor)算法的 ...

  4. K临近算法

    K临近算法原理 K临近算法(K-Nearest Neighbor, KNN)是最简单的监督学习分类算法之一.(有之一吗?) 对于一个应用样本点,K临近算法寻找距它最近的k个训练样本点即K个Neares ...

  5. 机器学习-- 入门demo1 k临近算法

    1.k-近邻法简介 k近邻法(k-nearest neighbor, k-NN)是1967年由Cover T和Hart P提出的一种基本分类与回归方法. 它的工作原理是:存在一个样本数据集合,也称作为 ...

  6. 机器学习2—K近邻算法学习笔记

    Python3.6.3下修改代码中def classify0(inX,dataSet,labels,k)函数的classCount.iteritems()为classCount.items(),另外p ...

  7. Python推荐算法学习1

    1.闵可夫斯基距离 闵可夫斯基距离可以概括曼哈顿距离与欧几里得距离.  其中r越大,单个维度差值大小会对整体产生更大的影响.这个很好理解,假设当r=2时一个正方形对角线长度,永远是r=3时正方体对角线 ...

  8. 02-16 k近邻算法

    目录 k近邻算法 一.k近邻算法学习目标 二.k近邻算法引入 三.k近邻算法详解 3.1 k近邻算法三要素 3.1.1 k值的选择 3.1.2 最近邻算法 3.1.3 距离度量的方式 3.1.4 分类 ...

  9. 《机器学习实战》学习笔记一K邻近算法

     一. K邻近算法思想:存在一个样本数据集合,称为训练样本集,并且每个数据都存在标签,即我们知道样本集中每一数据(这里的数据是一组数据,可以是n维向量)与所属分类的对应关系.输入没有标签的新数据后,将 ...

随机推荐

  1. Linux 显示文本指定行内容

    主要采用sed.head和tail命令 如果文本中使用了 \n 这类符号,cat命令会把它当成换行符,结果会出错 $ sed -n "10p" move.sh   # 显示第10行 ...

  2. Linux基础(八)

    一.shell shell一般代表两个层面的意思,一个是命令解释器,比如BASH,另外一个就是shell脚本.Python也是一种解释语言. 1.   Linux中命令是按照下面的优先级执行的 ==& ...

  3. linux+windows mysql导入导出sql文件

    linux下 一.导出数据库用mysqldump命令(注意mysql的安装路径,即此命令的路径):1.导出数据和表结构:mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql# ...

  4. 漫谈格兰杰因果关系(Granger Causality)——第一章 野火烧不尽,春风吹又生

    2017年7月9日上午6点10分,先师胡三清同志--新因果关系的提出者.植入式脑部电极癫痫治疗法的提出者.IEEE高级会员,因肺癌医治无效于杭州肿瘤医院去世,享年50岁.余蒙先师厚恩数载,一朝忽闻先师 ...

  5. Mybatis Mapper.java和Mapper.xml能否分离问题

    Mybatis Mapper.java和Mapper.xml是能分离的. 从图上不难看出,不管是/java还是/resources,他们最终编译后的存放路径均是/target/classes 因此将x ...

  6. Selenium对浏览器支持的版本

    最新的selenium与几种常用浏览器的版本兼容情况: selenium 3.4.0 : Mozilla GeckoDriver 0.18  --  Firefox 53 - 56 Google Ch ...

  7. 【SpringMVC】使用SpringMVC进行上传文件!

    写在前面: 之前在上传文件的时候,使用的是commons-file-upload这个插件,非常方便,能控制每个文件的大小,总共大小,缓存,以及支持多个文件的同时上传,但是写一次上传文件的后台代码量太大 ...

  8. python爬虫从入门到放弃(一)之初识爬虫

    整理这个文档的初衷是自己开始学习的时候没有找到好的教程和文本资料,自己整理一份这样的资料希望能对小伙伴有帮助 什么是爬虫? 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页 ...

  9. (转)Linux修改SSH登录欢迎语

    场景:感觉这样做挺个性的,做个记录! 1 Linux修改SSH的欢迎语 众所周知,Linux系统并没有像Windows一样自带远程桌面连接,虽然可以通过后期安装VNC之类的软件来弥补这个缺点,但用了L ...

  10. kibana 常用查询方法

    下面直接通过实例演示常用的搜索方法 转义特殊字符 + - && || ! () {} [] ^" ~ * ? : \ 注意:以上字符当作值搜索的时候需要用 \ 转义 1.在任 ...