本章主要内容:

  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. Oozie安装时放置Mysql驱动包的总结(网上最全)

    不多说,直接上干货! 对于在oozie里放置Mysql驱动包的总结 根据网上的参考以及我个人经验安装的使用 (1)放一份到$OOZIE_HOME/libext下 (是 mysql-connector- ...

  2. ArrayList和LinkedList源码

    1 ArrayList 1.1 父类 java.lang.Object 继承者 java.util.AbstractCollection<E> 继承者 java.util.Abstract ...

  3. linux用户及权限管理

    [文件管理.管道.用户及组管理.用户及权限管理]\用户及组管理 用户与组管理 Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这 ...

  4. (转)linux中项目部署和日志查看

    1 查找进程 ps -ef | grep java   查看所有关于java的进程 root     17540     1  0  2009 ?        01:42:27 /usr/java/ ...

  5. Python蜕变-2017-4-23

    我的第一篇博客,这是试水练习.这次上的菜是Haporxy配置文件操作. <1> 上需求: 具体配置文件如下: global log 127.0.0.1 local2 daemon maxc ...

  6. 【D3】D3学习轨迹-----学习到一定层度了再更新

    1.  首先了解SVG的基本元素 http://www.w3school.com.cn/svg/ 2.  了解d3的专有名词  http://www.cnblogs.com/huxiaoyun90/p ...

  7. Python实现单词查询&文件查找

    最近学C++ Primer,做到第十二章有个习题.要求针对英文文本,对于用户想搜索的单词,打印出该单词在文本中出现的总次数,单词所出现行号及对应的行内容:单词在一行内出现多次,只打印该行一次.C++的 ...

  8. 写移动端必备的meta标签

    <meta name="renderer" content="webkit" /> <meta http-equiv="X-UA-C ...

  9. 设置双击直接打开.ipynb文件

    本文环境:win10(64)+anaconda3(64) anaconda3安装好后,可在开始菜单下查看 背景:jupyter notebook打开后无法更改路径,只能在默认路径下upload文件(如 ...

  10. NYOJ--42--dfs--一笔画问题

    /* Name: NYOJ--42--一笔画问题 Author: shen_渊 Date: 18/04/17 15:22 Description: 这个题用并查集做,更好.在练搜索,试试手 本来用的v ...