博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
统计学习笔记之k近邻法
阅读量:4684 次
发布时间:2019-06-09

本文共 603 字,大约阅读时间需要 2 分钟。

1.kNN算法的思想:给定一个训练数据集,对新的输入实例,在训练集中找到与该实例最近邻的k个实例,这k个实例的多数属于某类,就把输入实例分为这个类。

2.算法

(1)根据给定的距离度量,在训练集T中找出与实例x最邻近的k个点,涵盖着k个点的邻域记做;

(2)在中根据分类决策规则(如多数表决)决定x的类别y:

  

其中,I为指示函数,即当yi=cj时I为1,否则为0。

距离度量一般是Lp距离或者是Minkowski距离。

xi,xj的Lp距离定义为:

  

这里p≥1,当p=2时,称为欧氏距离;当p=1时,称为曼哈顿距离。

3.关于k的选择

若k较小,就相当于用较小的邻域中的训练实例进行预测,容易发生过拟合。

若k较大,就相当于用较大的邻域中的训练实例进行预测,优点是可以减小学习的估计误差,但是学习的近似误差就会增大,而且k较大,较远邻域的不相干点也会起预测作用,使预测发生偏差。

4.KNN模型优缺点

优点:(1)思想简单,可分类可回归

    (2)可用于非线性分类

   (3)精度高,对异常值不敏感

缺点:(1)计算复杂度高

    (2)需要大量内存

    (3)样本非平衡问题

5.一些要注意的地方

在求距离度量的时候,可能会遇到其中某一项数据远大于另外一项数据,到时候可以按归一化处理。

转载于:https://www.cnblogs.com/hbwxcw/p/6812407.html

你可能感兴趣的文章
基于源码学习-fighting
查看>>
[转]LINUX新建和增加SWAP分区
查看>>
(上线时清缓存)laravel 5.1 的程序性能优化(配置文件) - 简书
查看>>
SettingsSVNPlugin
查看>>
华为经典问题汇总~
查看>>
linux桌面环境gnome,kde,xfce,lxde 使用比较(转)
查看>>
如何做自己不想做的事情,却必须要去做的事情
查看>>
JavaScript的深入理解(1)
查看>>
Go-TCP粘包
查看>>
KNN算法的感受 1
查看>>
用Maven构建Mahout项目实现协同过滤userCF--单机版
查看>>
Java多线程-线程的调度(守护线程)
查看>>
Bootstrap 简介(Web前端CSS框架)
查看>>
Bootstrap 概览
查看>>
nginx配置ssl证书实现https访问
查看>>
c# while穷举(凑钱)
查看>>
EnCase v7 could not recognize Chinese character folder names / file names on Linux Platform
查看>>
c#中序列化和反序列化的理解
查看>>
c#Socket通信
查看>>
第七周翻译
查看>>