【问题标题】:Gowers distance (Python Gower package) matrix shows negative values for distance when data has negative valuesGowers 距离(Python Gower 包)矩阵在数据具有负值时显示距离的负值
【发布时间】:2022-06-28 05:00:00
【问题描述】:

我在 python 中使用 Gower 包 - https://pypi.org/project/gower/

当我计算负值的高尔斯距离时,例如最低温度 我得到一个负距离矩阵

负值表示什么?这仍然是 0 和 1 之间的归一化距离吗?我可以像使用正值一样使用这个距离的绝对值吗?

代码

import numpy as np
import pandas as pd
import gower

Xd = pd.DataFrame({'mintemp':[-20.0, -15.3, -45.4, -0.5, -45]})
X = np.asarray(Xd)
print(gower.gower_topn(Xd.iloc[0:1,:], Xd, n=5))
print(gower.gower_matrix(X))

【问题讨论】:

    标签: python distance-matrix


    【解决方案1】:

    查看了源代码 - 我认为在计算数值变量的范围/最大值时存在错误。如果最大值为负,则范围/最大值将为负,计算的距离也是如此(因为数值变量通过将其除以最大值进行归一化 -> 距离 = abs((xi-xj)/max) * (max/range) .

    所以是的,只需取 Gower 矩阵的绝对值,并以与正值相同的方式对其进行解释。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-08
      • 1970-01-01
      • 2014-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-06
      • 1970-01-01
      相关资源
      最近更新 更多