算法:数据二值化

时间:2010-02-19 18:47:43

标签: algorithm encoding data-mining hamming-code

我有一个包含单词word_i和权重weight[i,j]的庞大数据集, 其中权重是单词之间的“连接强度”。

我想对这些数据进行二值化,但我想知道是否有任何现有的算法来制作每个单词的二进制代码,使得单词代码之间的汉明距离与此权重相关。 / p>

加了:
我正在研究的问题是我想尝试教一个神经网络或SVM来建立单词之间的关联。这就是我决定将数据二值化的原因。 不要问为什么我不想使用马尔可夫模型或仅仅使用图表,我已经尝试过它们并希望将它们与神经网络进行比较。

所以,

  1. 我希望我的NN在给定的单词“a”上返回其最接近的关联或任何设定的单词及其概率,

  2. 我试图将二值化并将“ab”作为输入和重量作为首选答案,这很糟糕,

  3. 我正在考虑让阈值(对于权重)再改变1位。该阈值越小,您需要的位越多,

  4. 我有一个情况:a-> b w1; b-> w2; w1>> w2,所以方向很重要。

1 个答案:

答案 0 :(得分:1)

你可以做的是使用具有固定长度拓扑的自组织映射(SOM),例如N位,单词,以便例如如果N = 8,则SOM中的每个单元恰好有8个邻居(其中一个位被翻转的那些)。现在,如果您有K [字典]单词,您可以将每个[字典]单词编码为0..1之间的实数向量,以便第i个单词将第i个元素设置为1,将其他单词设置为0.然后您可以计算两个任意向量a1 ... aK和b1 ... bK之间的“距离”通过求和

 i,j : ai * bj * distance(ai, bj)

,它为您提供运行SOM算法的距离度量。当SOM稳定后,您的指标中彼此接近的[字典]单词在地图的拓扑中彼此接近,从中您可以轻松地将编码作为[二进制]单词。

请注意,地图必须包含比单词更多的单元格,即2 ** N> ķ。

这个答案当然假设有自组织地图的背景。看到 http://en.wikipedia.org/wiki/Self-organizing_map