• T-SNE可视化高维数据


    ​​​​​​​

    1. import numpy as np
    2. import matplotlib.pyplot as plt
    3. from sklearn.manifold import TSNE
    4. # 对样本进行预处理并画图
    5. def plot_embedding(data, label, class_num):
    6. """
    7. :param data:数据 (数据大小,特征),即二维。对于多维数据,压缩成二维即可
    8. :param label:标签
    9. :param title:类别数
    10. :return:图像
    11. """
    12. x_min, x_max = np.min(data, 0), np.max(data, 0)
    13. data = (data - x_min) / (x_max - x_min) # 对数据进行归一化处理
    14. fig = plt.figure() # 创建图形实例
    15. plt.subplot(111) # 创建子图
    16. # 遍历所有样本
    17. for i in range(class_num):
    18. plt.scatter(data[:, 0][label==i], data[:, 1][label==i],label=str(i))
    19. plt.xticks([]) # 去刻度
    20. plt.yticks([]) # 去刻度
    21. plt.legend(loc='upper left')
    22. # plt.title("标题", fontsize=14)
    23. return fig
    24. # 主函数,执行t-SNE降维
    25. def main(data=None, label=None,class_num=4):
    26. """
    27. :param data:数据 (数据大小,特征),即二维。对于多维数据,压缩成二维即可
    28. :param label:标签
    29. :param title:类别数
    30. """
    31. # data, label = np.random.random((200,100)),np.zeros((200))
    32. # label[50:100]=1
    33. # label[100:150] = 2
    34. # label[150:] = 3
    35. print('Starting compute t-SNE Embedding...')
    36. """
    37. n_components(默认值:2):嵌入空间的维度,需要降到几维写几维。
    38. init: 初始化方法,多采用 PCA 初始化
    39. perplexity(默认值:30):perplexity 与其他流形学习算法中使用的最近邻的数量有关。考虑选择 5 到 50 之间的值。
    40. n_iter(默认值:1000):优化的最大迭代次数。应至少为 250。
    41. random_state: 随机种子
    42. """
    43. ts = TSNE(n_components=2, init='pca', random_state=0)
    44. # t-SNE降维
    45. reslut = ts.fit_transform(data)
    46. # 调用函数,绘制图像
    47. fig = plot_embedding(reslut, label, class_num)
    48. # 显示图像
    49. plt.show()
    50. # 主函数
    51. if __name__ == '__main__':
    52. main()
  • 相关阅读:
    vba 保存word里面的图片_1分钟批量处理100张图片,有Word在
    图之最小生成树Kruskal算法详解(C语言版)
    liunx 用户组和用户 的增删改查
    C语言——文件
    python-json校验-jsonpath
    android shape矢量画三角形
    鲁大师特殊股息割韭菜
    学生会学习部部长竞选稿
    Git命令日常总结
    信号完整性(SI)电源完整性(PI)学习笔记(三十)电源分配网路(二)
  • 原文地址:https://blog.csdn.net/qq_45100200/article/details/125539062