TSNE 降维 可视化脚本

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


def plot_embedding(data, label):
    _min, _max = np.min(data, 0), np.max(data, 0)
    data = (data - _min) / (_max - _min)

    for i in range(data.shape[0]):
        plt.text(data[i, 0], data[i, 1], str(label[i]),
                 color=plt.cm.tab10(label[i]),
                 fontdict={'weight': 'bold', 'size': 9})
    plt.show()


feature = "xxx"  # numpy.ndarray, 如(1000,256)
y_test = ""  # numpy.ndarray, 如(1000,)

tsne = TSNE(n_components=2, init='pca', random_state=0)
tsne_feature = tsne.fit_transform(feature)

plot_embedding(tsne_feature, y_test)

### Python 可视化方法库示例 #### 使用 PCA 进行可视化 主成分分析 (PCA) 是一种线性技术,可以有效地减少特征数量的同时保留尽可能多的信息。 ```python from sklearn.decomposition import PCA import matplotlib.pyplot as plt import numpy as np pca = PCA(n_components=2) X_pca = pca.fit_transform(X) plt.figure(figsize=(8, 6)) plt.scatter(X_pca[:, 0], X_pca[:, 1], c=y, cmap='viridis') plt.xlabel('First Principal Component') plt.ylabel('Second Principal Component') plt.colorbar() plt.title('PCA of Dataset') plt.show() ``` 此代码片段展示了如何利用 `sklearn` 中的 `PCA` 类来实现数据集的二投影,并使用 `matplotlib` 将其绘制成散点图[^1]。 #### t-SNE 的应用实例 t分布随机邻域嵌入(t-SNE)是一种非线性的算法,在保持局部结构方面表现出色。 ```python from sklearn.manifold import TSNE tsne = TSNE(n_components=2, perplexity=30, n_iter=3000) X_tsne = tsne.fit_transform(X) plt.figure(figsize=(8, 6)) plt.scatter(X_tsne[:, 0], X_tsne[:, 1], c=y, cmap='viridis') plt.colorbar() plt.title('t-SNE visualization of dataset') plt.show() ``` 这段脚本说明了怎样借助 `TSNE` 函数完成相似的任务——即把原始数据映射至更低度的空间内以便更好地观察样本之间的关系. #### UMAP 实现高效与绘制 均匀流形近似和投影(UMAP),作为一种相对较新的工具,不仅速度快而且能很好地保存全局和局部的数据特性。 ```python import umap.umap_ as umap reducer = umap.UMAP(random_state=42) embedding = reducer.fit_transform(X) plt.figure(figsize=(8, 6)) plt.scatter(embedding[:, 0], embedding[:, 1], c=y, cmap='Spectral', s=5) plt.set_title('UMAP projection of the Iris dataset', pad=20) plt.show() ``` 上述例子解释了采用 `umap` 库来进行快速而精确的操作以及随后的结果呈现过程. 对于获取特定于样本的两嵌入以供可视化的目的而言,以上提到的各种方法都可以满足需求;只需调整参数设置即可适应不同类型的输入数据[^4].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

理心炼丹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值