机器学习 之KNN近邻法
目录

1、KNN近邻法
KNN模型由三个基本要素决定:
距离度量:其中欧式距离一般误差最小,\(x_{i} 和 x_{j}\)为两个样本点:\[L_{2}(x_{i}, x_{j}) = (\sum\limits_{l=1}^{n} |x_{i}^{(l)} - x_{j}^{(l)}|)\]
k值的选择:k较小->近似误差会减小,估计误差会增大,模型变复杂,容易过拟合;k较大->估计误差减小,近似误差增大,模型变简单。k值一般取一个比较小的数值。
分类决策规则:分类损失函数是误分类率:
\[L = \frac{1}{k} \sum\limits_{x_{i} \in N_{k}(x)} I(y_{i} \ne c_{j}) = 1 - \frac{1}{k} \sum\limits_{x_{i} \in N_{k}(x)} I(y_{i} = c_{j}) \]
要使误分类率最小,即经验风险最小,就要使$\sum\limits_{x_{i} \in N_{k}(x)} I(y_{i} = c_{j}) $最大,所以多数表决规则等价于经验风险最小化。
KNN算法流程:
输入:训练数据集D; 输出:实例x所属的类y。
根据给定的距离度量,在训练集D中找到与x最近邻的k个点,涵盖这k个点的x邻域记作\(N_{k}(x)\);
在\(N_{k}(x)\)中根据分类决策规则决定x的类别y(如多数表决):
\[y = arg \ max_{c_{j}} \sum\limits_{x_{i} \in N_{k}(x)} I(y_{i}=c_{j})\]
其中\(I\)为指示函数,即当\(y_{i}=c_{j}\)时\(I\)为1,否则\(I\)为0;
- kd树:是一种对k维空间中的实例点进行存储以便对其进行快速检索的树形数据结构。其选择训练实例点在选定坐标轴上的中位数为切分点,从而将实例分配为两部分,依次循环构建树形结构。目标点的最近邻一定在以目标点为中心并通过当前最近点的超球体的内部。
机器学习 之KNN近邻法的更多相关文章
- 机器学习中 K近邻法(knn)与k-means的区别
简介 K近邻法(knn)是一种基本的分类与回归方法.k-means是一种简单而有效的聚类方法.虽然两者用途不同.解决的问题不同,但是在算法上有很多相似性,于是将二者放在一起,这样能够更好地对比二者的异 ...
- 机器学习入门KNN近邻算法(一)
1 机器学习处理流程: 2 机器学习分类: 有监督学习 主要用于决策支持,它利用有标识的历史数据进行训练,以实现对新数据的表示的预测 1 分类 分类计数预测的数据对象是离散的.如短信是否为垃圾短信,用 ...
- 【机器学习速成宝典】模型篇04k近邻法【kNN】(Python版)
目录 什么是k近邻算法 模型的三个基本要素 构造kd树 kd树的最近邻搜索 kd树的k近邻搜索 Python代码(sklearn库) 什么是K近邻算法(k-Nearest Neighbor,kNN) ...
- K近邻法(KNN)原理小结
K近邻法(k-nearst neighbors,KNN)是一种很基本的机器学习方法了,在我们平常的生活中也会不自主的应用.比如,我们判断一个人的人品,只需要观察他来往最密切的几个人的人品好坏就可以得出 ...
- 机器学习之K近邻算法(KNN)
机器学习之K近邻算法(KNN) 标签: python 算法 KNN 机械学习 苛求真理的欲望让我想要了解算法的本质,于是我开始了机械学习的算法之旅 from numpy import * import ...
- k近邻法(KNN)知识点概括
分类一般分为两种: 积极学习法:先根据训练集构造模型,然后根据模型对测试集分类 消极学习法:推迟建模,先简单存储训练集,等到给定测试集时再进行建模,如KNN算法. 1. 简述 KNN的核心思想就是:物 ...
- 机器学习之利用KNN近邻算法预测数据
前半部分是简介, 后半部分是案例 KNN近邻算法: 简单说就是采用测量不同特征值之间的距离方法进行分类(k-Nearest Neighbor,KNN) 优点: 精度高.对异常值不敏感.无数据输入假定 ...
- 机器学习PR:k近邻法分类
k近邻法是一种基本分类与回归方法.本章只讨论k近邻分类,回归方法将在随后专题中进行. 它可以进行多类分类,分类时根据在样本集合中其k个最近邻点的类别,通过多数表决等方式进行预测,因此不具有显式的学习过 ...
- k近邻法(kNN)
<统计学习方法>(第二版)第3章 3 分类问题中的k近邻法 k近邻法不具有显式的学习过程. 3.1 算法(k近邻法) 根据给定的距离度量,在训练集\(T\)中找出与\(x\)最邻近的\(k ...
随机推荐
- vue 之组件递归;
在开发一个 PC 端的项目时,需要开发一个树状结构,直接上效果图如下:点击 "+" 号的时候则展开下一级,点击 "-" 号的时候则收起: 之所以写这篇博客,因为 ...
- SQLAlchemy(包含有Flask-Migrate知识点)
what's the SQLAlchemy SQLAlchemy是一个基于Python实现的ORM框架.该框架建立在 DB API之上,使用关系对象映射进行数据库操作,简言之便是:将类和对象转换成SQ ...
- [LeetCode] 33. Search in Rotated Sorted Array_Medium tag: Binary Search
Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand. (i.e. ...
- 大数据Spark+Kafka实时数据分析案例
本案例利用Spark+Kafka实时分析男女生每秒购物人数,利用Spark Streaming实时处理用户购物日志,然后利用websocket将数据实时推送给浏览器,最后浏览器将接收到的数据实时展现, ...
- airflow中的两个参数
'trigger_rule':'all_done','retry_delay':timedelta(),
- python学习教程,史上最全面的python学习路线图
Python 是Web 开发.游戏脚本.计算机视觉.物联网管理和机器人开发的主流语言之一,随着Python用户可以预期的增长,它还有机会在多个领域里登顶.Python学习路线分享给你. 阶段一是Pyt ...
- Python数据分析Numpy库方法简介(一)
Numpy功能简介: 1.官网:www.numpy.org 2.特点:(1)高效的多维矩阵/数组; (2);复杂的广播功能 (3):有大量的内置数学统计函数 矩阵(多维数组): 一维数组: ([ 值 ...
- SpringMVC 允许跨域访问 也可以选择限制指定IP 允许访问 对象的数据传输
java ajax
- VMware中为Linux安装vm-tools
1.虚拟机中选择安装VMware-tools,或者重新安装 2.在/mnt目录下建立cdrom文件夹 mkdir /mnt.cdrom 3.把/dev/cdrom光驱挂载到刚才建的文件夹上 mount ...
- Python 面向对象介绍
面向对象,面向过程 面向对象引子 人狗大战,人与狗都有不同的特点,如果要写出这两个不同角色 需要写出两个角色,可以使用嵌套函数,函数内在写入函数,然后通 过字典,将里层函数reture出来,在调用. ...