k-临近算法学习
本章主要内容:
- k-临近算法是通过对象本身的特征将对象划分到某一类型中去,比如电影中的题材类型的分类是,可能就会考虑到电影中出现的镜头出现的次数的多少将电影划分为动作电影,爱情电影等等,本次的随笔参考了《机器学习实战》中第二章节,将电影自动进行分类。
- 从文本文件中解析和导入数据
- 使用matplotlib创建散点图
- 归一化数值
言归正传,首先介绍一些关于K临近算法(KNN):
- 工作原理
存在已知的数据集,并且已知的数据集中的每个数都有标签,也就是说我们知道已知数据集的每个元素的分类情况,在输入新的没有标签的数据之后,将新的数据的每个特征与样本集中的数据特征进行比较,然后算法提取样本集中特种最相近的数据的分类标签。
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-临近算法学习的更多相关文章
- [Machine-Learning] K临近算法-简单例子
k-临近算法 算法步骤 k 临近算法的伪代码,对位置类别属性的数据集中的每个点依次执行以下操作: 计算已知类别数据集中的每个点与当前点之间的距离: 按照距离递增次序排序: 选取与当前点距离最小的k个点 ...
- 机器学习(Machine Learning)算法总结-K临近算法
一.算法详解 1.什么是K临近算法 Cover 和 Hart在1968年提出了最初的临近算法 属于分类(classification)算法 邻近算法,或者说K最近邻(kNN,k-NearestNeig ...
- 秒懂机器学习---k临近算法(KNN)
秒懂机器学习---k临近算法(KNN) 一.总结 一句话总结: 弄懂原理,然后要运行实例,然后多解决问题,然后想出优化,分析优缺点,才算真的懂 1.KNN(K-Nearest Neighbor)算法的 ...
- K临近算法
K临近算法原理 K临近算法(K-Nearest Neighbor, KNN)是最简单的监督学习分类算法之一.(有之一吗?) 对于一个应用样本点,K临近算法寻找距它最近的k个训练样本点即K个Neares ...
- 机器学习-- 入门demo1 k临近算法
1.k-近邻法简介 k近邻法(k-nearest neighbor, k-NN)是1967年由Cover T和Hart P提出的一种基本分类与回归方法. 它的工作原理是:存在一个样本数据集合,也称作为 ...
- 机器学习2—K近邻算法学习笔记
Python3.6.3下修改代码中def classify0(inX,dataSet,labels,k)函数的classCount.iteritems()为classCount.items(),另外p ...
- Python推荐算法学习1
1.闵可夫斯基距离 闵可夫斯基距离可以概括曼哈顿距离与欧几里得距离. 其中r越大,单个维度差值大小会对整体产生更大的影响.这个很好理解,假设当r=2时一个正方形对角线长度,永远是r=3时正方体对角线 ...
- 02-16 k近邻算法
目录 k近邻算法 一.k近邻算法学习目标 二.k近邻算法引入 三.k近邻算法详解 3.1 k近邻算法三要素 3.1.1 k值的选择 3.1.2 最近邻算法 3.1.3 距离度量的方式 3.1.4 分类 ...
- 《机器学习实战》学习笔记一K邻近算法
一. K邻近算法思想:存在一个样本数据集合,称为训练样本集,并且每个数据都存在标签,即我们知道样本集中每一数据(这里的数据是一组数据,可以是n维向量)与所属分类的对应关系.输入没有标签的新数据后,将 ...
随机推荐
- PHP中json_encode与json_decode
一.json_encode() 对变量进行JSON编码, 语法: json_encode ( $value [, $options = 0 ] ) 注意:1.$value为要编码的值,且该函数只对UT ...
- Palindrome 回文数
回文数,从前到后,从后到前都一样 把数字转成字符串来处理 package com.rust.cal; public class Palindrome { public static boolean i ...
- Ubuntu彻底删除/卸载mysql,php,apache
一.卸载删除 mysql 1 sudo apt-get autoremove --purge mysql-server-5.02 sudo apt-get remove mysql-server3 s ...
- (转)Sublime Text中文乱码问题
Sublime Text 2是一个非常不错的源代码及文本编辑器,但是不支持GB2312和GBK编码在很多情况下会非常麻烦.不过Sublime Package Control所以供的插件可以让Subli ...
- 唠一唠Linux系统入门的方法和经验
相信大伙都听说过linux系统,然而对于这个系统,总使让新手感觉茫然,偌大的系统.下面是一段百度中的介绍: Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用 ...
- jquery 的页面下拉选项
<!-- field的属性对应数据库表的内容 --> <th field="ANSWERNUM" formatter="formatterOption& ...
- app请求服务器数据方法1-HttpUrlConnection
1. 实例化URL对象 首先第一步实例化一个URL对象,传入参数为请求的数据的网址. URL url = new URL("http://www.imooc.com/api/teacher? ...
- Kafka 存储机制和副本
1.概述 Kafka 快速稳定的发展,得到越来越多开发者和使用者的青睐.它的流行得益于它底层的设计和操作简单,存储系统高效,以及充分利用磁盘顺序读写等特性,和其实时在线的业务场景.对于Kafka来说, ...
- 修复intellij idea 2017.2中文输入法无候选框,亲测可以用
注:要说用搜狗拼音8.6版本不会出现这问题.使用拼音的可以去下载安装试一下.用五笔的就可以使用本方法修复,本人就是使用五笔的. 完美解决中文输入法的问题.出现bug的原始是jb自己编译的openjdk ...
- win10*64+vs2015+opencv3.0工程模板配置
参考网上的资料,自己再次整合一下,为新手提供个方便,也为自己备份. 一.下载安装opencv3.0 1.首先下载opencv3.0的包(windows版本的) 2.安装opencv,路径自己选好,自动 ...