1、数学与计算机学院课 程 名 称 : 模 式 识 别题 目 : K-Means 聚 类 -基 于 人 脸 数 据 实 现任 课 老 师 : 王 晓 明年 级 专 业 : 2011 级 计 算 机 应 用 技 术姓 名 :学 号 :时 间 : 2011 年 11 月 12 日模 式 识 别 K-Means 聚 类 -基 于 人 脸 数 据 实 现第 1 页 共 1 4 页目 录一 K-means 聚 类 介 绍 2二 K-means 算 法 描 述 3三 K-means 算 法 matlab 实 现 -基 于 人 脸 数 据 实 现 .71 数 据 读 入 .72 算 法 运 行 结 果 .8四
2、K-means 算 法 的 总 结 和 心 得 .9五 附 录 核 心 算 法 的 主 要 源 代 码 1 0参 考 文 献 .1 3模 式 识 别 K-Means 聚 类 -基 于 人 脸 数 据 实 现第 2 页 共 1 4 页K -Means 聚 类一 K -means 聚 类 介 绍1967 年 ,J.B.MacQueen 提 出 了 K-means 算 法 ,是 一 种 基 于 质 心 的 经 典聚 类 算 法 。 他 总 结 了 Cox、 Fisher、 Sebestyen 等 的 研 究 成 果 , 给 出 了 K-means算 法 的 详 细 步 骤 , 并 用 数 学 方 法
3、 进 行 了 证 明 。 由 于 K-means算 法 易 于 描 述 , 具 有时 间 效 率 高 且 适 于 处 理 大 规 模 数 据 等 优 点 , 自 20世 纪 70年 代 以 来 , 该 算 法 在 国内 外 已 经 被 应 用 到 包 括 自 然 语 言 处 理 、 土 壤 、 考 古 等 众 多 领 域 。K-means算 法 是 很 典 型 的 基 于 距 离 的 聚 类 算 法 , 采 用 距 离 作 为 相 似 性 的 评 价指 标 , 即 认 为 两 个 对 象 的 距 离 越 近 , 其 相 似 度 就 越 大 。 该 算 法 认 为 簇 是 由 距 离 靠近 的
4、对 象 组 成 的 , 因 此 把 得 到 紧 凑 且 独 立 的 簇 作 为 最 终 目 标 。k个 初 始 类 聚 类 中 心 点 的 选 取 对 聚 类 结 果 具 有 较 大 的 影 响 , 因 为 在 该 算 法 第 一 步中 是 随 机 的 选 取 任 意 k个 对 象 作 为 初 始 聚 类 的 中 心 , 初 始 地 代 表 一 个 簇 。 该 算 法在 每 次 迭 代 中 对 数 据 集 中 剩 余 的 每 个 对 象 , 根 据 其 与 各 个 簇 中 心 的 距 离 将 每 个 对象 重 新 赋 给 最 近 的 簇 。 当 考 察 完 所 有 数 据 对 象 后 , 一
5、次 迭 代 运 算 完 成 , 新 的 聚 类中 心 被 计 算 出 来 。 如 果 在 一 次 迭 代 前 后 , J的 值 没 有 发 生 变 化 , 说 明 算 法 已 经 收敛 。 其 算 法 过 程 如 下 :1) 从 N个 文 档 随 机 选 取 K个 文 档 作 为 质 心2) 对 剩 余 的 每 个 文 档 测 量 其 到 每 个 质 心 的 距 离 , 并 把 它 归 到 最 近 的 质 心 的类 3) 重 新 计 算 已 经 得 到 的 各 个 类 的 质 心4) 迭 代 2 3步 直 至 新 的 质 心 与 原 质 心 相 等 或 小 于 指 定 阈 值 , 算 法 结
6、束该 算 法 通 常 都 采 用 均 方 差 作 标 准 测 度 函 数 。 所 产 生 的 C个 聚 类 有 各 聚 类 本 身尽 可 能 的 紧 凑 而 各 聚 类 之 间 尽 可 能 的 分 开 的 特 点 。 这 一 算 法 不 适 合 处 理 离 散 型 属性 , 但 是 对 于 连 续 型 具 有 较 好 的 聚 类 效 果 。 对 于 以 上 的 说 法 , 首 先 要 知 道 K的 值 ,也 就 是 说 C是 手 动 设 置 得 到 , 至 于 如 何 选 择 质 心 , 最 简 单 的 方 式 无 异 于 , 随 机 选取 质 心 了 , 然 后 多 次 运 行 , 选 取
7、效 果 最 好 的 那 个 结 果 。 这 个 方 法 简 单 但 不 见 得 有效 , 有 很 大 的 可 能 是 得 到 局 部 最 优 。 另 一 种 复 杂 的 方 式 时 , 随 机 选 取 一 个 质 心 ,然 后 计 算 离 这 个 质 心 最 远 的 样 本 点 , 对 于 每 个 后 继 质 心 都 选 取 以 及 选 去 过 的 最 远点 。 使 用 这 种 方 式 , 可 以 确 保 质 心 是 随 机 的 , 并 且 是 散 开 的 。 然 后 是 如 何 定 义 最近 的 概 念 , 对 于 欧 式 空 间 中 的 点 , 可 以 使 用 欧 式 空 间 , 对 于
8、文 档 可 以 用 余 弦 相 似性 等 等 , 对 于 给 定 的 数 据 , 可 能 适 应 于 多 种 合 适 的 邻 近 性 度 量 。 至 于 其 他 问 题 ,有 离 群 点 的 处 理 。 离 群 点 可 能 过 度 影 响 簇 的 发 现 , 导 致 簇 的 最 终 发 布 会 于 我 们 的预 想 有 较 大 的 出 入 , 所 以 提 前 发 现 并 剔 除 离 群 点 是 有 不 要 的 。 还 有 簇 分 裂 和 簇 合并 , 使 用 较 大 的 C, 往 往 会 使 得 聚 类 的 结 果 看 上 去 更 加 合 理 , 但 很 多 情 况 下 , 我们 并 不 想
9、增 加 簇 的 个 数 。 这 时 可 以 交 替 采 用 簇 分 裂 和 簇 合 并 , 这 种 方 式 可 以 避 开局 部 极 小 , 并 且 能 够 得 到 具 有 期 望 个 数 簇 的 结 果 。模 式 识 别 K-Means 聚 类 -基 于 人 脸 数 据 实 现第 3 页 共 1 4 页二 K -means 算 法 描 述 , 类 间 独 立1算 法 描 述K-means算 法 是 一 种 很 常 用 的 聚 类 算 法 , 其 基 本 思 想 是 , 通 过 迭 代 寻 找 c 个聚 类 的 一 种 划 分 方 案 , 使 得 用 这 c 个 聚 类 的 均 值 来 代 表
10、 相 应 各 类 样 本 时 所 得 到 的总 体 误 差 最 小 。从 上 图 中 , 我 们 可 以 看 到 , A, B, C, D, E 是 五 个 在 图 中 点 。 而 灰 色 的 点 是 我 们 的 种 子 点 ,也 就 是 我 们 用 来 找 点 群 的 点 。 有 两 个 种 子 点 , 所 以 K=2。然 后 , K-Means的 算 法 如 下 : 随 机 在 图 中 取 K( 这 里 K=2) 个 种 子 点 。 然 后 对 图 中 的 所 有 点 求 到 这 K个 种 子 点 的 距 离 , 假 如 点 Pi离 种 子 点 Si最 近 , 那 么Pi属 于 Si点 群
11、 。 ( 上 图 中 , 我 们 可 以 看 到 A, B属 于 上 面 的 种 子 点 , C, D, E属 于 下 面中 部 的 种 子 点 ) 接 下 来 , 我 们 要 移 动 种 子 点 到 属 于 他 的 “ 点 群 ” 的 中 心 。 ( 见 图 上 的 第 三 步 )模 式 识 别 K-Means 聚 类 -基 于 人 脸 数 据 实 现第 4 页 共 1 4 页 然 后 重 复 第 2) 和 第 3) 步 , 直 到 , 种 子 点 没 有 移 动 ( 我 们 可 以 看 到 图 中 的 第 四 步 上面 的 种 子 点 聚 合 了 A, B, C, 下 面 的 种 子 点
12、聚 合 了 D, E) 。这 个 算 法 很 简 单 , 但 是 有 些 细 节 我 要 提 一 下 , 求 距 离 的 公 式 我 不 说 了 , 大 家 有 初 中 毕 业 水 平的 人 都 应 该 知 道 怎 么 算 的 。 我 重 点 想 说 一 下 “ 求 点 群 中 心 的 算 法 ”核 心 思 想 :算 法 原 理 :K-means算 法 的 基 础 是 最 小 误 差 平 方 和 准 则 。若 Ni是 第 i聚 类 i中 的 样 本 数 目 , mi是 这 些 样 本 的 均 值 , 即1 ii y rim yN 把 i中 的 个 样 本 y与 均 值 mi间 的 误 差 平
13、方 和 对 所 有 类 相 加 后 为21 ice ii yJ y m Je是 误 差 平 方 和 聚 类 准 则 , 它 是 样 本 集Y和 类 别 集 的 函 数 。 Je度 量 了 用 C 个 聚类 中 心 m1, m2, , mc代 表 c个 样 本 子 集 1, 2, , c时 所 产 生 的 总 的 误差 平 方 。 对 于 不 同 的 聚 类 , Je的 值 当 然 是 不 同 的 , 使 Je极 小 的 聚 类 是 误 差 平 方 和准 则 下 的 最 优 结 果 。 这 种 类 型 的 聚 类 通 常 称 为 最 小 方 差 划 分 。式 ( 1) 的 误 差 平 方 和 无
14、 法 用 解 析 的 方 法 最 小 化 , 只 能 用 迭 代 的 方 法 , 通 过不 断 调 整 样 本 的 类 别 归 属 来 求 解 。调 整 样 本 类 别 划 分 方 法 :假 设 已 经 有 一 个 划 分 方 案 , 它 把 样 本 y 划 分 在 类 别 k中 。考 查 下 面 的 调 整 : 如 果 把 y 从 k类 移 到 j类 中 , 则 这 两 个 类 别 发 生 了 变 化 , k类 少 了 一 个 样 本 而 变 成 k , j类 多 了 一 个 样 本 而 变 成 j , 其 余 类 别 不 受影 响 。 这 样 调 整 后 , 两 类 的 均 值 分 别 变
15、 为 1 1k k kkm m m yN 1 1j j jjm m y mN 相 应 地 , 两 类 各 自 的 误 差 平 方 和 也 分 别 变 为 21kk k kKNJ j y mN (2 .1 )(2 .2 )(2 .3 )(2 .4 )(2 .5 )模 式 识 别 K-Means 聚 类 -基 于 人 脸 数 据 实 现第 5 页 共 1 4 页21jj j jjNJ j y mN 总 的 误 差 平 方 和 的 变 化 只 取 决 于 这 两 个 变 化 。显 然 , 移 出 一 个 样 本 会 带 来 k类 均 方 误 差 的 减 小 , 移 入 这 个 样 本 又 会 导 致
16、 j类 的 均 方 误 差 增 大 。 如 果 减 小 量 大 于 增 加 量 , 即2 21 1j kj kj kN Ny m y mN N 则 进 行 这 一 步 搬 运 就 有 利 于 总 体 误 差 平 方 和 的 减 少 , 我 们 就 进 行 这 步 样 本 移 动 ,否 则 不 移 动 。同 样 道 理 , 如 果 类 别 数 c2, 则 可 以 考 虑 k类 之 外 的 所 有 其 他 类 , 考 查 其中 均 方 误 差 增 加 量 最 小 的 类 别 , 如 果 最 小 增 加 量 小 于 k类 均 方 误 差 的 减 小 量 ,则 把 样 本 y从 k类 移 到 均 方
17、误 差 增 加 量 最 小 的 类 别 中 。算 法 步 骤 :( 1) 初 始 划 分 c 个 聚 类 , k, i=1, , c, 用 式 ( 2.1) 和 式 ( 2.2) 计 算mi, i=1, , c, 和 Je;( 2) 任 取 一 个 样 本 y, 设 y i;( 3) 若 Ni=1, 则 转 ( 2) ; 否 则 继 续 ;( 4) 计 算 j 2,1jj jjN y m j iN 21ii iiN y mN ( 5) 考 查 j中 的 最 小 者 k, 若 j0, 在 离 开 第 一 个 代 表 点 距 离 以 外 选 择 次 大 ”密 度“点 作 为 第 二 个 代 表 点
18、 , 这 就 可 避 免 代 表 点 可 能 集 中 在 一 起 的 问 题 。其 余 代 表 点 的 选 择 可 以 类 似 地 进 行 。( 4) 按 照 样 本 天 然 的 排 列 顺 序 或 者 将 样 本 随 机 排 序 后 用 前 c 个 点 作 为 代表 点 。( 5) 从 ( c-1) 聚 类 划 分 问 题 的 解 中 产 生 c 聚 类 划 分 问 题 的 代 表 点 。 具 体做 法 是 , 先 把 全 部 样 本 看 作 一 个 聚 类 , 其 代 表 点 为 样 本 的 总 均 值 ; 然后 确 定 两 聚 类 问 题 的 代 表 点 是 一 个 聚 类 划 分 的
19、总 均 值 和 离 它 最 远 的点 ; 依 次 推 类 , 则 c 聚 类 划 分 问 题 的 代 表 点 就 是 ( c-1) 聚 类 划 分 最后 得 道 的 各 均 值 再 加 上 离 最 近 的 均 值 最 远 的 点 。常 见 的 初 始 分 类 方 法 :( 1) 选 择 一 批 代 表 点 后 , 其 余 的 点 离 哪 个 代 表 点 最 近 就 归 入 哪 一 类 。 从 而得 道 初 始 分 类 。( 2) 选 择 一 批 代 表 点 后 , 每 个 代 表 点 自 成 一 类 , 将 样 本 依 顺 序 归 入 与 其 距离 最 近 的 代 表 点 的 那 一 类 ,
20、并 立 即 重 新 计 算 该 类 的 中 心 以 代 替 原 来 的代 表 点 。 然 后 再 计 算 下 一 个 样 本 的 归 类 , 直 到 所 有 的 样 本 都 归 到 相 应的 类 中( 3) 规 定 一 个 正 数 , 选 择 1= y1 , 计 算 样 本 y2与 y1间 的 距 离 ( y2,y1) , 如 果 小 于 , 则 将 y2归 入 1, 否 则 建 立 新 类 2= y2 。 当 某一 步 轮 到 归 入 yl时 , 假 如 当 时 已 形 成 了 k类 即 1, 2, , k,而 每 个 类 第 一 个 归 入 的 样 本 记 作 y 11, y 12, ,
21、y 1k。 若 ( y2, y 11) , i=1, 2, , k, 则 将 yl建 立 为 新 的 第 k+1类 , 即 k+1= yl 。 否 则 将 yl归 入 与 y 11, y 12, , y 1k距 离 最 近 的 那 一 类 。( 4) 先 将 数 据 标 准 化 , 用 yij表 示 标 准 化 第 i 个 样 本 的 第 j 个 坐 标 。 令1( ) d i jjSUM i ymax ( )iMA SUM imin ( )iMI SUM i若 欲 将 样 本 划 分 为 c 类 , 则 对 每 个 i 计 算 (2 .1 0 )(2 .1 1 )(2 .1 2 )模 式 识
22、 别 K-Means 聚 类 -基 于 人 脸 数 据 实 现第 7 页 共 1 4 页( 1) ( ) 1( )c SUM i MIMA MI 假 设 与 这 个 计 算 值 最 接 近 的 整 数 为 k, 则 将 yi归 入 第 k 类 。2 算 法 简 单 实 现下 图 展 示 了 对 n个 样 本 点 进 行 K-means聚 类 的 效 果 , 这 里 k取 2:(a)未 聚 类 的 初 始 点 集(b)随 机 选 取 两 个 点 作 为 聚 类 中 心(c)计 算 每 个 点 到 聚 类 中 心 的 距 离 , 并 聚 类 到 离 该 点 最 近 的 聚 类 中 去(d)计 算
23、每 个 聚 类 中 所 有 点 的 坐 标 平 均 值 , 并 将 这 个 平 均 值 作 为 新 的 聚 类 中 心(e)重 复 (c),计 算 每 个 点 到 聚 类 中 心 的 距 离 , 并 聚 类 到 离 该 点 最 近 的 聚 类 中 去(f)重 复 (d),计 算 每 个 聚 类 中 所 有 点 的 坐 标 平 均 值 , 并 将 这 个 平 均 值 作 为 新 的 聚类 中 心(2 .1 3 )模 式 识 别 K-Means 聚 类 -基 于 人 脸 数 据 实 现第 8 页 共 1 4 页执 行 结 果 : Kmeans6 iterations, total sum of d
24、istances = 204.82110 iterations, total sum of distances = 205.88616 iterations, total sum of distances = 204.8219 iterations, total sum of distances = 205.8869 iterations, total sum of distances = 205.8868 iterations, total sum of distances = 204.8218 iterations, total sum of distances = 204.82114 i
25、terations, total sum of distances = 205.88614 iterations, total sum of distances = 205.8866 iterations, total sum of distances = 204.821Ctrs =1.0754 -1.06321.0482 1.3902-1.1442 -1.1121SumD =64.294463.593976.9329聚 类 效 果 :模 式 识 别 K-Means 聚 类 -基 于 人 脸 数 据 实 现第 9 页 共 1 4 页三 K -means 算 法 matlab 实 现 -基 于
26、人 脸 数 据 实 现1 数 据 读 入程 序 所 使 用 的 人 脸 数 据 为 30张 100*100的 灰 度 图 ( 其 中 10张 为 人 物 甲如 图 4 所 示 , 10 张 为 人 物 乙 如 图 5 所 示 , 10 张 为 人 物 丙 如 图 6 所 示 ) , 如 图 6所 示 , 在 Matlab中 使 用 imread()函 数 将 各 个 图 片 读 入 并 存 储 在 30个 二 维 矩 阵 中 。图 4图 5模 式 识 别 K-Means 聚 类 -基 于 人 脸 数 据 实 现第 1 0 页 共 1 4 页图 6图 7将 数 据 读 入 到 相 应 的 矩 阵
27、 中 后 , 并 不 能 直 接 利 用 算 法 处 理 数 据 , 因 为 对 于 此 时 的 二 维 矩阵 来 说 , 特 征 并 不 明 显 。 一 下 以 一 个 存 储 了 图 片 信 息 的 矩 阵 face 为 例 子 讲 解 处 理 过 程 。首 先 将 1 0 0 *1 0 0 的 face 矩 阵 降 维 为 一 个 1 *1 0 0 0 0 的 行 矩 阵 ; 然 后 将 每 2 0 0 0 个 数 据 为 一组 求 取 一 个 平 均 数 , 即 得 到 一 个 1 *3 的 feature 矩 阵 , 此 时 feature 矩 阵 中 存 储 的 是 处 理 后 的
28、0 2 5 5 之 间 的 数 , 即 为 特 征 1 、 特 征 2 、 特 征 3 的 值 , 得 到 一 个 如 表 9 所 示 的 矩 阵 。降 维 后 的 数 据 集图 片 号 特 征 1 特 征 2 特 征 3 人 物 代 号 人 物1 227.764 235.008 251.269 1 甲2 201.95 171.624 194.945 1 甲3 224.934 181.419 220.641 1 甲4 299.497 283.707 205.971 1 甲5 206.334 175.668 186.104 1 甲6 206.334 175.668 186.104 1 甲7 20
29、8.128 166.037 255.486 1 甲8 238.901 168.59 194.15 1 甲9 209.31 168.449 195.075 1 甲10 177.1 153.796 166.812 1 甲11 183.189 129.826 151.057 17 乙12 261.774 169.557 195.924 17 乙模 式 识 别 K-Means 聚 类 -基 于 人 脸 数 据 实 现第 1 1 页 共 1 4 页13 261.042 162.394 211.054 17 乙14 234.876 134.373 111.316 17 乙15 251.593 165.49
30、1 191.16 17 乙16 231.97 157.978 179.263 17 乙17 62.434 46.46 88.195 17 乙18 269.553 170.8 198.746 17 乙19 284.118 159.287 178.697 17 乙20 262.452 151.028 188.618 17 乙21 238.901 168.59 194.15 24 丙22 209.31 168.449 195.075 24 丙23 177.1 153.796 166.812 24 丙24 183.189 129.826 151.057 24 丙25 261.774 169.557 1
31、95.924 24 丙26 261.042 162.394 211.054 24 丙27 234.876 134.373 111.316 24 丙28 251.593 165.491 191.16 24 丙29 231.97 157.978 179.263 24 丙30 62.434 46.46 88.195 24 丙表 9但 是 3 0 个 样 本 就 有 3 0 个 feature 矩 阵 , 且 同 一 个 特 征 下 个 样 本 的 值 可 能 全 不 相 同 , 此时 对 于 K-means 算 法 来 说 , 就 不 好 处 理 了 , 所 以 还 要 对 特 征 的 值 进 行
32、分 类 , 我 采 用 的 方 法是 : 求 得 每 个 特 征 下 3 0 个 值 得 平 均 数 avg, 再 将 每 个 样 本 的 该 特 征 的 值 与 avg 比 较 , 若 大 于avg 则 记 为 1 ; 否 则 为 0 ,。 最 终 得 到 一 个 如 表 1 0 所 示 的 矩 阵 。将 所 有 ( 3 0 张 ) 图 片 的 每 个 特 征 以 平 均 数 为 界 限 非 为 两 类图 片 号 特 征 1 特 征 2 特 征 3 人 物 代 号 人 物1 1 1 1 1 甲2 0 1 1 1 甲3 0 1 1 1 甲4 1 1 1 1 甲模 式 识 别 K-Means 聚
33、 类 -基 于 人 脸 数 据 实 现第 1 2 页 共 1 4 页5 0 1 0 1 甲6 0 1 0 1 甲7 0 0 1 1 甲8 1 1 1 1 甲9 0 1 1 1 甲10 0 0 0 1 甲11 0 0 1 17 甲12 0 0 0 17 乙13 1 1 1 17 乙14 1 0 1 17 乙15 1 0 0 17 乙16 1 0 1 17 乙17 1 0 0 17 乙18 0 0 0 17 乙19 1 1 1 17 乙20 1 0 0 17 乙21 1 1 1 24 丙22 0 1 1 24 丙23 0 0 0 24 丙24 0 0 1 24 丙25 0 0 0 24 丙26 1
34、 1 1 24 丙27 1 0 1 24 丙28 1 0 0 24 丙29 1 0 1 24 丙30 1 0 0 24 丙表 10模 式 识 别 K-Means 聚 类 -基 于 人 脸 数 据 实 现第 1 3 页 共 1 4 页2 算 法 运 行 结 果输 在 得 到 表 十 数 据 后 , 将 人 物 代 号 为 1 ,1 7 ,2 4 的 照 片 降 维 后 的 数 据 集 作 为 聚类 中 心 点 。 在 测 试 选 择 一 张 图 片 后 , 将 新 照 片 降 维 的 特 征 一 , 特 征 二 , 特 征 三 ,数 据 集 分 别 与 三 个 聚 类 中 心 的 特 征 一 ,
35、 特 征 二 , 特 征 三 数 据 集 求 得 欧 式 距 离 量 度 ,得 到 最 后 数 据 最 小 的 , 这 判 定 新 照 片 属 于 此 聚 类 中 心 。再 用 聚 类 算 法 得 到 1 ,1 7 ,2 4 号 照 片 的 聚 类 后 的 照 片 , 并 作 为 一 个 库 为 新 输 入的 照 片 作 比 较 , 判 断 具 体 是 哪 个 人 。图 1 , 代 表 乙模 式 识 别 K-Means 聚 类 -基 于 人 脸 数 据 实 现第 1 4 页 共 1 4 页图 2 代 表 丙模 式 识 别 K-Means 聚 类 -基 于 人 脸 数 据 实 现第 1 5 页
36、共 1 4 页图 三 代 表 甲最 后 测 试 :模 式 识 别 K-Means 聚 类 -基 于 人 脸 数 据 实 现第 1 6 页 共 1 4 页四 总 结 和 心 得K-means 算 法 的 一 个 特 点 就 是 在 每 次 迭 代 中 都 要 考 察 每 个 样 本 的 分 类 是 否 正 确 , 如 果 不正 确 必 须 调 整 , 在 调 整 完 全 部 样 本 后 , 修 改 聚 类 中 心 , 然 后 再 进 行 下 一 次 迭 代 。 该 算 法 的 缺点 是 : 在 K-means 算 法 中 K 是 事 先 给 定 的 , 这 个 K 值 的 选 定 是 非 常 难
37、 以 估 计 的 。 很 多时 候 , 事 先 并 不 知 道 给 定 的 数 据 集 应 该 分 成 多 少 个 类 别 才 最 合 适 。 这 也 是 K-means 算 法 的一 个 不 足 。 有 的 算 法 是 通 过 类 的 自 动 合 并 和 分 裂 , 得 到 较 为 合 理 的 类 型 数 目 K, 例 如 ISODATA算 法 。 关 于 K-means 算 法 中 聚 类 数 目 K 值 的 确 定 在 文 献 23中 , 是 根 据 方 差 分 析 理 论 , 应用 混 合 F 统 计 量 来 确 定 最 佳 分 类 数 , 并 应 用 了 模 糊 划 分 熵 来 验
38、证 最 佳 分 类 数 的 正 确 性 。 在文 献 24中 , 使 用 了 一 种 结 合 全 协 方 差 矩 阵 的 RPCL 算 法 , 并 逐 步 删 除 那 些 只 包 含 少 量 训 练数 据 的 类 。 而 文 献 25中 使 用 的 是 一 种 称 为 次 胜 者 受 罚 的 竞 争 学 习 规 则 , 来 自 动 决 定 类 的 适当 数 目 。 它 的 思 想 是 : 对 每 个 输 入 而 言 , 不 仅 竞 争 获 胜 单 元 的 权 值 被 修 正 以 适 应 输 入 值 , 而且 对 次 胜 单 元 采 用 惩 罚 的 方 法 使 之 远 离 输 入 值 。 在 K
39、-means 算 法 中 , 首 先 需 要 根 据 初 始 聚 类 中 心 来 确 定 一 个 初 始 划 分 , 然 后 对 初 始 划 分进 行 优 化 。 这 个 初 始 聚 类 中 心 的 选 择 对 聚 类 结 果 有 较 大 的 影 响 26-29, 一 旦 初 始 值 选 择 的不 好 , 可 能 无 法 得 到 有 效 的 聚 类 结 果 , 这 也 成 为 K-means 算 法 的 一 个 主 要 问 题 。 对 于 该 问题 的 解 决 , 许 多 算 法 采 用 遗 传 算 法 ( GA) , 例 如 文 献 中 采 用 遗 传 算 法 ( GA) 进 行 初 始 化
40、 , 以内 部 聚 类 准 则 作 为 评 价 30指 标 。 从 K-means 算 法 框 架 可 以 看 出 , 该 算 法 需 要 不 断 地 进 行 样 本 分 类 调 整 , 不 断 地 计 算 调 整后 的 新 的 聚 类 中 心 , 因 此 当 数 据 量 非 常 大 时 , 算 法 的 时 间 开 销 是 非 常 大 的 。 所 以 需 要 对 算 法的 时 间 复 杂 度 进 行 分 析 、 改 进 , 提 高 算 法 应 用 范 围 。 在 文 献 31,32中 从 该 算 法 的 时 间 复 杂度 进 行 分 析 考 虑 , 通 过 一 定 的 相 似 性 准 则 来
41、去 掉 聚 类 中 心 的 侯 选 集 。 而 在 文 献 33中 , 使 用的 K-means 算 法 是 对 样 本 数 据 进 行 聚 类 , 无 论 是 初 始 点 的 选 择 还 是 一 次 迭 代 完 成 时 对 数 据的 调 整 , 都 是 建 立 在 随 机 选 取 的 样 本 数 据 的 基 础 之 上 , 这 样 可 以 提 高 算 法 的 收 敛 速 度 。模 式 识 别 K-Means 聚 类 -基 于 人 脸 数 据 实 现第 1 7 页 共 1 4 页五 附 录 核 心 算 法 的 主 要 源 代 码clcclearallticimg=imread(C:UsersA
42、dministratorDesktop1TestDatabase3.jpg);%读 入 像%img=rgb2gray(RGB);m,n=size(img);subplot(2,2,1),imshow(img);title(图 一 原 图 像)%subplot(2,2,2),imhist(img);title(图 二 原 图 像 的 灰 度 直 方 图)holdoff;img=double(img);fori=1:200c1(1)=25;c2(1)=125;c3(1)=200;%选 择 三 个 初 始 聚 类 中 心r=abs(img-c1(i);g=abs(img-c2(i);b=abs(im
43、g-c3(i);%计 算 各 像 素 灰 度 与 聚 类 中 心 的 距 离r_g=r-g;g_b=g-b;r_b=r-b;n_r=find(r_g0%寻 找 最 大 的 聚 类 中 心i=i+1;c1(i)=sum(img(n_r)/length(n_r);%将 所 有 低 灰 度 求 和 取 平 均 , 作 为 下 一 个 低灰 度 中 心c2(i)=sum(img(n_g)/length(n_g);%将 所 有 低 灰 度 求 和 取 平 均 , 作 为 下 一 个 中间 灰 度 中 心c3(i)=sum(img(n_b)/length(n_b);%将 所 有 低 灰 度 求 和 取 平
44、 均 , 作 为 下 一 个 高灰 度 中 心d1(i)=abs(c1(i)-c1(i-1);d2(i)=abs(c2(i)-c2(i-1);d3(i)=abs(c3(i)-c3(i-1);ifd1(i)Rtocsubplot(2,2,3),imshow(img);title(图 三 聚 类 后 的 图 像)%subplot(2,2,4),imhist(img);title(图 四 聚 类 后 的 图 像 直 方 图)functionT=CreateDatabase(TrainDatabasePath)TrainFiles=dir(TrainDatabasePath);Train_Number
45、=0;fori=1:size(TrainFiles,1)ifnot(strcmp(TrainFiles(i).name,.)|strcmp(TrainFiles(i).name,)|strcmp(TrainFiles(i).name,Thumbs.db)Train_Number=Train_Number+1;endendT=;fori=1:Train_Numberstr=int2str(i);str=strcat(,str,.jpg);str=strcat(TrainDatabasePath,str);img=imread(str);irowicol=size(img);temp=reshap
46、e(img,irow*icol,1);T=Ttemp;endfunctionm,A,Eigenfaces=EigenfaceCore(T)m=mean(T,2);Train_Number=size(T,2);A=;fori=1:Train_Numbertemp=double(T(:,i)-m;A=Atemp;end模 式 识 别 K-Means 聚 类 -基 于 人 脸 数 据 实 现第 1 9 页 共 1 4 页L=A*A;VD=eig(L);L_eig_vec=;fori=1:size(V,2)if(D(i,i)1)L_eig_vec=L_eig_vecV(:,i);endendEigen
47、faces=A*L_eig_vec;functionOutputName=Recognition(TestImage,m,A,Eigenfaces)ProjectedImages=;Train_Number=size(Eigenfaces,2);fori=1:Train_Numbertemp=Eigenfaces*A(:,i);ProjectedImages=ProjectedImagestemp;endInputImage=imread(TestImage);temp=InputImage(:,:,1);irowicol=size(temp);InImage=reshape(temp,iro
48、w*icol,1);Difference=double(InImage)-m;ProjectedTestImage=Eigenfaces*Difference;Euc_dist=;fori=1:Train_Numberq=ProjectedImages(:,i);temp=(norm(ProjectedTestImage-q)2;Euc_dist=Euc_disttemp;endEuc_dist_min,Recognized_index=min(Euc_dist);OutputName=strcat(int2str(Recognized_index),.jpg);clearallclccloseallTrainDatabasePath=uigetdir(D:ProgramFilesMATLABR2006awork,Selecttrainingdatabasepath);TestDatabasePath=uigetdir(D:ProgramFilesMATLABR2006awork,Selecttestdatabasepath);模 式 识 别 K-Means 聚 类 -基 于 人 脸 数 据 实 现第 2 0 页 共 1 4