我如何想象n维功能?(How do I visualize n-dimensional featur

2019-10-24 07:18发布

我有两个矩阵AB 。 的大小A是200 * 1000双(这里:1000代表1000层不同的功能)。 矩阵A属于组1,其中我使用ones(200,1)作为标签载体。 的大小B也是200 * 1000双(这里:1000也代表1000层不同的功能)。 矩阵B属于组2,其中,我使用-1*ones(200,1)作为标签载体。

我的问题是我怎么想象矩阵AB ,这样我可以明确区分他们基于给定的群体?

Answer 1:

我在矩阵假设每个样品AB通过在任一矩阵的行确定。 如果我理解正确的话,你想画一个系列1000维向量,这是不可能的。 我们不能想象身体之外的东西三个维度。

因此,你做什么,我的建议是进行降维 ,以减少你的数据使每个输入减少到2个或3个维度。 一旦你降低你的数据,你可以正常绘制出来,并分配不同的标记,以每个点,这取决于他们属于哪个组。

如果你想在MATLAB来实现这一点,使用主成分分析 ,特别是pca在MATLAB的功能,如果你给他们重新投影到较低维计算的残差和重新投影的样本。 我假设你有统计工具箱......如果你不这样做,那么对不起,这是不行的。

具体地,给出你的矩阵AB ,你可以这样做:

[coeffA, scoreA] = pca(A);
[coeffB, scoreB] = pca(B);
numDimensions = 2;
scoreAred = scoreA(:,1:numDimensions);
scoreBred = scoreB(:,1:numDimensions);

的第二输出pca让你重新投影值,所以你只需要确定通过提取第一你要多少尺寸N列,其中N是你想要的尺寸所需数量。

我选择了2,现在,我们可以看到它看起来像在3个维度之后。 一旦我们有我们需要的2个维度,它只是一个阴谋的事情:

plot(scoreAred(:,1), scoreAred(:,2), 'rx', scoreBred(:,1), scoreBred(:,2), 'bo');

这将产生一个图,其中从基体中的样品A与红色杂交而从基质中的样品B与蓝色圆圈。

这里是给完全随机的数据样本运行:

rng(123); %// Set seed for reproducibility
A = rand(200,1000); B = rand(200,1000); %// Generate random data

%// Code as before
[coeffA, scoreA] = pca(A);
[coeffB, scoreB] = pca(B);
numDimensions = 2;
scoreAred = scoreA(:,1:numDimensions);
scoreBred = scoreB(:,1:numDimensions);

%// Plot the data
plot(scoreAred(:,1), scoreAred(:,2), 'rx', scoreBred(:,1), scoreBred(:,2), 'bo');

我们得到这样的:

如果你想三个方面,简单地改变numDimensions = 3 ,然后更改剧情代码使用plot3

plot3(scoreAred(:,1), scoreAred(:,2), scoreAred(:,3), 'rx', scoreBred(:,1), scoreBred(:,2), scoreBred(:,3), 'bo');
grid;

这些变化,这就是我们得到:



文章来源: How do I visualize n-dimensional features?