Mostrando entradas con la etiqueta red de dos modos. Mostrar todas las entradas
Mostrando entradas con la etiqueta red de dos modos. Mostrar todas las entradas

jueves, 4 de junio de 2020

Cómo pasar de redes de un modo a dos modos en Gephi desde un archivo de Pajek

Conversión de redes de 2 modos a redes de 1 modo

Electric Archaeology

Ahora hay un complemento para Gephi que se convertirá de redes multimodales a redes de 1 modo: https://gephi.org/plugins/multimode-networks-transformations/




Supongamos que le interesan los patrones de comunicación entre individuos que son miembros de múltiples organizaciones (como, por ejemplo, sociedades históricas) o tipos de artefactos en múltiples sitios. Es posible que desee mapear la red entre estos individuos y esas organizaciones para comprender cómo fluye la información en ese mundo, cómo penetran las normas sociales, o las ideologías de consumo o el mapa de visualización en el espacio (como lo hace Tom Brughmans aquí y lo he hecho en otros lugares).

Necesitarás Gephi y Sci2. Descargue e instale estos. Se requiere registro para Sci2. Cualquier trabajo que haga con estas herramientas, si se publica, requiere la cita de la herramienta. No lo olvides!

1. Haz una lista. Cada vez que te encuentres con un individuo mencionado como miembro de un grupo, escríbelo. Dos columnas: fuente, objetivo. Shawn Graham, Universidad de Carleton. Puede incluir una tercera columna llamada 'peso' que da alguna medida de la importancia de esa conexión. ¿Por qué 'fuente', por qué 'objetivo'? Porque vamos a importar esa lista a Gephi, y así es como Gephi requiere la información. Sin embargo, cuando hacemos cualquier tipo de métrica, siempre trataremos esta red como no dirigida; es decir, no pretendemos saber nada sobre la dirección de la relación (en una red dirigida, la conexión de Alicia con Bob es diferente de la conexión de Bob con Alicia). Guarde esa lista como un archivo .csv. Si graficaste esto ahora, tendrías una red donde hay dos tipos de nodos; de ahí una red de dos modos. Las estadísticas de red visualizan una red donde los modos son todos del mismo tipo, por lo que estamos haciendo este tutorial.

2. Importa la lista a Gephi. Abre Gephi, comienza un nuevo proyecto. Haga clic en el laboratorio 'laboratorio de datos'. Debajo de 'tabla de datos', haga clic en 'bordes' (esto es importante, si hace clic en 'nodos', esto no funciona correctamente). Haga clic en 'importar hoja de cálculo'. Seleccione su archivo csv y asegúrese de que 'como tabla' esté configurado en 'tabla de bordes'. Haga clic en Siguiente. Haga clic en Finalizar.

3. Vaya a Archivo - >> exportar - >> archivo de gráficos. Guardar como tipo de archivo .net (Pajek).

4. Abre Sci2; haga clic en Archivo >> Cargar y seleccione su archivo .net.

5. Haga clic en 'preparación de datos' >> extracción de la red de co-ocurrencia de referencia (acoplamiento bibliográfico). (ver también 5.b, abajo bajo 'variaciones')

6. Haga clic en 'preprocesamiento' >> redes >> eliminar aislamientos. Ahora ha colapsado su red de dos modos en una red de modo único donde sus nodos bajo 'objetivo' ahora están conectados entre sí. Si su fuente, el objetivo era 'sitio', 'ware', tiene una red de un modo donde las mercancías están conectadas entre sí en virtud de estar enumeradas en el mismo sitio, es decir, el enlace implica el sitio. (Si ha realizado el paso 5.b, su única red de modo sería sitios conectados entre sí en virtud de compartir los mismos productos, el enlace implica la mercancía).

7. En este punto, vaya a archivo >> vista y su aplicación de bloc de notas se abrirá, mostrando una tabla donde cada nodo en su red tiene su propia identificación única, y 'etiqueta * cadena', que es su etiqueta original. Guardará esto del bloc de notas como un archivo txt. Puede llamarlo 'ware to ware index' (siguiendo nuestro ejemplo en 6).

8. Aquí es donde las cosas se ponen un poco complicadas. Haga clic en 'Archivo' >> 'guardar'. Seleccione 'pajek .net' como su tipo de archivo. (Consulte también 8.b a continuación, en 'variaciones')

