Multicore-TSNE

文章目录

TSNE

  • t-Distributed Stochastic Neighbor Embedding (t-SNE) 是一种高维数据的降维方法,由Laurens van der Maaten和Geoffrey Hinton于2008年提出,通常用于数据可视化。其大致原理是在低维(通常是2D或3D)空间中保留高维空间中的距离关系

使用scikit-learn库

使用Multicore-TSNE库

  • Multicore-TSNE的项目地址:
    https://github.com/DmitryUlyanov/Multicore-TSNE

  • 优点:

    • 使用方法与与scikit-learn库基本一致
    • 计算速度相对于scikit-learn库可大幅提升
  • 缺点:

    • 功能相比scikit-learn库大幅减少
    • 默认仅实现了基于欧式距离的降维计算

安装方法

  • 方法1:直接pip安装
bash 复制代码
pip install MulticoreTSNE
  • 方法2:源码编译安装
bash 复制代码
git clone https://github.com/DmitryUlyanov/Multicore-TSNE.git
cd Multicore-TSNE/
pip install .

基本使用方法

  • Multicore-TSNE库的基本使用方法非常简单,与scikit-learn库基本一致:
python3 复制代码
from MulticoreTSNE import MulticoreTSNE as TSNE

tsne = TSNE(n_jobs=4)
Y = tsne.fit_transform(X)

采用不同的距离度量

  • Multicore-TSNE默认仅实现了基于欧式距离的降维计算,然而,很多时候,我们希望采用其他距离度量。幸运的是,根据 https://github.com/DmitryUlyanov/Multicore-TSNE/issues/49 中的回答,已有大佬基于Multicore-TSNE库进行了二次开发,其中可以采用的距离度量包括:
    • Euclidean distance
    • Squared euclidean distance
    • Angular distance
    • Cosine distance (not a real metric)
    • Precomputed distance marix
  • 安装方式:源码编译安装
bash 复制代码
git clone https://github.com/asanakoy/Multicore-TSNE.git
cd Multicore-TSNE/
pip install .
  • 以手动计算特征向量之间的余弦距离为例:
python3 复制代码
from MulticoreTSNE import MulticoreTSNE as TSNE
from sklearn.metrics.pairwise import cosine_similarity

# 计算余弦相似度矩阵
similarity_matrix = cosine_similarity(feats.cpu().numpy())

# 将余弦相似度转换为距离矩阵
distance_matrix = 1 - similarity_matrix

tsne = TSNE(n_jobs=4, metric="precomputed", random_state=42)
X_tsne = tsne.fit_transform(distance_matrix)

其他资料

相关推荐
这张生成的图像能检测吗37 分钟前
(论文速读)LogSAD:无需训练的结构异常与逻辑异常统一检测
人工智能·机器学习·计算机视觉·大模型·多模态·异常检测
Rocky Ding*4 小时前
深入浅出完整解析FLUX.2、Seedream(即梦)、Z-image、Qwen-Image、GLM-Image核心基础知识
论文阅读·人工智能·深度学习·机器学习·aigc·扩散模型·ai-native
Ivanqhz4 小时前
MLA、DSA、CSA、HCA
人工智能·算法·机器学习
RockHopper20255 小时前
数字机制与未来企业运行模式(概要版)
人工智能·机器学习·智能体·agent 工程
CAE虚拟与现实6 小时前
MLP多层感知机(Multilayer Perceptron)
人工智能·机器学习·mlp
薛定e的猫咪8 小时前
(AISTATS 2023)BaCaDI 逐章阅读
人工智能·深度学习·算法·机器学习
accept 99%9 小时前
拆开Jev 的原理和本地跑法 Jev科普(二)
人工智能·机器学习
Ivanqhz9 小时前
MQA、GQA、稀疏/滑动窗口注意力及混合范式
人工智能·算法·机器学习
DevOps老兵9 小时前
AIOps实战03:两代AIOps,传统机器学习与大模型该怎么配合
人工智能·机器学习·大模型·llm·aiops·老计聊技术
Highcharts.js10 小时前
AI智能时代,数据美学更加重要:如何搭建交互可视化仪表盘
数据可视化·仪表盘·highcharts·bi设计·ui设计美学·图表开发技巧·智能图表