是否有任何函数可以计算混合属性数据集之间的距离。例如,如何计算距离D = d1 - d2
?其中d1(100,TCP,1480)
和d2(200,ICMP,1650)
。
答案 0 :(得分:0)
如果您碰巧使用了可怕的KDDCup 1999数据集,请阅读以下答案: https://stackoverflow.com/a/22522174/1060350 - 数据集无用,因此不再使用它。
您可以尝试 Gower的距离等距离。但最有可能的是,他们不会对 netflow 数据有任何用处。您应该尝试合并域知识:当两个netflow类似时回答问题,然后将其放入等式中;而不是试图找到一个神奇地运作的方程式。
Gower或任何其他股票距离函数不起作用的原因之一是网络数据具有非常偏斜的分布,并且通常没有负值。它不是一个真正的欧几里德空间。
答案 1 :(得分:0)
在工程和科学中,我们使用无量纲数来描述情境,并使用相关的特征尺度来创建那些无量纲数。例如,如果您正在检查湍流流体流动,您可能会被明显众多的变量所迷惑。但湍流的流体流动主要受到动量与粘度作用的相互作用。可以证明,系统实际上只有几个关键的特征度量,并且相互作用可以表示为比率。该比率是无量纲的(称为雷诺数)。较大的值表示湍流,较低的值表示层流(平滑)流动。因此,这个数字是一种距离函数,表明我们与可动的平滑流动有多远。在相对论中,空间和时间的距离可以表示为单个距离,通过乘以速度(如果光)将时间差转换为长度,然后将该长度处理为3个空间维度,因为光速是特征速度这种情况的规模。
所以,你应该使用一些领域知识来做同样的事情。
但是,你也应该停下来问问自己 distance 是否是一个有意义的概念。距离是比例尺度的度量:我们可以有意义地说一个距离是另一个距离的两倍。如果您考虑的属性不是按比例尺度测量的,那么谈论距离是无稽之谈。我注意到您的数据包括“TCP”和“ICMP”,它们是无序的离散值。距离可能只是数据集的无意义概念。