电气设备epsilon

问题描述 投票:1回答:1

我正在尝试使用ELKI DBSCAN聚类单词向量。我希望使用余弦距离来聚类300维的单词向量。数据集的大小为19,000个单词(19000 * 300大小矩阵)。这些是使用gensim word2vec计算的字向量,列表输出保存为CSV

下面是我在UI中传递的命令

KDDCLIApplication -dbc.in“D:\ w2v \ vectors.csv”-parser.colsep'“,” - 'algorithm clustering.DBSCAN -algorithm.distancefunction CosineDistanceFunction -dbscan.epsilon 1.02 -dbscan.minpts 5 -vis.window.single

我玩了epsilon值,同时我尝试了3个值0.8,0.9,1.0。对于0.8和0.9 - 我得到了“找到的邻居很少.Epsilon可能太小了。”而对于1.0 - 我得到“发现了很多邻居.Epsilon可能太大了。”

我在这做错了什么?我对ELKI很新,所以任何帮助都表示赞赏

cluster-analysis dbscan elki
1个回答
1
投票

在300维度,您将看到维度的诅咒。

与流行的说法相反,维数的诅咒确实存在于余弦中(因为余弦在归一化向量上等同于欧几里得,它最好比欧几里德“更好”一维)。通常使余弦应用仍然有用的是内在维度远小于文本上的表示维度(即,当你的词汇可能有数千个单词时,只有少数出现在两个文档的交集中)。

单词向量通常不稀疏,因此您的内在维度可能非常高,您将看到维度的诅咒。

因此,看到余弦距离集中并不奇怪,然后您可能需要选择具有几位精度的阈值。

由于显而易见的原因,1.0是余弦距离的无意义阈值。最大余弦距离为1.0!所以,是的,你需要尝试0.95和0.99,例如。

您可以使用KNNDistancesSampler来帮助您选择DBSCAN参数,或者您可以使用例如OPTICS(这将允许您查找具有不同阈值的群集,而不仅仅是一个阈值)。

请注意,单词向量是针对特定场景进行训练的:可替代性。到目前为止,它们并不像普遍基于“君王+女人=女王”的例子那样具有普遍性。试试“国王+男孩”,这通常也会回归“女王”(或“国王”)......结果主要是因为国王的最近邻居是“女王”和“国王”。由于训练数据,“资本”示例同样过度拟合。它受过新闻文章的培训,通常以“资本,国家,等等”开头。如果省略“大写”,如果省略“country”,则几乎可以获得完全相同的上下文。所以word2vec模型得知它们是“可替代的”。只要首都也是美国主要报纸的所在地(例如柏林,巴黎),这种方法就有效。对于主要报告中心位于加拿大,美国或澳大利亚等国家,例如在多伦多,纽约,悉尼,它经常会失败。它并没有真正证明向量已经学会了资本是什么。它首先起作用的原因是过度拟合新闻训练数据。

© www.soinside.com 2019 - 2024. All rights reserved.