go-tsne 项目使用教程
1. 项目目录结构及介绍
go-tsne/
├── examples/
│ ├── mnist2d/
│ └── mnist3d/
├── tsne/
│ ├── tsne.go
│ └── tsne_test.go
├── LICENSE
├── README.md
└── go.mod
目录结构说明
- examples/: 包含两个示例目录
mnist2d
和mnist3d
,分别用于展示二维和三维的 t-SNE 优化过程。 - tsne/: 包含
tsne.go
文件,这是 t-SNE 算法的核心实现文件。tsne_test.go
是测试文件。 - LICENSE: 项目的许可证文件,采用 BSD-3-Clause 许可证。
- README.md: 项目的介绍文件,包含项目的基本信息和使用说明。
- go.mod: Go 模块文件,定义了项目的依赖关系。
2. 项目启动文件介绍
项目的启动文件位于 examples/
目录下,具体有两个示例:
mnist2d
- 启动文件:
examples/mnist2d/main.go
- 功能: 生成二维的 t-SNE 嵌入,并在优化过程中生成多个图表。
- 启动方式:
- 进入
examples/mnist2d
目录。 - 执行
go build
命令生成可执行文件。 - 运行生成的可执行文件。
- 进入
mnist3d
- 启动文件:
examples/mnist3d/main.go
- 功能: 生成三维的 t-SNE 嵌入,并在优化过程中实时展示三维图表。
- 启动方式:
- 进入
examples/mnist3d
目录。 - 执行
go build
命令生成可执行文件。 - 运行生成的可执行文件。
- 进入
3. 项目的配置文件介绍
项目本身没有专门的配置文件,但可以通过代码中的参数进行配置。以下是 tsne.go
中创建 TSNE 对象时的参数说明:
t := tsne.NewTSNE(2, 300, 100, 300, true)
参数说明
- Number of output dimensions: 输出维度数量,通常为 2 或 3。
- Perplexity: 困惑度,控制 t-SNE 算法的平滑度。
- Learning rate: 学习率,控制优化过程中的步长。
- Max number of iterations: 最大迭代次数。
- Verbosity: 是否启用详细输出。
通过调整这些参数,可以控制 t-SNE 算法的运行效果。