9. Luego puede volver a Gephi, iniciar un nuevo proyecto, hacer clic en 'abrir' y seleccionar el archivo .net que acaba de crear. Su red de modo único se cargará. SIN EMBARGO, Gephi ya no reconocerá las etiquetas del nodo original. Es por esto que necesita el índice que guardó en el paso 7, de modo que cuando ejecute las métricas en esta red de un modo, sabrá que 'el nodo 342 en realidad está sellado en Brick CIL XV.1 841.d (por ejemplo). (ver también 9.b a continuación, en 'variaciones')

Variaciones


5.b En el paso 5, creó una red de modo único basada en su columna 'objetivo'. Para crear una red de modo único basada en su columna 'fuente', haga clic en 'preparación de datos' >> extraiga la red de co-citas de documentos. Reanudar en el paso 6.

8.b Si desea conservar las etiquetas de nodo en Gephi, en lugar del paso 8.a, haga clic en Visualization >> Networks >> GUESS. Esta es una pequeña herramienta de visualización (que le permite hacer algunas métricas de red, pero si su red es v. Grande,> 1000 nodos, esta podría no ser una buena idea). En GUESS, haga clic en Archivo >> exportar gráfico. Dale un nombre de archivo que tenga sentido, y no te olvides de escribir la extensión .gdf; de lo contrario, no se exportará. Vaya al paso 9b.

9.b Vaya a Gephi, comience un nuevo proyecto, haga clic en 'abrir' y seleccione el archivo .gdf que acaba de crear. Las etiquetas de su nodo ahora estarán presentes en el gráfico, por lo que no necesita ese archivo de índice que ha creado. Tal vez un error: en mis experimentos, las etiquetas de nodo no parecen aparecer en el panel 'Descripción general del gráfico' cuando se trabaja con el archivo gdf. Tu experiencia puede ser diferente. Sin embargo, aparecen cuando exporto una imagen de la n

jueves, 28 de junio de 2018

Enfoque de 2 modos para análisis de redes socio-semánticas en Twitter


Análisis automatizado de redes de actores en Twitter: Nuevo enfoque para el análisis de redes socio-semánticas

Iina Hellsten, Loet Leydesdorff
ARXiv

Los datos de los medios sociales brindan oportunidades cada vez mayores para el análisis automatizado de grandes conjuntos de documentos textuales. Hasta ahora, se han desarrollado herramientas automatizadas para dar cuenta de las redes sociales entre los participantes de los debates, o para analizar el contenido de esos debates. Se ha prestado menos atención al mapeo de actores concurrentes (participantes) y temas (contenido) en debates en línea que forman redes socio-semánticas. Proponemos un nuevo enfoque automatizado que utiliza un enfoque de matriz completa de temas codirigidos y los actores. Mostramos las ventajas del nuevo enfoque con el análisis de un gran conjunto de mensajes de Twitter en inglés en la reunión de Río + 20, en junio de 2012 (72.077 tweets), y un conjunto de datos más pequeño de mensajes en Twitter en neerlandés sobre la gripe aviar relacionado con la avicultura en 2015-2017 (2,139 tweets). Discutimos las implicaciones teóricas, metodológicas y sustantivas de nuestro enfoque, también para el análisis de otros datos de redes sociales.


sábado, 16 de junio de 2018

Centralidad en redes de dos modos


Centralidad de nodo en redes de dos modos

Tore Opsahl

La centralidad de los nodos, o la identificación de qué nodos son más "centrales" que otros, ha sido un tema clave en el análisis de redes (Freeman, 1978). Freeman (1978) argumentó que los nodos centrales eran aquellos "en el meollo de las cosas" o puntos focales. Con base en este concepto, formalizó tres medidas: grado, cercanía y entrecruzamiento. Para obtener una información más completa sobre estas medidas, vea Centralidad de nodos en Redes ponderadas.

Grado

Grado es el número de vínculos que tiene un nodo o el número de otros nodos a los que está conectado un nodo. En redes de dos modos, este concepto se puede aplicar directamente. Sin embargo, hay algunas complicaciones. En redes de dos modos, "la cantidad de otros nodos a los que está conectado un nodo" es ambigua. Podría ser el número de nodos secundarios a los que está conectado un nodo primario (y viceversa), o el número de nodos primarios a los que está conectado un nodo primario. Para aclarar la diferencia entre estos dos números, me referí a ellos como nodos de dos modos y un modo, respectivamente. Para ejemplificar la diferencia, la imagen a continuación muestra la red local que rodea a Flora en el Dataset de mujeres sureñas de Davis (1940) (adaptado de Opsahl, 2011).





La red local que rodea a Flora
Como se puede ver en este diagrama, el grado de dos modos de Flora es 2 y el grado de 1 modo es 12. Si la red se proyectó a una red de modo único, la medida de grado estándar sería 12.

