私はあなたがnetworkx上の注意を誤解だと思いますドキュメンテーション。しかし、私はそれが良いと言われるかもしれないと認めなければなりません。
のPageRankアルゴリズムは、有向グラフのために設計されたが、この アルゴリズムは、入力されたグラフが向けられているかどうかを確認しないと 二辺に 有向グラフにおいて、各配向エッジを変換することにより、無向グラフに実行されます。
PageRankアルゴリズムは、有向グラフ用に設計されていますが、無向グラフ用に使用することができます。そうするために、各エッジを2つの有向エッジ(イン/アウト)で置き換えることによって、無向ネットワークを有向ネットワークに変換します。
したがって、有向グラフを指定すると、有向グラフに従ってPageRankが計算されます。
import networkx as nx
# Undirected Network
D = nx.Graph()
D.add_weighted_edges_from([('A', 'B', 0.5),('A', 'C', 1)])
# Default max number of iterations failed to converge for me
print nx.pagerank(D, max_iter=200)
# Outputs:
{'A': 0.48648648872844047, 'C': 0.32567567418103965, 'B': 0.18783783709051982}
をしたり、すでに有向ネットワークを持っている場合は、無向1に変換します:だからどちらか無向ネットワークで始まる
import networkx as nx
# Directed Network
D = nx.DiGraph()
D.add_weighted_edges_from([('A', 'B', 0.5), ('A', 'C', 1)])
# Convert to undirected
G = D.to_undirected()
# Default max number of iterations failed to converge for me
print nx.pagerank(G, max_iter=200)
# Outputs:
{'A': 0.48648648872844047, 'C': 0.32567567418103965, 'B': 0.18783783709051982}
私の間違い。解決していただきありがとうございます。 – root