t-SNE聚类可视化

t-SNE(t-distributed stochastic neighbor embedding)是一种用于降维和可视化高维数据的算法,通常用于聚类分析。t-SNE能够将高维数据点映射到一个低维空间中(通常是2D或3D),并且能够保留数据点之间的局部关系,同时尽量降低全局误差。因此,t-SNE可用于数据可视化,以便观察聚类结果

只要将你要可视化的网络层数据丢进plot_tsne()中

def plot_tsne(features, labels,k):
    '''
    features:(N*m) N*m大小特征,其中N代表有N个数据,每个数据m维
    label:(N) 有N个标签
    '''
    import pandas as pd
    import seaborn as sns

    tsne = TSNE(n_components=2, init='pca', perplexity=3,  n_iter=300, random_state=42, learning_rate='auto', n_jobs=7)
    class_num = len(np.unique(labels))  # 要分类的种类个数  eg:[0, 1, 2, 3]这个就是为4 
    tsne_features = tsne.fit_transform(features)  
    print('tsne_features的shape:', tsne_features.shape)

    df = pd.DataFrame()
    df["y"] = labels
    df["comp-1"] = tsne_features[:, 0]
    df["comp-2"] = tsne_features[:, 1]
    #df["comp-3"] = tsne_features[:, 2]如果要复现3维再添加并使n_components=3

    sns.scatterplot(x="comp-1", y="comp-2", hue=df.y.tolist(),
                    palette=sns.color_palette("hls", class_num),
                    data=df).set(title="T-SNE projection")
    plt.show()
    #一定要在show后才储存,否则保存的是空白图
    plt.savefig('./你的文件名%d.png'%(k), dpi=120)

#data,labels是你自己的数据和标签,
#output是某一层的输出,数据格式为[N, C, H, W],[C, H, W]或[C, W]
output = model(data)
for layer in output:
    k = k+1
    print(layer.shape)
    data = layer.view(batch-size, -1)
    data = data.detach().cpu().numpy()
    fig = plot_tsne(data, labels,k)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
t-SNE(t-Distributed Stochastic Neighbor Embedding)是一种非线性降维和可视化技术,常用于聚类分析。通过将高维数据映射为低维空间,t-SNE可以帮助我们更好地理解数据中的模式和结构。 tsne聚类分析的步骤如下: 1. 数据准备:首先,需要准备用于聚类分析的数据集。数据集可以是高维的,例如多个特征值的样本集。 2. 特征选择:如果数据集有多个特征,可以根据领域知识或特征选择算法选择最具代表性的特征。 3. 数据标准化:为了避免因为不同特征量级差异导致的偏差,通常需要对数据进行标准化处理。 4. t-SNE模型建立:将数据输入t-SNE模型进行降维。t-SNE算法通过保留数据点之间的相对距离来构建低维嵌入。 5. 参数选择:t-SNE有几个重要的参数,包括学习率、迭代次数等。根据数据集的大小和特征维度,选择合适的参数以确保结果可靠。 6. 可视化聚类结果:将降维后的低维数据点进行可视化,不同类别的数据点可以用不同的颜色或形状进行标识。 tsne聚类分析可以帮助我们发现数据集中存在的聚类结构,从而更好地了解数据的内在特点。通过可视化聚类结果,我们可以发现可能存在的异常点、重叠点、分类边界等,并根据需要进行相应优化和决策。 需要注意的是,t-SNE存在一些局限性,比如对于大规模数据集需要较长的计算时间,而且结果在不同运行中可能存在差异。因此,在进行tsne聚类分析时,需要在合适的参数设置和其他聚类算法(如K-means、层次聚类等)进行对比验证,以确保分析结果的准确性和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值