使用我自己的指标(MATLAB)的变量层次结构?

Hierarchy of variables using my own metric (MATLAB)?

我有 7 个变量:A、B、C、D、E、F 和 G。我为比较 2 个变量和 returns 标量数的赋值设计了自己的度量。 2 个变量之间的度量越接近,这些变量就越相关。例如,如果我比较 A 和 B 得到 2.2,然后比较 A 和 C 得到 3.3,那么 A 和 B 比 A 和 C 更相似。

我想准备一个层次结构图,可能是像聚类图或树状图这样的东西,如果我分配所有相似性的组合,它们将映射出相似性。

我知道在 MATLAB 中这是通过链接函数完成的,但是 MATLAB 中的链接函数为我提供了用于比较的预制指标,例如 "euclidean"。我不需要这个,我只想输入我自己的指标并绘制出距离。

有没有人知道如何做到这一点?

Matlab pdist 函数允许您计算自定义成对距离度量,前提是您为计算距离的代码提供函数句柄。

语法只是

my_distance= pdist(pairs, @your_function)

其中 pairs 是包含您的对的数据矩阵,@your_function 是您定义的自定义距离度量函数的句柄。

有关自定义距离函数语法的具体要求,请参阅 pdist 的 Matlab 文档。

然后您可以使用在统计和机器学习工具箱的层次聚类例程中计算的距离,我假设您有,因为您提到了 linkage