文本数据的欧几里德与余弦

Euclidean vs Cosine for text data

如果我使用tf-idf特征表示(或者只是文档长度归一化),那么欧几里德距离和(1-余弦相似度)基本相同吗?我读过的所有教科书和其他论坛、讨论都说余弦相似度对文本效果更好...

我写了一些基本代码来测试这个,发现它们确实是可比较的,不是完全相同的浮点值,但它看起来像一个缩放版本。下面给出了简单演示文本数据的相似性结果。正文2号是大行50字左右,其余都是10字左右的小行。

余弦相似度: 0.0, 0.2967, 0.203, 0.2058

欧氏距离: 0.0, 0.285, 0.2407, 0.2421

注意:如果这个问题更适合交叉验证或数据科学,请告诉我。

如果你的数据归一化为单位长度,那么很容易证明

Euclidean(A,B) = 2 - Cos(A,B)

这确实成立 if ||A||=||B||=1。它在一般情况下不成立,它取决于您执行规范化步骤的确切顺序。 IE。如果您先将文档标准化为单位长度,然后执行 IDF 加权,那么它将不成立...

不幸的是,人们使用各种变体,包括完全不同版本的 IDF 规范化。