También es posible obtener el grado de dos modos de los nodos una vez que se ha proyectado una red utilizando el método de Newman (2001). Este método de proyección fue desarrollado para las redes de coautoría científica, y establece el peso del empate entre dos autores igual a la suma en los trabajos co-autoescritos de 1 sobre el número de autores en ese documento menos 1. En otras palabras, para cada coautoría papel, un nodo divide 1 por los otros autores. Como tal, el peso total del empate es igual al número de documentos coautores. La única diferencia entre este método y el grado de dos modos son los trabajos de autor único. Estos están excluidos en el primero e incluidos en el segundo método.

Cercanía e intermediación

La parte principal de las medidas de proximidad y de interdependencia son los caminos más cortos y su longitud. La cercanía es la suma inversa de las longitudes de las trayectorias más cortas, y la interdependencia es la cantidad de trayectos más cortos que pasan por un nodo. Al aprovechar el algoritmo de ruta más corta de dos modos, es posible ampliar fácilmente estas dos medidas a redes de dos modos. Para recapitular rápidamente este algoritmo: 
  1. Use un método de proyección apropiado 
  2. Utilice el método para identificar las rutas más cortas y calcular su longitud en redes ponderadas de modo único (Brandes, 2001; Dijkstra, 1959; Newman, 2001).
Cuando se encuentre la longitud de las rutas más cortas, la medida de proximidad sería simplemente la suma inversa de ellas. Del mismo modo, la interdependencia se calculará fácilmente mirando los nodos intermedios en las rutas más cortas y contará, para cada nodo, la cantidad de veces que ese nodo es un intermediario. Nota: si hay varias rutas más cortas, es importante dividir por el número de ellas para asegurarse de que cada ruta solo cuente una vez.


Ejemplo

