如何将tsne()应用于MATLAB表格数据?

时间:2018-11-26 16:30:44

标签: matlab machine-learning feature-extraction feature-selection

我在MATLAB中有一张33000 x 1975的表格,显然在进行任何进一步的分析之前,都需要降低尺寸。特征是1975列,行是数据的实例。我尝试在MATLAB表上使用tsne()函数,但似乎tsne()仅适用于数字数组。问题是有一种方法可以在我的MATLAB表上应用tsne。该表包含数字和字符串数据类型,因此在我的情况下,table2array()无法将表转换为数字数组。 此外,从MATHWORKS文档(以应用于fisheriris数据集为例)看来,tsne()将要素列作为函数参数。因此,我需要将预测变量与共振变量分开,这不成问题。但是,最初,关于如何进一步使用tsne似乎有些困惑。在这方面的任何建议将不胜感激。

1 个答案:

答案 0 :(得分:1)

您可能可以使用examples来获取所需的数据。这是一个根据table indexing using {}改编而成的简单示例:

load fisheriris
% Make a table where the first variable is the species name,
% and the other variables are the measurements
data = table(species, meas(:,1), meas(:,2), meas(:,3), meas(:,4))
% Use {} indexing on 'data' to extract a numeric matrix, then
% call 'tsne' on that
Y = tsne(data{:, 2:end});
% plot as per example.
gscatter(Y(:,1),Y(:,2),data.species)