es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Networkx – Obtener la probabilidad p(k) de la red.

He ploteado el histograma de network (dataframe), con el recuento de conexiones de nodos ‘k’, de la siguiente manera:

import seaborn as sns

parámetro = 'k'
sns.histplot(network[parámetro])

Imagen del histograma

Pero ahora necesito crear un grafo modular aleatorio utilizando la distribución de grupo anterior con:

from networkx.generators.community import random_partition_graph

random_partition_graph(sizes, p_in, p_out, seed=None, directed=False)

Y, en lugar de recuentos, necesito el valor p(k), que se pasará como p_in.

p_in (float)
probabilidad de aristas dentro de los grupos

¿Cómo puedo obtener p(k) a partir de mi network?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para obtener p(k) del dataframe network, podemos seguir estos pasos:

    1. Agrupar el dataframe por la columna k.
    2. Contar el número de ocurrencias de cada valor de k.
    3. Dividir cada conteo por el número total de nodos en la red para obtener la probabilidad p(k).

    Aquí está el código para implementar estos pasos:

    import pandas as pd
    
    # Paso 1: Agrupar por k
    grouped = network.groupby('k')
    
    # Paso 2: Contar las ocurrencias de cada k
    counts = grouped.size()
    
    # Paso 3: Calcular p(k)
    N = network.shape[0]  # número total de nodos
    pk = counts / N
    

    La variable resultante pk será una Serie de Pandas donde el índice es k y los valores son las correspondientes probabilidades p(k). Ahora podemos pasar esta Serie como argumento p_in a random_partition_graph para generar un grafo aleatorio modular con la distribución deseada de conexiones entre nodos.

Comments are closed.