Używam networkx (biblioteka wykresów w pythonie) i znalazłem dokumentację mówiącą, że algorytm PageRank uwzględnia wagę krawędzi podczas oceniania, ale zastanawiałem się, czy większe grubości krawędzi były lepsze czy niższe?Jak ważone krawędzie wpływają na PageRank w siecix?
16
A
Odpowiedz
23
Krótko mówiąc, duże wagi są lepsze dla węzłów przychodzących.
PageRank działa na ukierunkowanym wykresie ważonym. Jeżeli strona A ma link do strony B, to wynik dla B rośnie, tj. Im więcej danych wejściowych ma strona B (węzeł), tym wyższy jest jej wynik.
Wikipedia article on PageRank w celu uzyskania dalszych szczegółów.
Edytuj: zróbmy eksperyment. Utwórz ukierunkowany wykres z 3 węzłami i dwoma skierowanymi krawędziami o równej wadze.
import networkx as nx
D=nx.DiGraph()
D.add_weighted_edges_from([('A','B',0.5),('A','C',0.5)])
print nx.pagerank(D)
>> {'A': 0.259740259292235, 'C': 0.3701298703538825, 'B': 0.3701298703538825}
Teraz zwiększyć masę (A, C) krawędzi:
D['A']['C']['weight']=1
print nx.pagerank(D)
>> {'A': 0.259740259292235, 'C': 0.40692640737443164, 'B': 0.3333333333333333}
Jak widać, węzeł C dostał wyższą ocenę ze wzrostem wagi krawędzi przychodzącej.
Niesamowite dzięki, Max! – Lostsoul
Nie jestem pewien, czy "PageRank działa na ukierunkowanym wykresie ważonym" jest poprawny. Rozumiem, że zwykle krawędzie stosowane w PageRank nie są ważone, istnieje albo krawędź między węzłami, albo nie ma. Ma to sens, ponieważ nie można mieć połowy łącza między dwiema stronami. Chociaż wygląda na to, że metoda pagerank w networkx pozwala na ważenie krawędzi, tak jak mogą używać [TextRank] (http://digital.library.unt.edu/ark:/67531/metadc30962/m2/1/high_res_d /Mihalcea-2004-TextRank-Bringing_Order_into_Texts.pdf) (sekcja 2.2), który opiera się na PageRank. – jksnw
Dlaczego przypisujesz link większej wadze? Czy od wdrożenia zależy, w jaki sposób niektóre linki są warte więcej? (Jak linki w ciele a linki w komentarzach?) – Xeoncross