首页 > 解决方案 > 为什么数据在 t-SNE 可视化中显示为线/圆而不是“球”?

问题描述

我目前正在使用 t-SNE 来可视化数据特征。首先,我从我的模型中提取了特征向量。

import torch.nn as nn

class Net(nn.Module):
    def __init__(self):
        super(Net, self).__init__()
        self.relu = nn.ReLU()
        self.pool = nn.MaxPool2d((1, 2), stride=2)
        self.normalize1 = nn.BatchNorm2d(16)
        self.normalize2 = nn.BatchNorm2d(32)

        self.conv1 = nn.Conv2d(6,16, (1, 6))
        self.conv2 = nn.Conv2d(16,32, (1, 6))

        self.fc1 = nn.Linear(32 * 1 * 20, 70)     
        self.fc2 = nn.Linear(70, 30)
        self.fc3 = nn.Linear(30, 19)
        self.drop1 = nn.Dropout2d(p=0.25) 

    def forward(self, x):
        x = self.conv1(x)
        x = self.normalize1(x)
        x = self.relu(x)
        x = self.conv2(x)
        x = self.normalize2(x)
        x = self.relu(x)
        x = x.view(x.size()[0], -1)
        feature1 = x
        x = self.fc1(x)
        x = self.relu(x)
        x = self.drop1(x)
        x = self.fc2(x)
        x = self.relu(x)
        x = self.fc3(x)

        return feature1

使用 TSNE 绘制:

tsne = TSNE(n_components=2, perplexity=30, learning_rate=200, n_iter=1000).fit_transform(features_1[::2])

结果如下所示: t-SNE Perplexity=30, Learning rate=200, n_iter=1000 的结果

有谁知道是什么导致数据特征看起来像一条线或圆而不是“块”?(我认为来自同一类的数据特征应该聚集在一起?)

有什么我可以解决的吗?还是结果正常?

供您参考,我的模型的测试准确度约为 0.69,这似乎告诉我我的模型运行良好。

标签: pythondata-sciencedata-visualizationdata-analysisfeature-extraction

解决方案


推荐阅读