littlebot
Published on 2025-04-09 / 2 Visits
0

【源码】基于C++的tSNE高维数据降维项目

项目简介

本项目实现了流行的t-SNE算法(van der Maaten & Hinton [2008]),用于将高维数据进行可视化降维。通过保留数据点之间的相似性信息,把高维数据映射到低维空间(通常为二维或三维),便于数据的观察与分析。

项目的主要特性和功能

  • 实现t-SNE算法核心,涵盖计算吸引力、梯度计算和迭代优化。
  • 支持从文件读取图像和标签数据,也能将结果数据和默认配置信息写入文件。
  • 包含距离计算、数据标准化和调试等辅助函数。
  • 实现VP树加速最近邻搜索,还有配置参数管理、BH树实现等辅助组件。

安装使用步骤

假设用户已经下载了本项目的源码文件,可按以下步骤操作: 1. 从 http://yann.lecun.com/exdb/mnist/ 下载 train-images-idx3-ubytetrain-labels-idx1-ubyte 文件,并将其放在与 tsne 可执行文件相同的文件夹中。 2. 解压源码文件,在终端进入项目目录。 3. 执行 ./tsne SAMPLES THREADS 命令。例如,./tsne 15000 4 会对大小为 15000 的样本运行 t-SNE 算法,并使用 4 个线程;使用 ./tsne 60000 可处理所有图像,或使用任何无效值(如 ./tsne 0)。 4. 首次执行会创建一个默认配置文件,之后可通过修改该文件中的值进行调试,确保格式为 "VAR = VALUE"(具体细节可参考 /include/tsne/util.hpp)。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】