Estoy jugando con networkx (biblioteca de gráficos en python) y encontré documentación que decía que el algoritmo de PageRank tiene en cuenta los pesos de borde al anotar, pero me preguntaba si los pesos de borde más grandes eran mejores o los de menor peso mejor?¿Cómo afectan los bordes pesados al PageRank en networkx?
16
A
Respuesta
23
En breve, los pesos grandes son mejores para los nodos entrantes.
PageRank trabaja en un gráfico ponderado dirigido. Si la página A tiene un enlace a la página B, entonces la puntuación para B aumenta, es decir, mientras más entrada tenga la página B (nodo), mayor será su puntaje.
Wikipedia article on PageRank para más detalles.
Editar: hagamos un experimento. Crea un gráfico dirigido con 3 nodos y dos bordes dirigidos con pesos iguales.
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}
Ahora, aumentar el peso de la arista (A, C):
D['A']['C']['weight']=1
print nx.pagerank(D)
>> {'A': 0.259740259292235, 'C': 0.40692640737443164, 'B': 0.3333333333333333}
Como se ve, el nodo C tiene la puntuación más alta al aumentar el peso del borde entrante.
Cuestiones relacionadas
- 1. Textrank: pagerank complementario para la extracción de frases usando networkx
- 2. ¿Cómo solo mantener nodos en networkx-graph con 2+ bordes salientes o 0 bordes salientes?
- 3. Visualización de gráficos a gran escala (nodos de 50K, bordes pesados de 100M)
- 4. ¿Cómo restringir ciertas rutas en los gráficos de NetworkX?
- 5. Calculando SimRank usando NetworkX?
- 6. Python, networkx
- 7. networkx draw_networkx_edges capstyle
- 8. ¿Cómo se elimina un nodo en networkx?
- 9. Obteniendo PageRank
- 10. Implementando PageRank usando MapReduce
- 11. borde Cambio en multigrafo NetworkX
- 12. Los archivos Struts 2 y Dojo son demasiado pesados y afectan el rendimiento del sitio. ¿Alguna solución?
- 13. ¿Qué problemas de escalabilidad están asociados con NetworkX?
- 14. nodos de etiqueta externos con superposición mínima con otros nodos/bordes en networkx
- 15. cómo quitar los bordes en JInternalFrame?
- 16. Minimizar bordes cruzados en un gráfico
- 17. ¿Cómo afectan los valores NULL al rendimiento en una búsqueda en la base de datos?
- 18. Calcular tiempo de golpeo entre 2 nodos usando NetworkX
- 19. ¿Cómo afectan los valores Gravity a PopupWindow.showAtLocation() en Android
- 20. Animaciones suaves para diseños pesados
- 21. ¿Cómo afectan las restricciones de DataTable de ADO.NET al rendimiento?
- 22. ¿Los comentarios afectan el rendimiento de Perl?
- 23. Chrome/WebKit creando una barra sólida al usar bordes, bordes y bordes superiores e inferiores
- 24. ¿Cómo elimino los bordes de una UITableView?
- 25. ¿Qué tan pesados son los monitores de Java?
- 26. ¿Los modificadores de acceso afectan el rendimiento?
- 27. ¿Los comentarios afectan el tiempo de compilación?
- 28. Colisión AABB deslizante: atascarse en los bordes
- 29. ¿Cuáles son algunas de las alternativas del pagerank?
- 30. ¿Cómo afectan los ivars @synthesized automáticos al tamaño * real * de (MyClass)?
Awesome thank you, Max! – Lostsoul
No estoy seguro de si "PageRank funciona en un gráfico ponderado dirigido" es correcto. Tengo entendido que normalmente los bordes utilizados en el PageRank no son ponderados, hay un borde entre los nodos o no lo hay. Esto tiene sentido porque no puede tener medio enlace entre dos páginas. Aunque parece que el método de pagerank en networkx permite ponderar los bordes, como pueden estar utilizando [TextRank] (http://digital.library.unt.edu/ark:/67531/metadc30962/m2/1/high_res_d /Mihalcea-2004-TextRank-Bringing_Order_into_Texts.pdf) (sección 2.2), que se basa en PageRank. – jksnw
¿Por qué asignarías un enlace con más peso? ¿Depende de la implementación descubrir cómo ciertos enlaces valen más? (¿Como enlaces en el cuerpo versus enlaces en los comentarios?) – Xeoncross