python - 为什么数据在 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])
有谁知道是什么导致数据特征看起来像一条线或圆而不是“块”?(我认为来自同一类的数据特征应该聚集在一起?)
有什么我可以解决的吗?还是结果正常?
供您参考,我的模型的测试准确度约为 0.69,这似乎告诉我我的模型运行良好。
解决方案
推荐阅读
- ecmascript-6 - 通过 ECMAScript 6 中的装饰器向基于类的查找表添加方法
- excel - Autofilter VBA,我如何检查条件是否不存在?
- windows - Windows CMD 批处理脚本 FFmpeg
- xamarin - 在 Apple Silicon M1 Mac 上运行的 iOS 应用程序的默认应用程序中打开文件
- html - 如何让禁用选项在选择 html 时变为粗体和黑色?
- python - 如何将此for循环转换为while循环(Python)?
- windows - 为什么使用“ls -a”时不断弹出错误?
- bigcommerce - 为什么产品集合页面 bigcommerce 上的一张缩略图比其他缩略图大?
- jinja2 - 将查询结果存储在变量中(jinja)
- java - 无法为事务打开 JDBC 连接;嵌套异常是 java.sql.SQLTransientConnectionException