面向流形学习与降维实验的 Python 工作台
t-SNE · UMAP · SUDE · 神经元形态分析
在同一份数据上比较低维表示,观察类别分布、局部邻域与形态结构。适合学习算法、调参观察和准备实验汇报。
| 实验路线 | 比较内容 | 从这里开始 |
|---|---|---|
| 01 · 经典降维 | t-SNE 与 UMAP 并排散点图 | main.py · 配置 |
| 02 · 神经元形态 | 原始 3D、PCA、t-SNE、UMAP;绘制父子节点连线 | 批量绘图 |
| 03 · SUDE 对比 | PCA 3D 投影、t-SNE、UMAP、SUDE 四宫格 | 运行入口 · 指南 |
Note
当前仓库以实验源码和文档为主。神经元 SWC 数据、历史结果图、PDF 和压缩包未随仓库提供。PCA 3D 图是高维数据的投影;散点图用于观察,不能单独证明某种算法更优。
先用 Iris 跑通流程,再换成你的研究数据。 Iris 随 scikit-learn 提供,运行时无需下载数据。
在 PyCharm Terminal 或终端执行:
git clone https://github.com/LZ-creator-master/embedding-work.git
cd embedding-work
python -m pip install numpy pandas matplotlib "scikit-learn>=1.5" umap-learn ucimlrepo建议使用独立虚拟环境,并确认终端的 Python 与 PyCharm 项目解释器一致。以上为基础实验的依赖起点,尚未提供锁定版本的环境文件。
DATASET_NAME = 'iris_test'
DATASET_LABEL = 'Iris'仓库原配置选择的是 pbmc3k;首次体验请明确改成上面的 Iris 配置。
python main.py程序加载数据,计算 t-SNE 和 UMAP,显示对比图,并在当前工作目录保存 embedding_compare.png。在 PyCharm 中也可以右键 main.py → Run。
下一步: 换数据集与调参 · 运行 SUDE · 准备神经元数据
根目录通过 config.py 的 DATASET_NAME 选择数据,注册表在 datasets/init.py。
| 配置名称 | 当前实际加载的数据 | 获取方式 |
|---|---|---|
iris_test |
Iris | scikit-learn 内置 |
breast_cancer |
Breast Cancer | scikit-learn 内置 |
mfeat |
Digits 替代数据,并非原始 Mfeat | scikit-learn 内置 |
wine / dermatology |
Wine / Dermatology | UCI,需网络 |
spambase / dry_bean |
Spambase / Dry Bean | UCI,需网络 |
mnist / fmnist |
MNIST / Fashion-MNIST | OpenML,需下载或已有缓存 |
pbmc3k |
PBMC3k 单细胞数据 | Scanpy,需额外依赖和数据 |
PBMC 标签说明: 当前代码用 K-means 生成 8 个演示簇,不是已验证的细胞类型注释。样本数和特征数以实际加载结果为准。
自定义数据: SUDE 模块提供本地 CSV 入口;基础模块需要新增并注册数据加载器。查看操作方法 →
| 目标 | 修改位置 | 参数 |
|---|---|---|
| 切换基础实验数据 | 根目录 config.py |
DATASET_NAME、DATASET_LABEL |
| 调整 t-SNE | 对应实验的 config.py |
TSNE_PERPLEXITY、TSNE_MAX_ITER |
| 调整 UMAP | 对应实验的 config.py |
UMAP_N_NEIGHBORS、UMAP_MIN_DIST |
| 调整 SUDE | sude_work/config.py |
SUDE_N_NEIGHBORS、SUDE_INIT、SUDE_MAX_ITER |
| 导入 CSV | sude_work/config.py |
CSV_PATH、CSV_LABEL_COL |
比较算法时,请记录数据预处理、参数、随机种子和环境版本。当前基础入口没有统一标准化或自动抽样步骤;SUDE 对比入口会截取前 3000 个样本。
| 文档 | 你可以找到什么 |
|---|---|
| 实验指南 | 环境、数据导入、神经元实验、调参与已知限制 |
| 项目地图 | 每个目录和主要脚本的用途 |
| SUDE 对比指南 | 安装、四宫格输出与 CSV 输入要求 |
| 源码与验证说明 | 发布范围、验证状态和上游来源 |
为什么提示找不到 umap 或 sude?
UMAP 的安装包名是 umap-learn,导入名是 umap。SUDE 需要额外安装;参见 SUDE 指南。安装命令应在运行项目的同一 Python 环境中执行。
为什么切换数据后标题没变,或者找不到生成的图?
基础实验需同时更新 DATASET_NAME 与 DATASET_LABEL。输出路径相对于当前工作目录;在 PyCharm 的运行配置中检查 Working directory。
为什么大数据集运行很慢?
基础 main.py 不会自动截取样本。先用 Iris 验证流程,再明确安排抽样、预处理和实验规模。UMAP 首次运行还可能包含 JIT 编译开销。
这些脚本是否已经全部验证可运行?
首次上传时 27 个 Python 文件通过语法解析检查,但尚未完成全部数据集、依赖版本和实验流程的端到端验证。具体限制见 实验指南。
欢迎通过 Issues 反馈问题,请附上运行入口、数据集、参数、依赖版本和完整错误信息。
- scikit-learn — PCA、t-SNE 等基础实现。
- UMAP — UMAP 实现与文档。
- SUDE 原始仓库 · SUDE Python 包 — 上游实现。
- Peng et al., Sampling-enabled scalable manifold learning unveils the discriminative cluster structure of high-dimensional data. 论文。
本仓库尚未声明统一开源许可证;第三方代码保留其原始作者声明。引用算法或复用上游实现时,请查看对应项目的引用与许可说明。
Embedding Work · Explore structure, compare embeddings.