Are Graphs with "Edge Weights" more popular than Graphs with "Node Weights"?

86 Views Asked by At

Suppose I have the following problem:

  • I have a list of friends - this list has information on who is friends who (i.e. each friend can be considered a "node" and each relationship is an "edge")

  • I also have the "height" of each friend on this list (i.e. "node weights")

  • I am interested in making a Graph for this data and finding out "clusters" within this Graph

If I were not considering the "node weights", this problem would be relatively easy. Using some statistical computing software (e.g. R), I could create a Graph for this data and then run a clustering algorithm on this data such as the "Louvain Clustering Algorithm" (e.g. https://en.wikipedia.org/wiki/Louvain_method, https://igraph.org/r/doc/cluster_louvain.html) .

However, now I would like to incorporate the "node information" into this clustering algorithm. That is, I would like to indirectly see if "people of similar heights tend to be friends with people of similar heights".

When doing some research online, I have found different examples of clustering algorithms that are able to incorporate "edge information" - yet I have not really seen any examples of clustering algorithms that are able to incorporate "node information" (i.e. node weights). The closest thing I could find was the following link on the Leiden Algorithm (https://www.nature.com/articles/s41598-019-41695-z) which is apparently capable of incorporating "node information": https://igraph.org/r/doc/cluster_leiden.html

This leads me to my question:

  • Have I understood this correctly, is the Leiden Algorithm able to handle Node Weights - Could I use this algorithm for my hypothetical problem?

  • It seems that the Leiden Algorithm can only handle a single weight per each node - in general, are there any Graph Clustering algorithms that are able to handle multiple node weights per node (e.g. height, age, weight, etc.)?

  • It still seems to me that "Weighted Graphs" are still associated with "Weighted Edges" compared to "Weighted Nodes" - is there any reason for this?

Thanks!

  • Note: An example of "Edge Weights" could be "the amount of time two people have been friends".
1

There are 1 best solutions below

0
On

In my understanding, if your hypothesis is, e..g, "people of similar heights tend to be friends with people of similar heights", then you should just do normal clustering without node weights and examine how the "heights" of the nodes within the same cluster and the "heights" of those in different clusters look like. For example, an observation that the "heights" within each cluster have a far smaller standard deviation than the "heights" of all nodes (global statistic) would support the above hypothesis.

If you want to include the "node weights" into the clustering algorithm, then your purpose should be more like "I prefer clusters consisting of nodes with similar node weights" then still a standard way to achieve this is to assign edge weights based on the difference in the "heights" of the two corresponding nodes.