orient_edges.py 文件源码

python
阅读 18 收藏 0 点赞 0 评论 0

项目:pyBN 作者: ncullen93 项目源码 文件源码
def orient_edges_gs2(edge_dict, Mb, data, alpha):
    """
    Similar algorithm as above, but slightly modified for speed?
    Need to test.
    """
    d_edge_dict = dict([(rv,[]) for rv in edge_dict])
    for X in edge_dict.keys():
        for Y in edge_dict[X]:
            nxy = set(edge_dict[X]) - set(edge_dict[Y]) - {Y}
            for Z in nxy:
                if Y not in d_edge_dict[X]:
                    d_edge_dict[X].append(Y) # SET Y -> X
                B = min(set(Mb[Y]) - {X} - {Z},set(Mb[Z]) - {X} - {Y})
                for i in range(len(B)):
                    for S in itertools.combinations(B,i):
                        cols = (Y,Z,X) + tuple(S)
                        pval = mi_test(data[:,cols])
                        if pval < alpha and X in d_edge_dict[Y]: # Y IS independent of Z given S+X
                            d_edge_dict[Y].remove(X)
                if X in d_edge_dict[Y]:
                    break
    return d_edge_dict
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号