收藏 分享(赏)

kNN算法综述.doc

上传人:weiwoduzun 文档编号:2947014 上传时间:2018-09-30 格式:DOC 页数:19 大小:70.01KB
下载 相关 举报
kNN算法综述.doc_第1页
第1页 / 共19页
kNN算法综述.doc_第2页
第2页 / 共19页
kNN算法综述.doc_第3页
第3页 / 共19页
kNN算法综述.doc_第4页
第4页 / 共19页
kNN算法综述.doc_第5页
第5页 / 共19页
点击查看更多>>
资源描述

1、1Error! No text of specified style in document.kNN 算 法 综 述王 宇 航 13120476(北 京 交 通 大 学 计 算 机 与 信 息 技 术 学 院 , 北 京 , 100044)摘 要 : kNN 算 法 是 著 名 的 模 式 识 别 统 计 学 方 法 , 是 最 好 的 文 本 分 类 算 法 之一 , 在 机 器 学 习 分 类 算 法 中 占 有 相 当 大 的 地 位 , 是 最 简 单 的 机 器 学 习 算 法 之一 。 本 文 对 kNN 算 法 及 相 关 文 献 做 一 份 总 结 , 详 细 介 绍 kNN

2、算 法 的 思 想 、原 理 、 实 现 步 骤 以 及 具 体 实 现 代 码 , 并 分 析 了 算 法 的 优 缺 点 及 其 各 种 改 进 方案 。 本 文 还 介 绍 了 kNN 算 法 的 发 展 历 程 、 重 要 的 发 表 的 论 文 。 本 文 在 最 后介 绍 了 kNN 算 法 的 应 用 领 域 , 并 重 点 说 明 其 在 文 本 分 类 中 的 实 现 。关 键 字 : kNN 算 法 ; k 近 邻 算 法 ; 机 器 学 习 ; 文 本 分 类Abstract: KNN algorithm, a famous statistical method of p

3、attern recognition, which is one of the best algorithms for dealing with text categorization, is playing an important role in machine learning classification algorithm, and it is one of the simplest algorithms in machine learning. This paper mainly summaries the kNN algorithm and its related literat

4、ure, and detailed introduces its main idea, principle, implementation steps and specific implementation code, as well as analyzes the advantages and disadvantages of the algorithm and its various improvement schemes. This paper also introduces the development course of kNN algorithm, its important p

5、ublished paper. In the final, this paper introduces the application field of kNN algorithm, and especially in text categorization.Keywords: KNN algorithm, K neighbor algorithm, Machine learning, Text classification1 引 言分 类 是 数 据 挖 掘 中 的 核 心 和 基 础 技 术 , 在 经 营 、 决 策 、 管 理 、 科 学 研 究 等 多 个 领域 都 有 着 广 泛

6、的 应 用 。 目 前 主 要 的 分 类 技 术 包 括 决 策 树 、 贝 叶 斯 分 类 、 kNN 分 类 、 人工 神 经 网 络 等 。 在 这 些 方 法 中 , kNN 分 类 是 一 种 简 单 、 有 效 、 非 参 数 的 方 法 , 现 已 经广 泛 应 用 于 文 本 分 类 、 模 式 识 别 、 图 像 及 空 间 分 类 等 领 域 。 本 文 从 各 个 角 度 对 kNN算 法 进 行 较 为 全 面 的 总 结 。本 文 的 结 构 如 下 :在 第 二 部 分 , 主 要 介 绍 kNN 算 法 的 基 本 原 理 、 思 想 、 实 现 步 骤 、 J

7、ava 实 现 代 码以 及 发 展 历 程 和 经 典 论 文 。第 三 部 分 是 对 kNN 算 法 的 诸 多 不 足 之 处 进 行 的 讨 论 , 并 给 出 一 些 改 进 的 方 案 。2Error! No text of specified style in document.第 四 部 分 介 绍 的 是 kNN 算 法 如 何 处 理 多 标 签 数 据 。第 五 部 分 介 绍 了 kNN 算 法 目 前 的 主 要 应 用 领 域 , 并 着 重 说 明 了 其 在 文 本 分 类 中 的出 色 表 现 。2 kNN 算 法 简 介2.1算 法 引 入KNN 算 法

8、是 机 器 学 习 里 面 比 较 简 单 的 一 个 分 类 算 法 , 整 体 思 想 比 较 简 单 : 计 算 一个 点 A 与 其 他 所 有 点 之 间 的 距 离 , 取 出 与 该 点 最 近 的 k 个 点 , 然 后 统 计 这 k 个 点 里面 所 属 分 类 比 例 最 大 的 , 则 点 A 属 于 该 分 类 。 下 面 用 一 个 例 子 来 说 明 一 下 :电 影 名 称 打 斗 次 数 接 吻 次 数 电 影 类 型California Man 3 104 RomanceHes Not Really into Dudes 2 100 RomanceBeaut

