Как применить tsne () к табличным данным MATLAB? - PullRequest
0 голосов
/ 26 ноября 2018

У меня есть таблица 33000 x 1975 в MATLAB, очевидно, требующая уменьшения размерности, прежде чем я сделаю дальнейший анализ.Объектами являются столбцы 1975 года, а строки являются экземплярами данных.Я попытался использовать функцию tsne () для таблицы MATLAB, но кажется, что tsne () работает только с числовыми массивами.Дело в том, что есть способ применить tsne к моей таблице MATLAB.Таблица состоит как из числовых, так и из строковых типов данных, поэтому table2array () в моем случае не работает для преобразования таблицы в числовой массив.Более того, как видно из документации MATHWORKS применительно к набору данных fisheriris, tsne () принимает столбцы функции в качестве аргумента функции.Итак, мне нужно отделить предикторы от резонансов, что не должно быть проблемой.Но поначалу кажется странным, что я могу продолжать использовать TSNE.Любые предложения на этот счет будут высоко оценены.

1 Ответ

0 голосов
/ 27 ноября 2018

Вы, вероятно, можете использовать индексирование table, используя {}, чтобы получить нужные данные.Вот простой пример, адаптированный со справочной страницы tsne :

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...