首先,我是一个没有数据科学背景的程序员,所以我的统计工作知识非常有限。
我正在创建一个实体匹配工具来匹配跨内部数据集的记录。我想使用这些文档中描述的概率匹配技术*。我对该技术的工作原理以及如何应用它有很好的理解,除了使用期望最大化 (EM) 推导一致/不一致权重。
具体来说,我不清楚如何将我的记录对编码double[][]
为
我可用的 EM 实现是 Apache Common Math MultivariateNormalMixtureExpectationMaximization。
这是一个具体的例子:匹配公司记录。
一家公司有两个字段:name (string)
和country (enum)
,我想使用 EM 生成 m 和 u 概率权重。如何double[][]
为每个字段创建数据集以输入 EM?
在的情况下name
,它是一个字符串,所以会有一个近似的一致/不一致,使用一些字符串相似度方法(编辑距离,语音索引等,细节在这里不相关)
在 的情况下country
,我的数据被规范化,因此协议只会在完全匹配时出现。然而,某些国家的代表人数过多和过少。因此,代表人数不足的国家/地区的记录应该比代表人数过多的国家/地区的记录具有更高的权重。
double[]
内部均值/代表的值究竟是什么?- 应该有多少条目/列?
- 如何将记录编码到
double[]
?
* 描述使用 EM 的概率匹配技术的文档