9、iful Woman 1 81 RomanceKevin Longblade 101 10 ActionRobo Slayer 3000 99 5 ActionAmped II 98 2 Action简 单 说 一 下 这 个 数 据 的 意 思 : 这 里 用 打 斗 次 数 和 接 吻 次 数 来 界 定 电 影 类 型 , 如 上 ,接 吻 多 的 是 Romance 类 型 的 , 而 打 斗 多 的 是 动 作 电 影 。 还 有 一 部 名 字 未 知 ( 这 里 名 字未 知 是 为 了 防 止 能 从 名 字 中 猜 出 电 影 类 型 ) , 打 斗 次 数 为 18 次 ,

10、 接 吻 次 数 为 90 次 的电 影 , 它 到 底 属 于 哪 种 类 型 的 电 影 呢 ?KNN 算 法 要 做 的 , 就 是 先 用 打 斗 次 数 和 接 吻 次 数 作 为 电 影 的 坐 标 , 然 后 计 算 其 他六 部 电 影 与 未 知 电 影 之 间 的 距 离 , 取 得 前 K 个 距 离 最 近 的 电 影 , 然 后 统 计 这 k 个 距离 最 近 的 电 影 里 , 属 于 哪 种 类 型 的 电 影 最 多 , 比 如 Action 最 多 , 则 说 明 未 知 的 这 部 电影 属 于 动 作 片 类 型 。在 实 际 使 用 中 , 有 几 个

11、 问 题 是 值 得 注 意 的 : K 值 的 选 取 , 选 多 大 合 适 呢 ? 计 算 两者 间 距 离 , 用 哪 种 距 离 会 更 好 呢 ? 计 算 量 太 大 怎 么 办 ? 假 设 样 本 中 , 类 型 分 布 非 常 不 均 ,比 如 Action 的 电 影 有 200 部 , 但 是 Romance 的 电 影 只 有 20 部 , 这 样 计 算 起 来 , 即 使不 是 Action 的 电 影 , 也 会 因 为 Action 的 样 本 太 多 , 导 致 k 个 最 近 邻 居 里 有 不 少Action 的 电 影 , 这 样 该 怎 么 办 呢 ?没

12、 有 万 能 的 算 法 , 只 有 在 一 定 使 用 环 境 中 最 优 的 算 法 。2.2算 法 指 导 思 想kNN 算 法 的 指 导 思 想 是 “近 朱 者 赤 , 近 墨 者 黑 ”, 由 你 的 邻 居 来 推 断 出 你 的 类 别 。先 计 算 待 分 类 样 本 与 已 知 类 别 的 训 练 样 本 之 间 的 距 离 , 找 到 距 离 与 待 分 类 样 本 数 据最 近 的 k 个 邻 居 ; 再 根 据 这 些 邻 居 所 属 的 类 别 来 判 断 待 分 类 样 本 数 据 的 类 别 。3Error! No text of specified styl

13、e in document.2.3算 法 计 算 步 骤1. 算 距 离 : 给 定 测 试 对 象 , 计 算 它 与 训 练 集 中 的 每 个 对 象 的 距 离 ;2. 找 邻 居 : 圈 定 距 离 最 近 的 k 个 训 练 对 象 , 作 为 测 试 对 象 的 近 邻 ;3. 做 分 类 : 根 据 这 k 个 近 邻 归 属 的 主 要 类 别 , 来 对 测 试 对 象 分 类 。2.4相 似 性 度 量用 空 间 内 两 个 点 的 距 离 来 度 量 。 距 离 越 大 , 表 示 两 个 点 越 不 相 似 。 距 离 的 选 择 有很 多 13, 通 常 用 比 较

