Files
d1kt/KMEANS_QUICKSTART.md

7.2 KiB
Raw Permalink Blame History

K-Means 算法演示页面 - 快速开始

🎯 功能概览

这是一个完整的 K-Means 聚类算法可视化演示工具,集成在您的打字练习网站中。

核心功能

功能 说明
🎨 可视化画布 800x600 像素的交互式画布
🎲 随机生成点 可生成 1-200 个随机数据点
🖱️ 交互操作 左键添加点/质心,右键清空
🎯 K值调节 支持 1-10 个聚类中心
📊 算法演示 逐步展示 K-Means 算法过程
📏 距离可视化 实时显示点到质心的距离
📑 坐标显示 可选显示所有点的坐标
💾 Excel支持 导入/导出数据到 Excel 文件

🚀 快速开始

步骤 1: 访问页面

步骤 2: 基础操作

  1. 设置参数

    K值: 3 (想要分成几个簇)
    点的数量: 50
    
  2. 生成数据

    • 点击 "生成随机点" 按钮
  3. 设置质心

    • 在画布上点击 3 次与K值相同
    • 每个质心会用不同颜色标识
  4. 运行算法

    • 点击 "执行一步" 按钮
    • 观察算法逐步执行过程
  5. 保存结果

    • 点击 "导出Excel" 保存数据

📖 使用示例

示例 1: 基础聚类

目标: 将 50 个点分成 3 个簇

操作:
1. K值 = 3
2. 点的数量 = 50
3. 生成随机点
4. 点击画布 3 次设置质心
5. 持续点击"执行一步"直到完成

示例 2: 手动创建数据

目标: 手动创建特定分布的数据

操作:
1. K值 = 2
2. 在画布左侧点击 2 次设置质心
3. 在画布不同区域手动点击添加数据点
4. 勾选"显示坐标"查看具体位置
5. 执行算法查看聚类结果

示例 3: 导入已有数据

目标: 使用之前保存的数据

操作:
1. 点击"导入Excel"
2. 选择之前导出的 Excel 文件
3. 数据自动加载到画布
4. 继续执行算法或修改数据

🎨 界面说明

┌─────────────────────────────────────────────────┐
│  控制面板                                        │
│  [点数] [生成] [K值] [☑显示坐标] [执行] [清空]  │
│  [导出Excel] [导入Excel]                        │
├─────────────────────────────────────────────────┤
│                                                 │
│                  画布区域                        │
│              (800 x 600 像素)                   │
│                                                 │
│  ● 灰色点 = 未分配的数据点                      │
│  ● 彩色点 = 已分配到簇的点                      │
│  ◉ 大圆圈 = 质心点 (标记为 C1, C2, ...)         │
│  ─── 线段 = 距离连线(显示数值)                │
│                                                 │
├─────────────────────────────────────────────────┤
│  操作说明                                        │
│  • 左键: 添加点/质心                            │
│  • 右键: 清空画布                               │
│  • 当前迭代: 0                                  │
│  • 状态: 等待开始                               │
└─────────────────────────────────────────────────┘

🔍 算法过程详解

阶段 1: 初始化

  • 设置 K 个质心点
  • 生成或添加数据点

阶段 2: 分配簇(点击"执行一步"

对于每个数据点:
  1. 计算到所有质心的距离 (显示线段和数值)
  2. 找出最短距离 (高亮显示为绿色)
  3. 将点分配给最近的质心 (点变成质心颜色)
  4. 清除距离线,处理下一个点

阶段 3: 更新质心

当所有点处理完毕:
  1. 计算每个簇的几何中心
  2. 移动质心到新的位置
  3. 检查是否收敛

阶段 4: 迭代或结束

如果质心位置改变:
  → 返回阶段 2继续下一轮迭代

如果质心位置不变:
  → 算法收敛,显示"聚类完成"

📁 Excel 文件格式

导出的 Excel 文件包含以下列:

列名 说明 示例
类型 数据点或质心 数据点 / 质心
索引 编号 1, 2, 3...
X坐标 横坐标值 123.45
Y坐标 纵坐标值 234.56
所属簇/颜色 簇编号或颜色代码 簇1 / #FF6B6B

⌨️ 键盘快捷键

操作 快捷键
清空画布 右键点击画布
添加点 左键点击画布

💡 使用技巧

技巧 1: 观察收敛过程

  • 每次点击"执行一步"只处理一个点
  • 可以清楚看到每个点如何选择最近的质心
  • 适合教学演示

技巧 2: 测试不同 K 值

相同数据不同K值的效果:
K=2: 粗分类
K=3: 中等细分
K=5: 细分类

技巧 3: 保存实验数据

  • 每次实验后导出 Excel
  • 可以在不同场景下重复使用相同数据
  • 便于比较不同参数的效果

技巧 4: 质心初始化的影响

  • 尝试在不同位置设置初始质心
  • 观察对最终聚类结果的影响
  • 理解 K-Means++ 的重要性

⚠️ 注意事项

  1. 质心数量: 必须设置完整的 K 个质心才能开始算法
  2. 算法运行中: 无法修改参数或添加新点
  3. 右键操作: 会清空整个画布,请谨慎使用
  4. 浏览器兼容: 需要支持 Canvas API 的现代浏览器
  5. 性能考虑: 建议点的数量不超过 200 个

🐛 常见问题

Q: 为什么点击"执行一步"没反应?

检查清单:
☐ 是否已设置了 K 个质心?
☐ 质心数量是否等于设置的 K 值?
☐ 是否有数据点?

Q: 如何重新开始?

方法 1: 点击"清空画布"按钮
方法 2: 右键点击画布
然后重新设置质心和数据点

Q: Excel 导入失败?

检查文件格式:
☐ 文件扩展名是 .xlsx 或 .xls
☐ 包含必需的列类型、X坐标、Y坐标
☐ 数值格式正确

Q: 算法什么时候停止?

停止条件:
• 各簇成员不再变化
• 质心位置稳定
• 显示"聚类完成"提示

🎓 教学场景

场景 1: 课堂演示

时间: 15-20分钟
内容:
1. 介绍 K-Means 基本概念 (5分钟)
2. 现场演示算法过程 (10分钟)
3. 讨论初始化和收敛 (5分钟)

场景 2: 实验课

时间: 45-60分钟
任务:
1. 不同 K 值的效果对比
2. 初始质心位置的影响
3. 记录迭代次数和结果
4. 提交实验报告导出Excel

场景 3: 自学练习

学习路径:
1. 阅读 KMEANS_README.md
2. 完成基础示例操作
3. 尝试不同参数组合
4. 理解算法原理

📚 相关文档

  • KMEANS_README.md - 详细使用说明
  • KMEANS_DEPLOYMENT.md - 部署和配置指南

🔗 访问链接

开发环境: http://localhost:3001/kmeans

立即体验 K-Means 算法的魅力! 🚀