距离度量#
- class sklearn.metrics.DistanceMetric#
- 快速距离度量函数的统一接口。 - DistanceMetric类提供了一种计算样本之间成对距离的便捷方法。它支持各种距离度量,例如欧几里得距离、曼哈顿距离等等。- pairwise方法可用于计算输入数组中样本之间的成对距离。它返回一个距离矩阵,表示所有样本对之间的距离。- get_metric方法允许您使用其字符串标识符检索特定度量。- 示例 - >>> from sklearn.metrics import DistanceMetric >>> dist = DistanceMetric.get_metric('euclidean') >>> X = [[1, 2], [3, 4], [5, 6]] >>> Y = [[7, 8], [9, 10]] >>> dist.pairwise(X,Y) array([[7.81..., 10.63...] [5.65..., 8.48...] [1.41..., 4.24...]]) - 可用度量 - 以下是字符串度量标识符和相关的距离度量类的列表 - 用于实值向量空间的度量 - 标识符 - 类名 - 参数 - 距离函数 - “euclidean” - EuclideanDistance - sqrt(sum((x - y)^2))- “manhattan” - ManhattanDistance - sum(|x - y|)- “chebyshev” - ChebyshevDistance - max(|x - y|)- “minkowski” - MinkowskiDistance - p, w - sum(w * |x - y|^p)^(1/p)- “seuclidean” - SEuclideanDistance - V - sqrt(sum((x - y)^2 / V))- “mahalanobis” - 马氏距离 - V 或 VI - sqrt((x - y)' V^-1 (x - y))- 适用于二维向量空间的度量:请注意,haversine 距离度量需要数据采用 [纬度,经度] 的形式,输入和输出单位均为弧度。 - 标识符 - 类名 - 距离函数 - “haversine” - Haversine距离 - 2 arcsin(sqrt(sin^2(0.5*dx) + cos(x1)cos(x2)sin^2(0.5*dy)))- 适用于整数值向量空间的度量:虽然适用于整数值向量,但这些度量在实数值向量的情况下也适用。 - 标识符 - 类名 - 距离函数 - “hamming” - Hamming距离 - N_unequal(x, y) / N_tot- “canberra” - Canberra距离 - sum(|x - y| / (|x| + |y|))- “braycurtis” - BrayCurtis距离 - sum(|x - y|) / (sum(|x|) + sum(|y|))- 适用于布尔值向量空间的度量:任何非零项都被评估为“True”。在下述列表中,使用以下缩写: - N:维度数 
- NTT:两个值都为 True 的维度数 
- NTF:第一个值为 True,第二个值为 False 的维度数 
- NFT:第一个值为 False,第二个值为 True 的维度数 
- NFF:两个值都为 False 的维度数 
- NNEQ:不相等维度的数量,NNEQ = NTF + NFT 
- NNZ:非零维度的数量,NNZ = NTF + NFT + NTT 
 - 标识符 - 类名 - 距离函数 - “jaccard” - Jaccard距离 - NNEQ / NNZ - “matching” - Matching距离 - NNEQ / N - “dice” - Dice距离 - NNEQ / (NTT + NNZ) - “kulsinski” - Kulsinski距离 - (NNEQ + N - NTT) / (NNEQ + N) - “rogerstanimoto” - RogersTanimoto距离 - 2 * NNEQ / (N + NNEQ) - “russellrao” - RussellRao距离 - (N - NTT) / N - “sokalmichener” - SokalMichener距离 - 2 * NNEQ / (N + NNEQ) - “sokalsneath” - SokalSneath距离 - NNEQ / (NNEQ + 0.5 * NTT) - 用户自定义距离 - 标识符 - 类名 - 参数 - “pyfunc” - PyFunc距离 - func - 这里 - func是一个函数,它接受两个一维 NumPy 数组,并返回一个距离值。请注意,为了在 BallTree 中使用,距离必须是真正的度量:即必须满足以下性质- 非负性:d(x, y) >= 0 
- 同一性:当且仅当 x == y 时,d(x, y) = 0 
- 对称性:d(x, y) = d(y, x) 
- 三角不等式:d(x, y) + d(y, z) >= d(x, z) 
 - 由于调用 Python 函数涉及 Python 对象开销,因此速度会比较慢,但其缩放比例与其他距离相同。 - classmethod get_metric(metric, dtype=<class 'numpy.float64'>, **kwargs)#
- 根据字符串标识符获取给定的距离度量。 - 有关可用度量的列表,请参见 DistanceMetric 的文档字符串。 - 参数:
- metricstr 或类名
- 所需距离度量的字符串标识符或类名。有关可用度量的列表,请参见 - DistanceMetric类的文档。
- dtype{np.float32, np.float64}, default=np.float64
- 将应用度量的输入的数据类型。这会影响计算距离的精度。默认情况下,设置为 - np.float64。
- **kwargs
- 将传递给请求的度量的其他关键字参数。这些参数可用于自定义特定度量的行为。 
 
- 返回:
- metric_obj请求的度量实例
- 请求的距离度量类的实例。 
 
 
 
