如何在基于文本的关系数据中执行链接预测

数据挖掘 Python 统计数据 可能性 图形模型
2022-02-24 13:04:37

我需要确定来自两个不同数据集的两列与一个匹配列之间是否存在链接,其中;

Dataset1: bipartite:  (M, DS)  
M    G 
m23  ds3 
m23  ds67  
m54  ds325  
...  ...    

Dataset2: tripartite: (M, G, DG)  
M    G    DG  
m23  g6   dg32
m23  g8   dg1 
m54  g32  dg65
...  ...   ...  

这两个数据集共有一列(即M),元素之间的关系如下所示:

M  ----affects----> G  
M  ----causes-----> DS  
DG ----affects----> M  

主要目标:通过公共列(M )计算间接相关列(例如DGDS )之间可能存在的可能链接/边缘的概率

因此,对于给定的 DS 条目列表,如何找到所选 DS 与所有其他 DG 之间存在链路/边缘的概率

DS <---- ----> DG

如果DS;(ds3, ds67) 被选中,输出应该是这样的:

element1 - element2 - 表示存在直接关系或链接的概率/统计值。

ds3 - dg32  - 100% (common M value)
ds3 - dg1  - 100%  (common M value)
ds3 - dg65 - 43.66%
---
ds67 - dg32 - 100% (common M value)
ds67 - dg1  - 100% (common M value)
ds67 - dg65 - 55.12%

我正在尝试用 Java 编写代码,但基于 Python 的解决方案也可以工作。

对不起,我对图论不太熟悉,非常感谢一些描述性的解决方案。谢谢。

1个回答

您正在描述构建概率图形模型 (PGM)

构建 PGM 最常用的 Python 库是pgmpy