Ranking
PageRank
介绍基于Pagerank算法的图节点的排名。
from IPython.display import SVG
import numpy as np
from sknetwork.data import karate_club, painters, movie_actor
from sknetwork.ranking import PageRank
from sknetwork.visualization import svg_graph, svg_digraph, svg_bigraph
图
graph = karate_club(metadata=True)
adjacency = graph.adjacency
position = graph.position
# PageRank
pagerank = PageRank()
scores = pagerank.fit_transform(adjacency)
scores
输出:array([0.09683432, 0.05270896, 0.05700985, 0.03583685, 0.02204314,
0.02922028, 0.02922028, 0.02453786, 0.02983147, 0.01434684,
0.02204314, 0.00959139, 0.01467138, 0.0296205 , 0.01460911,
0.01460911, 0.01682548, 0.01460544, 0.01460911, 0.01968808,
0.01460911, 0.01460544, 0.01460911, 0.03156737, 0.02103777,
0.02096294, 0.01505913, 0.02566555, 0.01957931, 0.02631547,
0.02465682, 0.0372688 , 0.07127235, 0.10032824])
image = svg_graph(adjacency, position, scores=np.log(scores))
SVG(image)
# personalized PageRank
seeds = {1: 1, 10: 1}
scores = pagerank.fit_transform(adjacency, seeds)
scores
image = svg_graph(adjacency, position, scores=np.log(scores), seeds=seeds)
SVG(image)
有向图
graph = painters(metadata=True)
adjacency = graph.adjacency
names = graph.names
position = graph.position
# PageRank
pagerank = PageRank()
scores = pagerank.fit_transform(adjacency)
scores
image = svg_digraph(adjacency, position, scores=np.log(scores), names=names)
SVG(image)
# personalized PageRank
cezanne = 11
seed = {cezanne: 1}
scores = pagerank.fit_transform(adjacency, seeds)
scores
image = svg_digraph(adjacency, position, names, scores=np.log(scores + 1e-6), seeds=seeds)
SVG(image)
二部图
graph = movie_actor(metadata=True)
biadjacency = graph.biadjacency
names_row = graph.names_row
names_col = graph.names_col
pagerank = PageRank()
drive = 3
aviator = 9
seeds_row={drive: 1, aviator: 1}
pagerank.fit(biadjacency, seeds_row)
scores_row = pagerank.scores_row_
scores_col = pagerank.scores_col_
image = svg_bigraph(biadjacency, names_row, names_col,
scores_row=np.log(scores_row), scores_col=np.log(scores_col), seeds_row=seeds_row)
SVG(image)
Katz 中心
介绍基于Katz中心的图节点的排名,每个节点不同长度的路径数量的加权平均值。
from IPython.display import SVG
import numpy as np
from sknetwork.data import karate_club, painters, movie_actor
from sknetwork.ranking import Katz
from sknetwork.visualization import svg_graph, svg_digraph, svg_bigraph
图
graph = karate_club(metadata=True)
adjacency = graph.adjacency
position = graph.position
katz = Katz()
scores = katz.fit_transform(adjacency)
scores
image = svg_graph(adjacency, position, scores=scores)
SVG(image)
有向图
graph = painters(metadata=True)
adjacency = graph.adjacency
names = graph.names
position = graph.position
katz = Katz()
scores = katz.fit_transform(adjacency)
names, scores
二部图
graph = movie_actor(metadata=True)
biadjacency = graph.biadjacency
names_row = graph.names_row
names_col = graph.names_col
katz = Katz()
katz.fit(biadjacency)
scores_row = katz.scores_row_
scores_col = katz.scores_col_
image = svg_bigraph(
biadjacency, names_row, names_col, scores_row=scores_row, scores_col=scores_col)
SVG(image)