当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python SciPy spatial.procrustes用法及代码示例


本文简要介绍 python 语言中 scipy.spatial.procrustes 的用法。

用法:

scipy.spatial.procrustes(data1, data2)#

Procrustes 分析,两个数据集的相似性测试。

每个输入矩阵都是一组点或向量(矩阵的行)。空间的维度是每个矩阵的列数。给定两个大小相同的矩阵,procrustes 将两者标准化:

  • 两组点都以原点为中心。

Procrustes ([1], [2]) 然后将最优变换应用于第二个矩阵(包括缩放/膨胀、旋转和反射)以最小化 或两个输入之间的点差平方和数据集。

此函数并非旨在处理具有不同数量数据点(行)的数据集。如果两个数据集具有不同的维度(不同的列数),只需将零列添加到两者中较小的列。

参数

data1 array_like

矩阵,n 行表示 k(列)空间中的点 data1 是参考数据,标准化后,来自 data2 的数据将被转换以适合 data1 中的模式(必须具有>1个唯一点)。

data2 array_like

k空间中要拟合的n行数据数据1.必须是相同的形状(numrows, numcols)作为 data1(必须有 >1 个唯一点)。

返回

mtx1 array_like

data1 的标准化版本。

mtx2 array_like

的方向数据2最适合的数据1.居中,但不一定\(tr(AA^{T}) = 1\) .

disparity 浮点数

如上定义。

抛出

ValueError

如果输入数组不是二维的。如果输入数组的形状不同。如果输入数组有零列或零行。

注意

  • 视差不应该取决于输入矩阵的顺序,但输出矩阵会,因为只有第一个输出矩阵保证被缩放为

  • 重复数据点通常是可以的,重复数据点会增加其对 procrustes 拟合的影响。

  • 视差缩放为每个输入矩阵的点数。

参考

[1]

Krzanowski, W. J. (2000)。 “多元分析原理”。

[2]

高尔,J. C. (1975)。 “Generalized procrustes analysis”。

例子

>>> import numpy as np
>>> from scipy.spatial import procrustes

矩阵ba 的旋转、移位、缩放和镜像版本:

>>> a = np.array([[1, 3], [1, 2], [1, 1], [2, 1]], 'd')
>>> b = np.array([[4, -2], [4, -4], [4, -6], [2, -6]], 'd')
>>> mtx1, mtx2, disparity = procrustes(a, b)
>>> round(disparity)
0.0

相关用法


注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.spatial.procrustes。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。