コード例 #1
0
ファイル: test_XNetwork.py プロジェクト: kwerenda/role-mining
 def test_cbc(self):
     n = XNetwork("datasets/test/test_cbc.edges", communities_file="datasets/test/test_cbc.communities")
     n.calculate_CBC()
     for node in [1, 2, 3, 7, 8, 9]:
         self.assertEquals(n.graph.node[node]['cbc'], 3)
     self.assertEquals(n.graph.node[5]['cbc'], 27)
     self.assertEquals(n.graph.node[6]['cbc'], 7)
     for node in n.graph.nodes():
         print node, n.graph.node[node]['cbc']
コード例 #2
0
ファイル: main.py プロジェクト: kwerenda/role-mining
def get_mediator_score_distribution():
    month = 12
    n = XNetwork("datasets/enron/timeslots/{:02d}-filtered2.edges".format(month),
                 communities_file="datasets/enron/communities/{:02d}-filtered2/k=3/directed_communities".format(month))
    nodes_with_cbc = n.calculate_CBC()

    cbc_by_node = {nid: cbc for nid, cbc in nodes_with_cbc}

    guys_tuples = Reader.read_lines("datasets/enron/enron_guys.txt")
    guys = {int(nid): email for nid, email in guys_tuples}
    guys_by_email = {email: int(nid) for nid, email in guys_tuples}

    all_cdc = cbc_by_node.values()
    P.hist(all_cdc)
    P.title("Enron - Mediator score distribution in month {}".format(month))
    P.xlabel("Mediator score")
    P.ylabel("Frequency")
    P.show()

    interesting_emails = [
        "*****@*****.**",
        "*****@*****.**",
        "*****@*****.**",
        "*****@*****.**",
        "*****@*****.**",
        "*****@*****.**",
        "*****@*****.**",
        "*****@*****.**",
        "*****@*****.**",
        "*****@*****.**",
        "*****@*****.**",
        "*****@*****.**",
        "*****@*****.**",
        "*****@*****.**",
        "*****@*****.**",
        "*****@*****.**",
        "*****@*****.**",
        "*****@*****.**",
        "*****@*****.**",
        "*****@*****.**",
        "*****@*****.**",
        "*****@*****.**",
        "*****@*****.**",
        "*****@*****.**",
        "*****@*****.**",
        "*****@*****.**",
        "*****@*****.**",
        "*****@*****.**",
        "*****@*****.**",
        "*****@*****.**",
        "*****@*****.**",
        "*****@*****.**",
        "*****@*****.**",
        "*****@*****.**",
        "*****@*****.**",
        "*****@*****.**",
        "*****@*****.**",
        "*****@*****.**",
        "*****@*****.**",
        "*****@*****.**",
        "*****@*****.**",
        "*****@*****.**",
        "*****@*****.**",
        "*****@*****.**",
        "*****@*****.**",
        "*****@*****.**",
        "*****@*****.**"
    ]
    for email in interesting_emails:
        try:
            print "{}\t{:.4f}".format(email, cbc_by_node[guys_by_email[email]])
        except KeyError:
            print "{}\tX".format(email)

    i = 0
    print "month", month
    print "-----------------------------------"
    print "rank\tnode_id\temail\tMS"
    print "-----------------------------------"
    for n, cbc in nodes_with_cbc:
        i += 1
        if guys[n] not in interesting_emails:
            print "{}\t{}\t{}\t{:.4f}".format(i, n, guys[n], cbc)
コード例 #3
0
ファイル: test_XNetwork.py プロジェクト: kwerenda/role-mining
 def test_multi(self):
     n = XNetwork("datasets/test/test_multi.edges", communities_file="datasets/test/test_cbc.communities")
     self.assertEquals(n.graph.size(), 14)
     n.calculate_CBC()
     for node in n.graph.nodes():
         print node, n.graph.node[node]['cbc']