GCN卷积使用TSEN可视化embedding

最近做推荐的时候想可视化自己的代码嵌入,便于观察数据分布。于是乎做了一个最简单的tsen降维嵌入可视化。代码如下:

import numpy as np
from sklearn.neighbors import KernelDensity
from matplotlib.colors import LinearSegmentedColormap
from sklearn.manifold import TSNE
import numpy as np
import matplotlib.pyplot as plt

out = self.model.forward_graphcl(data)  # gcn out你的卷积生成嵌入
            out = out.cpu().detach().numpy()  # 将张量从GPU复制到CPU并转换为NumPy数组
            # 加载你的嵌入数据
            embedded_data = out # 你的嵌入数据,应该是一个 Numpy 数组
            # 运行 t-SNE 降维
            tsne = TSNE(n_components=2, perplexity=30, random_state=0)
            embedded_data_tsne = tsne.fit_transform(embedded_data)
            # 运行 KDE 估计密度
            kde = KernelDensity(bandwidth=0.2, kernel='gaussian')
            kde.fit(embedded_data_tsne)
            density_estimation = np.exp(kde.score_samples(embedded_data_tsne))

            # 创建颜色映射,将密度映射到颜色
            cmap = LinearSegmentedColormap.from_list('density_cmap', ['lightblue', 'darkblue'], N=256)

            # 可视化 t-SNE 降维结果和密度估计
            plt.figure(figsize=(10, 8))
            plt.scatter(embedded_data_tsne[:, 0], embedded_data_tsne[:, 1], c=density_estimation, cmap=cmap)
            plt.title('t-SNE Visualization with Density Estimation')
            plt.xlabel('Dimension 1')
            plt.ylabel('Dimension 2')
            plt.colorbar(label='Density')
            plt.show()
            plt.savefig('xxx.png')

以上代码是最简单的嵌入可视化,会有伴随密度的颜色变化。后续看情况出其他的可视化方法,复制即可用!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值