TSNE/分析两个数据的分布

本文介绍了一种使用sklearn库中的TSNE函数对复杂数据集进行降维和可视化的技术。通过将高维数据转换为二维或三维空间,TSNE帮助我们理解数据的结构和模式。文章详细展示了如何加载数据、应用TSNE并绘制结果,为读者提供了清晰的步骤和代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

使用sklearn.manifold的函数TSNE

#coding=utf-8

import numpy as np
import picklefrom sklearn.manifold import TSNE
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt 
#数据集装载函数
def load_data(fname):
    with open(fname, 'rb') as fr: 
        ret = pickle.load(fr)
    return ret 

def plot(data1, label1, data2, label2):
    X_pca1 = TSNE().fit_transform(data1)
    X_pca2 = TSNE().fit_transform(data2)
    plt.figure(figsize=(10, 5)) 
    ax1 = plt.subplot(121)
    ax1.scatter(X_pca1[:, 0], X_pca1[:, 1], c=label1)
    ax1.set_title("data1 train data")
    plt.savefig('a1.png')
    #plt.show()
    ax2 = plt.subplot(122)
    ax2.scatter(X_pca2[:, 0], X_pca2[:, 1], c=label2)
    ax2.set_title("data2 train data")
    plt.savefig('b1.png')
    #plt.show()

def main():
    #装载训练数据
    
    train_data1, train_label1 = load_data('/home/hd_1T/haiou/class/machinelearning/data/data1/test_data.pkl')
    train_data2, train_label2 = load_data('/home/hd_1T/haiou/class/machinelearning/data/data2/test_data.pkl')
    plot(train_data1.reshape((train_data1.shape[0], train_data1.shape[1]*train_data1.shape[2])), train_label1,train_data2.reshape((train_data2.shape[0], train_data2.shape[1]*train_data1.shape[2])), train_label2)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值