Para ilustrar las cuatro medidas, confío en Davis (1940) Southern Women Dataset. La asistencia a la reunión de 18 mujeres en 14 reuniones se registra en este conjunto de datos. La siguiente tabla muestra el resultado de las cuatro medidas (Newman's, 2001, el método de proyección se utiliza para la cercanía y la interdependencia, ya que es probable que el nivel de interacción entre los participantes en eventos más pequeños sea mayor).

.
nodo two-mode degree one-mode degree closeness betweenness
EVELYN 8 17 0.053 5
LAURA 7 15 0.051 1
THERESA 8 17 0.060 48
BRENDA 7 15 0.050 1
CHARLOTTE 4 11 0.044 0
FRANCES 4 15 0.041 0
ELEANOR 4 15 0.043 0
PEARL 3 16 0.037 0
RUTH 4 17 0.043 0
VERNE 4 17 0.045 0
MYRNA 4 16 0.042 0
KATHERINE 6 16 0.052 0
SYLVIA 7 17 0.054 11
NORA 8 17 0.059 60
HELEN 5 17 0.046 0
DOROTHY 2 16 0.027 0
OLIVIA 2 12 0.035 0
FLORA 2 12 0.035 0

En esta tabla se puede ver una limitación clave de la medida de transición: la mayoría de las personas obtiene un puntaje de 0 (es decir, la medida es cero-inflado). Las correlaciones por pares entre las medidas se informan a continuación. Si bien todas las medidas tienen altas correlaciones, es interesante observar que la medida de grado de dos modos tiene una mayor correlación con la cercanía y la interdependencia que la medida de grado de modo único. Esto podría sugerir que la medida de grado de dos modos computacionalmente barata es más capaz de replicar las medidas de proximidad y de equilibrio computacionalmente costosas.


1 2 3 4
1: two-mode degree 1.00


2: one-mode degree 0.51 1.00

3: closeness 0.95 0.44 1.00
4: betweenness 0.59 0.34 0.64 1.00


¿Quieres probarlo con tus datos?

Las medidas se pueden calcular utilizando tnet. Primero, necesita descargar e instalar tnet en R. Luego, necesita crear un edgelist de su red (vea las estructuras de datos en tnet para redes de dos modos). Los siguientes comandos muestran cómo se crearon las tablas anteriores.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# Load tnet and the Southern Women Dataset
library(tnet)
data(tnet)
net <- Davis.Southern.women.2mode
 
# Calculate two-mode degree
out <- degree_tm(net, measure="degree")
 
# Create one-mode projection
net1 <- projecting_tm(net, "Newman")
 
# Calculate one-mode degree
tmp <- degree_w(net1)[,"degree"]
 
# Append to table
out <- data.frame(out, onemodedegree=tmp)
 
# Calculate closeness and append to table
tmp <- closeness_w(net1 )[,"closeness"]
out <- data.frame(out, closeness=tmp)
 
# Calculate betweenness and append to table
tmp <- betweenness_w(net1 )[,"betweenness"]
out <- data.frame(out, betweenness=tmp)
 
# Download and set names
out[,"node"] <- read.table("http://opsahl.co.uk/tnet/ datasets/Davis_southern_club_women-name.txt")
 
# Pair-wise correlation table
tmp <- matrix(nrow=4, ncol=4)
tmp[lower.tri(tmp)] <- apply(which(lower.tri(tmp), arr.ind=TRUE)+1, 1, function(a) cor.test(out[,a[1]], out[,a[2]])$estimate)




Referencias

Brandes, U., 2001. A Faster Algorithm for Betweenness Centrality. Journal of Mathematical Sociology 25, 163-177.
Davis, A., Gardner, B. B., Gardner, M. R., 1941. Deep South. University of Chicago Press, Chicago, IL.
Dijkstra, E. W., 1959. A note on two problems in connexion with graphs. Numerische Mathematik 1, 269-271.
Freeman, L. C., 1978. Centrality in social networks: Conceptual clarification. Social Networks 1, 215-239.
Newman, M. E. J., 2001. Scientific collaboration networks. II. Shortest paths, weighted networks, and centrality. Physical Review E 64, 016132.
Opsahl, T., 2013. Triadic closure in two-mode networks: Redefining the global and local clustering coefficients. Social Networks 35, doi:10.1016/j.socnet.2011.07.001.
Opsahl, T., Agneessens, F., Skvoretz, J., 2010. Node centrality in weighted networks: Generalizing degree and shortest paths. Social Networks 32 (3), 245-251.

lunes, 26 de septiembre de 2016

ARS 101: Redes de narcos en Gephi

"Venta de drogas": Análisis de Redes con Gephi (Tutorial)

Ouseful,.info

A través de un vínculo de referencia Check Yo Self: 5 Things You Should Know About Data Science (Author Note) al criticar mapeo de tweets sin más análisis ( "Si estás haciendo grafos en Gephi de tweets, es probable que estés haciendo más análisis de marketing que análisis de ciencia de datos y corténla!. por favor. no lo puedo aguantar más. ... de qué sirve a alguien tener grafos de tweets y no hacerle análisis a ellos? "), me encontré con el blog [sin curso] Analytics Made Skeezy de John Foreman:

Analytics Made Skeezy es un blog falso. Cada post es parte de una narrativa más grande diseñada para enseñar una variedad de temas de análisis mientras se mantiene interesante. El uso de una sola narrativa me permite contrastar diferentes enfoques dentro del mismo mundo falso. Y en última instancia, eso es lo que este blog es acerca de: enseñar al lector cuándo usar ciertas herramientas analíticas.

Rebotando a través de ejemplos descritos en algunos de los puestos hasta la fecha, Even Wholesale Drug Dealers Can Use a Little Retargeting: Graphing, Clustering & Community Detection in Excel and Gephi no es sorprendente que me haya llamado la atención. Ese puesto se describe, en forma narrativa, cómo utilizar Excel para preparar y dar forma a un conjunto de datos para que pueda ser importado en Gephi como un archivo CSV de imitación y luego ejecutar a través de estadística de la modularidad de Gephi; el conjunto de datos aumentada clase modularidad puede ser exportado de los datos de laboratorio Gephi y re-presentado en Excel, con lo cual el uso juicioso de la columna de clasificación y formato condicional se usa para tratar de generar algún tipo de conocimiento acerca de los racimos / grupos descubiertos en los datos - al parecer, "Gephi puede aspirar un poco por darnos ese tipo de visión a veces. Depende del grafo y lo que estamos tratando de hacer ". Y además:

Si usted tenía un gran conjunto de datos que se preparó en un grafo de vecinos más cercanos recortado, tener en cuenta que visualizándolo en Gephi es sólo por diversión. No es necesario para la penetración real, independientemente de lo que los montones de presentaciones de tweets-extensión-como se visualiza-en-Gephi podrían decirle (amordáceme). Sólo tiene que hacer la pieza de detección de la comunidad. Se puede utilizar para ese Gephi o las bibliotecas que utiliza. R y Python ambos tienen un paquete llamado igraph que hace estas cosas también. Lo que usted utiliza, sólo tiene que obtener las tareas de la comunidad de su gran base de datos para que pueda funcionar cosas como el análisis agregado sobre ellos a la inteligencia brotan de cada grupo.

No estoy necesariamente de acuerdo con la implicación de que a menudo necesitamos hacer algo más que mirar a cuadros bonitos en Gephi para dar sentido a un conjunto de datos; pero sí creo que también podemos utilizar Gephi de una manera activa para mantener una conversación con los datos, generando algún tipo de ideas preliminares a cabo sobre el conjunto de datos que entonces podemos explorar más a fondo el uso de otras técnicas analíticas. Entonces, ¿qué voy a tratar de hacer en el resto de este post es ofrecer algunas sugerencias acerca de una o dos maneras en las que podríamos utilizar Gephi para comenzar a conversar con el mismo conjunto de datos descrito en el puesto Narcotraficante Cambio de destino. Antes de hacerlo, sin embargo, le sugiero que lea el post original y tratar de llegar a algunas de sus propias conclusiones acerca de lo que los datos podrían estar diciéndonos ...

...

¿Listo? En resumen, el conjunto de datos original ( "Inventario") es una lista de "ofertas", con columnas relativas a los dos tipos de cosas: 1) cualidad de un acuerdo; 2) una columna por un distribuidor que señala si ellos tomaron ese trato. entonces se genera una matriz de cliente / cliente y el coseno similitud entre cada cliente calculado (nota: otras métricas de distancia están disponibles ...) indicando la medida en la que participó en acuerdos similares. La selección de los tres vecinos más similares a los de cada cliente crea un "grafo de vecinos más próximos recortado", que se munged en un formato de datos CSV-parecida a la Gephi puede importar. Gephi se utiliza entonces para hacer un análisis visual muy rápida / superficial (y con descuento), y ejecutar el algoritmo de detección de la modularidad / agrupación.