14、 简 单 的 欧 式 距 离 。欧 式 距 离 :(,)=1()212=()()12马 氏 距 离 : 马 氏 距 离 能 够 缓 解 由 于 属 性 的 线 性 组 合 带 来 的 距 离 失 真 , 是 数 据 的协 方 差 矩 阵 。 (,)=()1()曼 哈 顿 距 离 :(,)=1|切 比 雪 夫 距 离 : (,)=(|)闵 氏 距 离 : r 取 值 为 2 时 : 曼 哈 顿 距 离 ; r 取 值 为 1 时 : 欧 式 距 离 。(,)=( =1()1,1平 均 距 离 :(,)=1=1()212弦 距 离 : 表 示 2-范 数 , 即|2 |2=12(,)=(22=1|

15、2|2)12测 地 距 离 :(,)=(1(,)2 )Mean character difference:4Error! No text of specified style in document.(,)=1=1|Index of association:12=1|=1=1|Canberra metric: =1|(+)Czekanowski coefficient:12=1,=1(+)Coefficient of divergence:(1=1(+)2)122.5类 别 的 判 定投 票 决 定 : 少 数 服 从 多 数 , 近 邻 中 哪 个 类 别 的 点 最 多 就 分 为 该 类

16、 。加 权 投 票 法 : 根 据 距 离 的 远 近 , 对 近 邻 的 投 票 进 行 加 权 , 距 离 越 近 则 权 重 越 大 ( 权重 为 距 离 平 方 的 倒 数 )2.6优 缺 点2.6.1 优 点1. 简 单 , 易 于 理 解 , 易 于 实 现 , 无 需 估 计 参 数 , 无 需 训 练 ;2. 适 合 对 稀 有 事 件 进 行 分 类 ;3. 特 别 适 合 于 多 分 类 问 题 (multi-modal,对 象 具 有 多 个 类 别 标 签 ), kNN 比 SVM的 表 现 要 好 。2.6.2 缺 点1. 懒 惰 算 法 , 对 测 试 样 本 分

17、类 时 的 计 算 量 大 , 内 存 开 销 大 , 评 分 慢 ;2. 当 样 本 不 平 衡 时 , 如 一 个 类 的 样 本 容 量 很 大 , 而 其 他 类 样 本 容 量 很 小 时 , 有可 能 导 致 当 输 入 一 个 新 样 本 时 , 该 样 本 的 K 个 邻 居 中 大 容 量 类 的 样 本 占 多 数 ;5Error! No text of specified style in document.3. 可 解 释 性 较 差 , 无 法 给 出 决 策 树 那 样 的 规 则 。2.7常 见 问 题2.7.1 k 值 的 设 定k 值 选 择 过 小 , 得

18、到 的 近 邻 数 过 少 , 会 降 低 分 类 精 度 , 同 时 也 会 放 大 噪 声 数 据 的 干扰 ; 而 如 果 k 值 选 择 过 大 , 并 且 待 分 类 样 本 属 于 训 练 集 中 包 含 数 据 数 较 少 的 类 , 那 么 在选 择 k 个 近 邻 的 时 候 , 实 际 上 并 不 相 似 的 数 据 亦 被 包 含 进 来 , 造 成 噪 声 增 加 而 导 致 分 类效 果 的 降 低 。如 何 选 取 恰 当 的 K 值 也 成 为 KNN 的 研 究 热 点 。 k 值 通 常 是 采 用 交 叉 检 验 来 确 定( 以 k=1 为 基 准 ) 。

19、经 验 规 则 : k 一 般 低 于 训 练 样 本 数 的 平 方 根 。2.7.2 类 别 的 判 定 方 式投 票 法 没 有 考 虑 近 邻 的 距 离 的 远 近 , 距 离 更 近 的 近 邻 也 许 更 应 该 决 定 最 终 的 分 类 ,所 以 加 权 投 票 法 更 恰 当 一 些 。2.7.3 距 离 度 量 方 式 的 选 择高 维 度 对 距 离 衡 量 的 影 响 : 众 所 周 知 当 变 量 数 越 多 , 欧 式 距 离 的 区 分 能 力 就 越 差 。变 量 值 域 对 距 离 的 影 响 : 值 域 越 大 的 变 量 常 常 会 在 距 离 计 算

20、中 占 据 主 导 作 用 , 因 此应 先 对 变 量 进 行 标 准 化 。2.7.4 训 练 样 本 的 参 考 原 则学 者 们 对 于 训 练 样 本 的 选 择 进 行 研 究 , 以 达 到 减 少 计 算 的 目 的 , 这 些 算 法 大 致 可 分为 两 类 。 第 一 类 ,减 少 训 练 集 的 大 小 。 KNN 算 法 存 储 的 样 本 数 据 ,这 些 样 本 数 据 包 含 了大 量 冗 余 数 据 ,这 些 冗 余 的 数 据 增 了 存 储 的 开 销 和 计 算 代 价 。 缩 小 训 练 样 本 的 方 法 有 :在 原 有 的 样 本 中 删 掉 一

21、 部 分 与 分 类 相 关 不 大 的 样 本 样 本 ,将 剩 下 的 样 本 作 为 新 的 训 练 样本 ;或 在 原 来 的 训 练 样 本 集 中 选 取 一 些 代 表 样 本 作 为 新 的 训 练 样 本 ; 或 通 过 聚 类 ,将 聚类 所 产 生 的 中 心 点 作 为 新 的 训 练 样 本 。在 训 练 集 中 , 有 些 样 本 可 能 是 更 值 得 依 赖 的 。 可 以 给 不 同 的 样 本 施 加 不 同 的 权 重 ,加 强 依 赖 样 本 的 权 重 , 降 低 不 可 信 赖 样 本 的 影 响 。2.7.5 性 能 问 题kNN 是 一 种 懒

22、惰 算 法 , 而 懒 惰 的 后 果 : 构 造 模 型 很 简 单 , 但 在 对 测 试 样 本 分 类 地的 系 统 开 销 大 , 因 为 要 扫 描 全 部 训 练 样 本 并 计 算 距 离 。已 经 有 一 些 方 法 提 高 计 算 的 效 率 , 例 如 压 缩 训 练 样 本 量 等 。2.8算 法 流 程1. 准 备 数 据 , 对 数 据 进 行 预 处 理2. 选 用 合 适 的 数 据 结 构 存 储 训 练 数 据 和 测 试 元 组3. 设 定 参 数 , 如 k6Error! No text of specified style in document.4.

23、 维 护 一 个 大 小 为 k 的 的 按 距 离 由 大 到 小 的 优 先 级 队 列 , 用 于 存 储 最 近 邻 训 练 元 组 。随 机 从 训 练 元 组 中 选 取 k 个 元 组 作 为 初 始 的 最 近 邻 元 组 , 分 别 计 算 测 试 元 组 到 这 k个 元 组 的 距 离 , 将 训 练 元 组 标 号 和 距 离 存 入 优 先 级 队 列5. 遍 历 训 练 元 组 集 , 计 算 当 前 训 练 元 组 与 测 试 元 组 的 距 离 , 将 所 得 距 离 L 与 优 先 级队 列 中 的 最 大 距 离 Lmax6. 进 行 比 较 。 若 L=L

24、max, 则 舍 弃 该 元 组 , 遍 历 下 一 个 元 组 。 若 L comparator =new Comparator()public int compare(KNNNode o1, KNNNode o2) if (o1.getDistance() = o2.getDistance()return -1;elsereturn 1;/* 获取K个不同的随机数* param k 随机数的个数* param max 随机数最大的范围* return 生成的随机数数组*/public List getRandKNum(int k, int max) List rand = new Arra

25、yList(k);for (int i = 0; i d1, List d2) double distance = 0.00;for (int i = 0; i datas, List testData, int k) PriorityQueue pq = new PriorityQueue (k,comparator);List randNum = getRandKNum(k, datas.size();for (int i = 0; i currData = datas.get(index);String c = currData.get(currData.size() - 1).toSt

26、ring();KNNNode node = new KNNNode(index, calDistance(testData, currData), c);pq.add(node);for (int i = 0; i t = datas.get(i);double distance = calDistance(testData, t);KNNNode top = pq.peek();if (top.getDistance() distance) pq.remove();pq.add(new KNNNode(i, distance, t.get(t.size() - 1). toString();

27、8Error! No text of specified style in document.return getMostClass(pq);/* 获取所得到的 k个最近邻元组的多数类* param pq 存储k个最近近邻元组的优先级队列* return 多数类的名称*/private String getMostClass(PriorityQueue pq) Map classCount=new HashMap();int pqsize = pq.size();for (int i = 0; i maxCount)maxIndex = i; maxCount = classCount.get

28、(classesi); return classesmaxIndex.toString();2.10 经 典 文 献kNN 算 法 是 对 NN( nearest neighbor) 算 法 即 近 邻 算 法 的 改 进 , 最 初 的 近 邻 算 法 是由 T.M. Cover 在 其 文 章 “Rates of Convergence for Nearest Neighbor Procedures,”中 提出 的 , 是 以 全 部 训 练 样 本 作 为 带 标 点 , 计 算 测 试 样 本 与 所 有 样 本 的 距 离 并 以 最 近 邻 者 的类 别 作 为 决 策 , 后 学

29、 者 们 对 近 邻 算 法 进 行 了 各 方 面 的 改 进 。 其 中 一 个 方 向 就 是 KNN算 法 , 最 初 的 KNN 算 法 是 由 谁 提 出 的 我 现 在 有 两 个 怀 疑 , 一 个 是 Trevor Hastie 提 出KNN 算 法 的 人 , 我 找 到 了 他 的 那 篇 文 献 Discriminant Adaptive Nearest Neighbor Classification, 但 是 在 文 章 最 后 作 者 引 用 了 R. Short Fukunaga, K. The Optimal Distance Measure for Neare

30、st Neighbor Classification J. IEEE, 1981(9), 27(5):622 - 627.8 Myles J, Hand D. The Multi-Class Metric Problem in Nearest Neighbor Discrimination Rules J. Pattern Recognition, 1990, 23(11):12911297.9 Altman N S. An Introduction to Kernel and Nearest-Neighbor Nonparametric Regression J. , 1992, 46(3)

31、:175-185.10 Zhang M, Zhou Z. ML-KNN: A lazy learning approach to multi-label learning J. Pattern Recognition, 2007(7), 40(7):20382048.11 Hall P, Samworth B U P A R J. Choice Of Neighbor Order In Nearest-Neighbor Classification J. The Annals of Statistics, 2008(10), 36(5):2135-2152.12 Pan J, Manocha,

32、 D. Bi-level Locality Sensitive Hashing for k-Nearest Neighbor Computation J. IEEE, 2012(4):378 - 389.13 Michel M Deza, Elena Deza. Encyclopedia of Distances. Springer, 200914 周 靖 , 刘 晋 胜 . 一 种 采 用 类 相 关 度 优 化 距 离 的 KNN 算 法 J. 微 计 算 机 应 用 , 2010(11), 31(11):7-12.15 Sebastiani F Machine learning in a

33、utomated text categorization J.ACM Computing Surveys, 2002, 34(1):1-47.16 赵 继 东 , 鲁 坷 , 吴 跃 一 种 基 于 谱 图 理 论 的 web 图 像 搜 索 方 法 J.计19Error! No text of specified style in document.算 机 应 用 研 究 ,2008(5):12-13.17 张 华 www 图 像 语 义 信 息 提 取 方 法 研 究 D.济 南 : 山 东 师 范 大 学 ,2004.18 温 小 斌 Interact 图 像 搜 索 引 擎 的 研 究

34、 与 实 现 D 海 口 : 海 南 大 学 ,2006.19 Cai Dang, He Xiaofei, Li Zhiwei, et a1 Hieraehical clustering of WWW image search results using visual textual and link InformationC /Proceedings of the ACM International Conference on Multimedia, New York, USA, 2004: 95295920 Cheng En, Jing Feng, Zhang Chao, et a1.Se

35、arch result clustering based relevance feedback for web image retrieval C /Interactional Conference on Acoustics, Speech, and Signal Processing, Hawaii, 2007:961-964.21 谢 同 基 于 文 本 的 Web 图 片 搜 索 引 擎 的 研 究 与 实 现 D.成 都 : 电 子 科 技 大 学 ,2007.22 Cai D, Yu S, Wen J R, et a1.VIPS:a vision-based page segment

36、ation algorithm,MSR-TR-2003-79R.Microsoft Research,2003.23 亢 世 勇 , 刘 艳 汉 语 动 词 谓 语 句 的 语 义 成 分 和 语 义 句 式 J.唐 都 学 刊 .1998, 14(1):89-93.24 徐 斌 基 于 PCFG-HDSM 模 型 的 语 义 句 式 识 别 D.南 京 :南 京 航 天 航 空 大 学 ,2008.25 P E Har. The condensed nearest neighbor rule. IEEE Trans on Information Theory, 1968, IT-14(3):

37、515-516.26 李 荣 陆 ,胡 运 发 .基 于 密 度 的 kNN 文 本 分 类 器 训 练 样 本 裁 剪 方 法 .计 算 机 研 究 与 发 展 , 2004, 41(4):539-546.27 W J Hwang, K W Wen. Fast KNN classification algorithm based on partial distance search J.Electron lett, 1998, 34(21):2062_2063.28 J S Pan, Y L Qiao, S H Sun. A fast K nearest neighbors classifi

38、cation algorithm J.IEICE Trans Fundamentals, 2004, E87-A (4):961-961.29 侯 士 江 ,刘 车 华 ,余 靖 ,褚 兵 义 .空 间 网 络 数 据 库 中 的 K 个 最 近 邻 查 询 算 法 .计 算 机 科 学 ,2006Vol.33No.8.30 孙 秋 月 .基 于 SNN 相 似 度 的 KNN 算 法 研 究 .云 南 大 学 硕 士 学 位 论 文 , 2008.31 H. Wang. Nearest Neighbors without k: A Classification Formalism based on Probability, technical report, Faculty of Informatics, University of Ulster, N, Ireland, UK, 2002.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报