t-SNE图matlab代码

今天开始存在博客上。再丢代码就不礼貌了

% 加载特征数据
load('VOCResnet50Train.mat');
[XX, Y] = creatSubTablezh(data_array, tree);
features=XX{21}(:,1:end-1);
labels = Y{21};

% 执行 t-SNE 降维
% 这里的参数可以根据你的需求进行调整
X_reduced = tsne(features, 'Algorithm', 'exact', 'NumDimensions', 2, 'Perplexity', 30);

% 获取唯一类别和对应的索引
unique_labels = unique(labels);
num_labels = length(unique_labels);

% 定义颜色映射
color_map = lines(num_labels);

% 创建图形并绘制每个类别的数据点
figure;
hold on;
for i = 1:num_labels
    idx = labels == unique_labels(i);
    scatter(X_reduced(idx, 1), X_reduced(idx, 2), 25, color_map(i, :), 'filled');
end
hold off;

% 添加标题和标签
title('t-SNE Visualization');
xlabel('t-SNE Dimension 1');
ylabel('t-SNE Dimension 2');

% 创建图例
legend(cellstr(num2str(unique_labels)), 'Location', 'best');

% 显示网格线
grid on;
 

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
t-SNE是一种非线性降维算法,用于将高维数据映射到低维空间(通常是2D或3D),以便于可视化和理解数据之间的关系。t-SNE使用一种类似于聚类的方法来寻找数据点之间的相似性,并将相似的数据点映射到彼此相邻的低维空间中,而不相似的数据点则被映射到远离彼此的空间中。t-SNE在可视化高维数据方面非常有效,并且已经被广泛应用于各种领域,包括自然语言处理、像处理、生物信息学等等。 在MATLAB中,你可以使用tsne函数来实现t-SNE降维。这个函数需要输入一个高维数据矩阵X和一个可选参数结构体options,其中包含了很多参数可以调整t-SNE算法的性能和结果。例如,你可以设置参数'NumDimensions'来指定要映射到的低维空间的维度,或者设置参数'Perplexity'来调整算法对相似性的敏感度。 以下是一个简单的MATLAB代码示例,演示如何使用tsne函数对高维数据进行降维: ```matlab % 生成一个随机的高维数据矩阵 X = rand(1000, 50); % 设置t-SNE参数 options = struct('NumDimensions', 2, 'Perplexity', 30); % 运行t-SNE算法 Y = tsne(X, options); % 可视化结果 scatter(Y(:,1), Y(:,2)); ``` 以上代码将生成一个1000x50的随机高维数据矩阵X,然后使用t-SNE将其降至2D空间,并将结果可视化。在实际应用中,你需要根据自己的数据和需求来调整参数,以获得最佳的降维效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值