2-KNN(K最邻近算法)
KNN基本思想:
1、事先存在已经分类好的样本数据(如分别在A类、B类、C类等)
2、计算待分类的数据(叫做新数据)与所有样本数据的距离
3、选择K个与新数据距离最近的的样本,并统计这K个样本所属的分类(如K=10,其中有3个为A,3个为B,4个为C)
4、将新数据归属于这K个样本中出现频率最高的那个类(则新数据可分为C类)
*******************************************************************************************************************************
KNN误判率:与判别所选的距离有关。
常见的距离有:欧式距离、曼哈顿距离、Mahalanobis距离等。
*******************************************************************************************************************************
算法改进:
1、KNN易受噪声影响,孤立点对分类效果影响较大,通常先进行滤波筛选
2、K的选取也会影响分类效果
3、样本数据分类不均匀,A类样本很大,B类样本很小,则容易出现误分类;可以采取加权的方式,距离越段,则权值越大。
改进的主要思想有:
1、基于组合分类器的KNN改进算法(做多个KNN分类器,然后通过投票法组合,得票最多的分类器结果做为最终组合KNN的输出)
2、基于核映射的KNN改进算法(映射到高维空间间,突出不同类别样本间的差异,或使其线性可分)
3、基于预聚类的KNN改进算法(计算新数据与每个聚类中心的距离,将距离最短的聚类看做为近邻点的集合,然后在该集合中找K个距离最近样本,然后在用KNN算法来分类)
*******************************************************************************************************************************
KNN主要用于文本分类、聚类分析、预测分析、降维等。
2-KNN(K最邻近算法)的更多相关文章
- k最邻近算法——使用kNN进行手写识别
上篇文章中提到了使用pillow对手写文字进行预处理,本文介绍如何使用kNN算法对文字进行识别. 基本概念 k最邻近算法(k-Nearest Neighbor, KNN),是机器学习分类算法中最简单的 ...
- k最邻近算法——加权kNN
加权kNN 上篇文章中提到为每个点的距离增加一个权重,使得距离近的点可以得到更大的权重,在此描述如何加权. 反函数 该方法最简单的形式是返回距离的倒数,比如距离d,权重1/d.有时候,完全一样或非常接 ...
- 001 KNN分类 最邻近算法
1.文件5.0,3.5,1.6,0.6,apple5.1,3.8,1.9,0.4,apple4.8,3.0,1.4,0.3,apple5.1,3.8,1.6,0.2,apple4.6,3.2,1.4, ...
- K最邻近算法(下)
import numpy as np import matplotlib.pyplot as plt from sklearn.datasets import make_blobs from skle ...
- [机器学习] ——KNN K-最邻近算法
KNN分类算法,是理论上比较成熟的方法,也是最简单的机器学习算法之一. 该方法的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别 ...
- Python实现kNN(k邻近算法)
Python实现kNN(k邻近算法) 运行环境 Pyhton3 numpy科学计算模块 计算过程 st=>start: 开始 op1=>operation: 读入数据 op2=>op ...
- k邻近算法(KNN)实例
一 k近邻算法原理 k近邻算法是一种基本分类和回归方法. 原理:K近邻算法,即是给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的K个实例,这K个实例的多数属于某个类,就把该输入实 ...
- <机器学习实战>读书笔记--k邻近算法KNN
k邻近算法的伪代码: 对未知类别属性的数据集中的每个点一次执行以下操作: (1)计算已知类别数据集中的点与当前点之间的距离: (2)按照距离递增次序排列 (3)选取与当前点距离最小的k个点 (4)确定 ...
- 《机器学习实战》学习笔记一K邻近算法
一. K邻近算法思想:存在一个样本数据集合,称为训练样本集,并且每个数据都存在标签,即我们知道样本集中每一数据(这里的数据是一组数据,可以是n维向量)与所属分类的对应关系.输入没有标签的新数据后,将 ...
随机推荐
- javascript 高级程序设计 十一
接上一节的创建对象的模式: 原型模式: 对于prototype的理解:我们创建的函数都有一个prototype(原型)属性,这个属性是一个指针指向一个对象,而这个对象的用途是包含基于这个方法的 所有的 ...
- javascript 高级程序设计 九
JS 面向对象的程序设计思想(1)深入理解JS对象 1.js的中没有OO语言中的'类'的概念.ECMAjs中把对象定义为:‘无序属性的集合,其属性可以包含基本值,对象或函数’. 2.ECMAScrip ...
- 单细胞RNA测序技术之入门指南
单细胞RNA测序技术之入门指南 [字体: 大 中 小 ] 时间:2018年09月12日 来源:生物通 编辑推荐: 在这个飞速发展的测序时代,DNA和RNA测序已经逐渐成为“实验室中的家常菜”.若要 ...
- BZOJ 3007 [SDOI2012]拯救小云公主 - 对偶图 + 并查集
Solution 答案具有单调性, 显然可以二分答案. 有两个注意点 : 英雄是可以随便走的, 也就是不是网格图... 还有坐标不能小于$1$ QAQ 开始时英雄在左下角, 公主在右上角, 我们反过来 ...
- 用PS绘制立体字的效果教程
1. 新建一个透明画布. 2. 利用选区绘制一个圆圈 3. 利用渐变工具绘制渐变 (颜色自拟) 4. 选择混合器画笔工具按住ALT 点击填充颜色的图层 5. 新建画布填充黑色 利用混合画笔进行绘制. ...
- ApplicationContext(四)BeanFactory 功能扩展
ApplicationContext(四)BeanFactory 功能扩展 上节我们提到容器刷新的第二步初始化 BeanFactory 工厂并解析配制文件,但此时 BeanFactory 的功能还很简 ...
- Maximum Size Subarray Sum Equals k LT325
Given an array nums and a target value k, find the maximum length of a subarray that sums to k. If t ...
- maven下载的jar相应pom文件下载不完整问题。
今天遇到一个奇葩问题: 同样的项目,我启动报错 : 某个class文件找不到.. 查找maven 依赖也的确没有找到 对应的jar 包. 查找同事项目,可以看到该class对应的 jar 包 是 lo ...
- 【UI测试】--菜单位置
- .net判断当前时间是否在工作时间段内
整理代码,判断当前时间是否在配置的工作时间段内,代码如下: public static bool getTimeSpan(string _strWorkingDayAM, string _strWor ...