【问题标题】:How to write a code for link prediction precision assessment in python?如何在python中编写用于链接预测精度评估的代码?
【发布时间】:2019-01-11 13:11:36
【问题描述】:

我正在使用 adam_adar 索引进行链接预测问题。数据集是一个网格网络(具有 1000 个链接的边缘列表)。我从观察到的数据集中随机选择了 80% (800) 的边缘。我需要从 preds 中选择最高的 200 个预测链接,如下所示,并计算精度比。我不知道下一步该做什么。我该怎么办..帮助!

import numpy as np
import networkx as nx


G = nx.read_edgelist('Grid.txt', create_using=nx.Graph(), nodetype=int)
preds = nx.adamic_adar_index(G);
for u, v, p in preds:
    '(%d, %d) -> %.8f' % (u, v, p)
    print(u, v, p)

【问题讨论】:

    标签: python precision networkx prediction


    【解决方案1】:

    我假设 u, v 是图的顶点,p 是精度。

    import numpy as np
    import networkx as nx
    import random
    
    G = nx.read_edgelist('Grid.txt', create_using=nx.Graph(), nodetype=int)
    preds = nx.adamic_adar_index(G)
    preds = random.sample(preds, int(len(preds)*0.8))
    preds = sorted(preds, key=lambda x: x[2], reverse=True)[:200]
    ratio = sum([t[2] for t in preds])/len(preds)
    print(ratio)
    

    【讨论】:

    • 谢谢。这应该很好。感谢您的帮助
    • 嗨@Chris,如果这个或任何答案解决了您的问题,请点击复选标记考虑accepting it
    【解决方案2】:
    import numpy as np
    import networkx as nx
    import random
    
    G = nx.read_edgelist('Grid.txt', create_using=nx.Graph(), nodetype=int)
    preds = list(nx.adamic_adar_index(G))
    preds = random.sample(preds, int(len(preds)*0.8))
    preds = sorted(preds, key=lambda x: x[2], reverse=True)[:200]
    ratio = sum([t[2] for t in preds])/len(preds)
    print(ratio)
    

    【讨论】:

    • 请不要只发布代码作为答案,还要解释您的代码的作用以及它如何解决问题的问题。带有解释的答案通常更有帮助,质量更好,并且更有可能吸引投票
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 2016-08-07
    • 1970-01-01
    相关资源
    最近更新 更多