math - 确定一些向量有何不同

标签 math matlab vector classification

我想区分数据向量以找到相似的向量。例如:

A=[4,5,6,7,8];
B=[4,5,6,6,8];
C=[4,5,6,7,7];

D=[1,2,3,9,9];
E=[1,2,3,9,8];

在前面的示例中,我想区分 A、B、C 向量彼此相似(不相同),而 D、E 彼此相似。结果应该是这样的:A、B、C 相似,D、E 相似,但是 A、B、C 组与 D、E 组不相似。 matlab可以做到吗? 我在考虑使用一些分类算法或 Kmeans、ROC 等。但我不确定哪一个是最好的。

有什么建议吗?提前致谢

最佳答案

我最喜欢的处理这类事情的方法之一是 agglomerate clustering .

首先,将所有向量连接成一个矩阵,其中每一行都是一个单独的向量。这使得此类方法更易于使用:

F = [A; B; C; D; E];

然后可以找到链接:

Z = linkage(F, 'ward', 'euclidean');

这可以用以下方法绘制:

dendrogram(Z);

enter image description here

这显示了一棵树,其中底部的每个叶子都是原始向量之一。分支的长度显示相似点和不同点。

如您所见,1、2 和 3 显示为非常接近,4 和 5 也是如此。这甚至给出了接近程度的度量,并表明向量 1 和 3 被认为比向量 2 和 2 更接近3(从某种意义上说,7 比 8 更接近 8,而不是 6 比 7)。

关于math - 确定一些向量有何不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5064861/

相关文章:

mysql - MATLAB 7.0与MYSQL的连接

performance - 为什么我的 Matlab for 循环代码比我的矢量化版本更快

c++ - 将 vector 幅度减小特定长度的有效方法?

javascript - javascript求幂中的数学函数

algorithm - 计算最小值和最大值之间的点的最快方法

java - MathML 和 Java

matlab - 旋转Matlab Stereo Camera Calibrator给定的世界坐标系

math - 找到优化的旋转

matlab - FitSCVM - 多个类,28x28 0 到 1 之间的数字矩阵

r - 矩阵和向量形式的数据点数量