sklearn画t-SNE图

import numpy as np
import matplotlib.pyplot as plt
import json
from sklearn import manifold

def draw_tsne(emb_filename):
    model = json.load(open(emb_filename,'r')) 
    X = np.array(model['data'])
    y = np.array(model['label'])



    '''t-SNE'''
    tsne = manifold.TSNE(n_components=2,method='exact')  #降成2维度
    print(X.shape)
    X = X[:1750,:,:]##读取其中的前1750个向量
    y = y[:1750]##读取其中的前1750个标签
    X = X.reshape(X.shape[0],X.shape[2])
    print(X.shape)
    X_tsne = tsne.fit_transform(X)
    print(X.shape)
    print(X_tsne.shape)
    print(y.shape)
    print("Org data dimension is {}.Embedded data dimension is {}".format(X.shape[-1], X_tsne.shape[-1]))

    '''嵌入空间可视化'''
    x_min, x_max = X_tsne.min(0), X_tsne.max(0)
    X_norm = (X_tsne - x_min) / (x_max - x_min)  # 归一化
    plt.figure(figsize=(8, 8))
    for i in range(X_norm.shape[0]):
        plt.text(X_norm[i, 0], X_norm[i, 1], '*', color=plt.cm.Set1(y[i]), 
                 fontdict={'weight': 'bold', 'size': 18})
    plt.xticks([])
    plt.yticks([])
    plt.show()
    plt.savefig('1.png')
emb_filename = ("/data/test_data.json")#读取json文件
draw_tsne(emb_filename)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值