Entonces, ¿cómo iba yo he atacado este conjunto de datos (Nota: IANADS (no soy un científico de datos ;-)

Una forma sería tratarlo desde el principio como definir un grafo en el que los distribuidores están conectados a los oficios. Utilizando una versión ligeramente ordenado de la ficha de inventario 'del conjunto de datos original en el que me quita la primera filas (metadatos) y la última (totales), y ajustado uno de los nombres de columna para eliminar los corchetes (no creo que le gusta Gephi soportes en los nombres de atributo?), he utilizado la siguiente secuencia de comandos para generar una versión GraphML con formato de sólo un grafo de este tipo.

.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#Python script to generate GraphML file
import csv
#We're going to use the really handy networkx graph library: easy_install networkx
import networkx as nx
import urllib
#Create a directed graph object
DG=nx.DiGraph()
#Open data file in universal newline mode
reader=csv.DictReader(open("inventory.csv","rU"))
#Define a variable to act as a deal node ID counter
dcid=0
#The graph is a bimodal/bipartite graph containing two sorts of node - deals and customers
#An identifier is minted for each row, identifying the deal
#Deal attributes are used to annotate deal nodes
#Identify columns used to annotate nodes taking string values
nodeColsStr=['Offer date', 'Product', 'Origin', 'Ready for use']
#Identify columns used to annotate nodes taking numeric values
nodeColsInt=['Minimum Qty kg', 'Discount']
#The customers are treated as nodes in their own right, rather than as deal attributes
#Identify columns used to identify customers - each of these will define a customer node
customerCols=['Smith', 'Johnson', 'Williams', 'Brown', 'Jones', 'Miller', 'Davis', 'Garcia', 'Rodriguez', 'Wilson', 'Martinez', 'Anderson', 'Taylor', 'Thomas', 'Hernandez', 'Moore', 'Martin', 'Jackson', 'Thompson', 'White' ,'Lopez', 'Lee', 'Gonzalez','Harris', 'Clark', 'Lewis', 'Robinson', 'Walker', 'Perez', 'Hall', 'Young', 'Allen', 'Sanchez', 'Wright', 'King', 'Scott','Green','Baker', 'Adams', 'Nelson','Hill', 'Ramirez', 'Campbell', 'Mitchell', 'Roberts', 'Carter', 'Phillips', 'Evans', 'Turner', 'Torres', 'Parker', 'Collins', 'Edwards', 'Stewart', 'Flores', 'Morris', 'Nguyen', 'Murphy', 'Rivera', 'Cook', 'Rogers', 'Morgan', 'Peterson', 'Cooper', 'Reed', 'Bailey', 'Bell', 'Gomez', 'Kelly', 'Howard', 'Ward', 'Cox', 'Diaz', 'Richardson', 'Wood', 'Watson', 'Brooks', 'Bennett', 'Gray', 'James', 'Reyes', 'Cruz', 'Hughes', 'Price', 'Myers', 'Long', 'Foster', 'Sanders', 'Ross', 'Morales', 'Powell', 'Sullivan', 'Russell', 'Ortiz', 'Jenkins', 'Gutierrez', 'Perry', 'Butler', 'Barnes', 'Fisher']
#Create a node for each customer, and classify it as a 'customer' node type
for customer in customerCols:
    DG.add_node(customer,typ="customer")
#Each row defines a deal
for row in reader:
    #Mint an ID for the deal
    dealID='deal'+str(dcid)
    #Add a node for the deal, and classify it as a 'deal' node type
    DG.add_node(dealID,typ='deal')
    #Annotate the deal node with string based deal attributes
    for deal in nodeColsStr:
        DG.node[dealID][deal]=row[deal]
    #Annotate the deal node with numeric based deal attributes
    for deal in nodeColsInt:
        DG.node[dealID][deal]=int(row[deal])
    #If the cell in a customer column is set to 1,
    ## draw an edge between that customer and the corresponding deal
    for customer in customerCols:
        if str(row[customer])=='1':
            DG.add_edge(dealID,customer)
    #Increment the node ID counter
    dcid=dcid+1
#write graph
nx.write_graphml(DG,"inventory.graphml")

El grafo que estamos generando (descarga .graphml) tiene una estructura básica que se ve algo como lo siguiente:



Lo que quiere decir, en este ejemplo cliente C1 efectúe un único acuerdo, D1; el cliente C2 participó en cada trato, D1, D2 y D3; y el cliente C3 participó de ofertas D2 y D3.

Al abrir el archivo grafo en Gephi como un grafo dirigido, se obtiene un recuento del número de operaciones reales existían a partir del recuento de enlaces:



Si se corre la estadística media de grado, podemos ver que hay algunos nodos que no están conectados a otros nodos (es decir, que son o bien se ocupa de ningún comprador o clientes que nunca han participado en un trato):



Podemos ver estos nodos utilizando un filtro:



También podemos utilizar el filtro para otro lado, para excluir las ofertas no aceptadas, y luego crear un nuevo espacio de trabajo que contiene sólo las ofertas que fueron tomados, y los clientes que compraron en ellos:



El selector de espacio de trabajo es en la parte inferior de la ventana, en el lado derecho:



(Hmmm ... por alguna razón, el grafo no filtrado se exporta para mí ... todo el grafo era. Un error? Toqueteando con filtro de Componente Gigante, a continuación, exportar, a continuación, ejecutar el filtro de componentes gigante en el grafo exportado y cancelación parecía fijar cosas ... pero algo no está funcionando bien?)

Ahora podemos empezar a probar algunos análisis visual interactiva. En primer lugar, vamos a exponer los nodos utilizando un algoritmo de diseño fuerza dirigida (ForceAtlas2) que trata de situar los nodos de manera que los nodos que están conectados están situados cerca uno del otro, y los nodos que no están conectados se mantienen separados (imaginar cada nodo como tratando de repeler a los otros nodos, con los enlaces tratando de tirar de ellos juntos).



Nuestra percepción visual es muy bueno para la identificación de las agrupaciones espaciales (véase, por ejemplo, los principios de la Gestalt, que conducen a muchos un truco de diseño y un cubo de pistas sobre cómo se burlan de datos, con exclusión de una manera visualmente significativa ...), pero ¿son realmente significativo ?

En este punto de la conversación que estamos teniendo con los datos, probablemente me llamo en una estadística que trata de colocar grupos de nodos conectados en grupos separados de modo que pudiera colorear los nodos en función de su pertenencia a un grupo: la estadística de modularidad:



La estadística de la modularidad es un algoritmo aleatorio, por lo que puede obtener diferentes (aunque muy similares) resulta cada vez que lo ejecute. En este caso, se descubrió seis agrupaciones o grupos de nodos interconectados posibles (a menudo, un grupo es una miscelánea ...). Podemos ver qué grupo cada nodo era lugar en aplicando una coloración de reparto



Vemos cómo las agrupaciones modularidad ampliamente mapa en que las agrupaciones visuales revelados por el algoritmo de diseño ForceAtlas2. Pero los grupos se refieren a algo significativo? ¿Qué pasa si nos volvemos las etiquetas de?



El grupo verde parece referirse a operaciones de malezas, los rojos son X, metanfetamina y ketamina ofertas, y amarillo para las cabezas de coque. Así que las ofertas no parecen agruparse en torno a diferentes tipos de trato.

Entonces, ¿qué más podríamos ser capaces de aprender? ¿La dimensión de manera operacional en un acuerdo por separado a cabo en todos los nodos (nulos en esta dimensión se relaciona con los clientes)?



Tendríamos que saber un poco más acerca de cuáles podrían ser las consecuencias de "listo para el uso", pero a simple vista nos dan una sensación al del cluster en el extremo izquierdo está dominado por las operaciones con un gran número de clientes (hay un montón de blancos nodos / cliente) y el cluster relacionados Coca-Cola de la derecha tiene un buen número de oficios (los nodos verdes) que no están listos para su uso. (Una pregunta que viene a la mente mirando esa área es: ¿existen clientes que parecen ir a por no listo para su uso oficios, y lo que podría decirnos esto sobre ellos si es así?)

Otra cosa que podríamos mirar a es el tamaño de las operaciones, así como cualquier descuento asociados. Coloreemos los nodos utilizando la herramienta de partición de acuerdo con el tipo de nodo (nombre de atributo es "típico" - nodos son ofertas (rojo) o clientes (aqua)) y luego el tamaño de los nodos de acuerdo para hacer frente a tamaño utilizando la pantalla de clasificación:



Las ofertas "fritas" pequeñas en el grupo de la mano izquierda. Mirando de nuevo a la agrupación de Coca-Cola, donde hay una mezcla de ofertas de pequeñas y grandes, otra pregunta que podríamos presentar distancia se encuentra "son los clientes que optan por allí, ya sea para los comercios grandes o pequeños?"

Volvamos al color original (a través de la partición La modularidad de color, tenga en cuenta que la asignación aleatoria de colores podría cambiar a partir del conjunto color original; botón derecho del ratón que permite volver a asignar al azar a los colores; al hacer clic en un cuadrado de color le permite color Seleccione por mano) y el tamaño de los nodos de grado de salida (es decir, la suma total de los enlaces salientes de un nodo - recuerde, el grafo se describió como un grafo dirigido, con los enlaces que van desde las transas a los clientes):



entonces he dimensionado las etiquetas para que sean proporcionales al tamaño de los nodos:






El tamaño nodo / etiqueta muestra que se ocupa tenían un montón de compradores. De calibrado por el grado de salida muestra el número de ofertas de cada cliente participó en:



Esta es una visión bastante desordenado ... volviendo al panel Diseño, podemos usar el diseño de expansión para estirarse todo el diseño, así como la Etiqueta ajusta la herramienta para sacudir nodos de modo que las etiquetas no se superponen. Observe que también puede hacer clic en un nodo para arrastrarlo por, o un grupo de nodos mediante el aumento de la "campo de visión" del cursor del ratón:



Así es como me rearmé el diseño mediante la ampliación de la disposición después ajustando las etiquetas ...:



(Una de las cosas que podría estar tentado a hacer es filtrar los usuarios que sólo participan en uno o dos o ofertas, tal vez como un wau de la identificación de los clientes habituales, por supuesto, un usuario sólo puede participar en una sola, pero muy grande trato, así que tendríamos que pensar cuidadosamente acerca de lo que eran en realidad la pregunta pidiendo a la hora de hacer una elección. por ejemplo, también puede estar interesado en la búsqueda de clientes que realizan grandes operaciones poco frecuentes, lo que requeriría una estrategia de análisis diferente.)

En la medida en que va, esto no es realmente muy interesante - lo que podría ser más convincente sería datos en relación con quien trataba con quién, pero que no está disponible inmediatamente. Lo que debemos ser capaces de hacer, sin embargo, es ver lo que los clientes están relacionados en virtud de participar de las mismas ofertas, y ver qué ofertas están relacionados en virtud de haber tratado a los mismos clientes. Podemos quizá chico nosotros mismos pensando que podemos ver en el grafo cliente-acuerdo, pero podemos ser un poco más riguroso de dos en la construcción de dos nuevos grafos: uno que muestra enlaces entre ofertas que comparten uno o más clientes comunes; y uno que muestra enlaces entre clientes que comparten una o más de las mismas ofertas.



Recordando la grafo /bipartito / "bimodal" arriba:



Eso significa que debemos ser capaces de generar grafos unimodales a lo largo de las siguientes líneas:



D1 está conectado a través de D2 y D3 C2 cliente (es decir, existe un enlace entre D1 y D2, y otro enlace entre D1 y D3). D2 y D3 se unen entre sí a través de dos rutas, C2 y C3. Así podemos ponderar el enlace entre D2 y D3 de ser más pesado, o más importante, que el enlace entre ambos D1 y D2, D1 y D3 o.

¿Y para los clientes?



C1 está conectado a través de C2 acuerdo D1. C2 y C3 están conectados por un enlace ponderada más pesado que refleja el hecho de que ambos participaron en ofertas D2 y D3.

Usted se espera que sea capaz de imaginar cómo más complejos grafos de cliente-acuerdo podría colapsar en grafos al cliente en el cliente o el acuerdo de reparto donde hay grupos de clientes (u ofertas) basado en el hecho de que múltiples, desconectado (o sólo muy débilmente conectada) hay conjuntos de ofertas que no comparten ningún clientes comunes en absoluto, por ejemplo. (A modo de ejercicio, trate de dar con algunos grafos cliente-acuerdos y luego "colapso" a los grafos del cliente del cliente o contrato de acuerdo, que estén desconectados componentes.)

Entonces, ¿podemos generar grafos de este tipo utilizando Gephi? Bueno, da la casualidad que podamos, con la función de proyección multimodo Networks. Para empezar vamos a generar un par de espacios de trabajo que contienen el grafo original, menos las ofertas que no tenían clientes. Al seleccionar uno de estos espacios de trabajo, que ahora puede generar el grafo de acuerdo de reparto (vía común de los clientes) :



Cuando corremos la proyección, el grafo se proyecta sobre un grafo de oferta-oferta:



El espesor de los enlaces describe el número de clientes dos ofertas compartidos.

Si se corre la estadística de la modularidad sobre el grafo de acuerdos -acuerdos y el color del grafo por la partición de la modularidad, podemos ver cómo las ofertas se agrupan en virtud de tener clientes compartidos:



Si a continuación, vamos a filtrar el grafo de espesor en el enlace de manera que sólo se muestran los enlaces con un grosor de tres o más (tres clientes compartidos) podemos ver algunos cómo algunos de los tipos de trato mirada como si se agrupan en torno a determinadas comunidades sociales (es decir, se suministran a la misma serie de personas):



Si ahora vamos a la otra área de trabajo que hemos creado que contiene el grafo original (menos ofertas insatisfechas), podemos generar la proyección cliente-cliente:



Ejecutar la estadística de la modularidad y recolour:



Si bien hay mucho que decir para el mantenimiento de la disposición espacial de manera que podamos comparar las diferentes parcelas, podríamos tener la tentación de volver a ejecutar el algoritmo de diseño para ver si el que se destacan las asociaciones estructurales más claramente? En este caso, no hay mucha diferencia:



Si corremos el diámetro de la herramienta de red, podemos generar algunas estadísticas de red a través de esta red cliente-cliente:



Si ahora por tamaño los nodos de centralidad de intermediación, el tamaño de las etiquetas de los nodos proporcionales, y el uso de las herramientas de expandir / etiqueta de diseño de solapamiento de ajustar la pantalla, esto es lo que obtenemos:



Thompson parece ser un personaje interesante, que abarca los diversos grupos ... pero lo que en realidad está ofertas participando en? Si volvemos al grafo del cliente-acuerdo orignal, podemos utilizar un filtro para ver el ego:



Para buscar grupos sociales reales, podemos filtrar la red basada en el peso de enlace, por ejemplo, para mostrar sólo los enlaces por encima de un determinado peso (es decir, el número de ofertas compartidos), y luego dejar caer este conjunto en un nuevo espacio de trabajo. Si corremos el estadístico de Grado Medio, se puede calcular el grado de los nodos en este grafo, y el tamaño de los nodos en consecuencia. La retransmisión del grafo nos muestra algunas redes sociales corse basado en un número significativo de operaciones compartidas:



Esperemos que ahora que está empezando a "ver" cómo podemos empezar a tener una conversación visual con los datos, preguntas diferentes de la misma en base a cosas que estamos aprendiendo sobre él. Si bien es posible que tenga que mirar realmente a los números (y pestaña Laboratorio de Datos de Gephi nos permite hacer eso), me parece que la exploración visual puede proporcionar una forma rápida de orientación (orientador?) Usted mismo con respecto a un determinado conjunto de datos, y conseguir una sentir por el tipo de preguntas que pueden formularse de la misma, preguntas que bien podría implicar una consideración detallada de los mismos números reales. Pero para empezar, el recorrido visual a menudo funciona para mí ...

PS Hay un enlace al archivo de grafo de aquí, así que si quieres probar explorar por sí mismo, puede hacerlo :-)