Explanation of values missing

In the Online-Training Course: Introduction to Graph Algorithms — Exercises
:play https://guides.neo4j.com/4.0-intro-graph-algos-exercises/LouvainModularity.html
when doing this query:

CALL gds.louvain.write('roads',{
relationshipWeightProperty: 'inverse_distance'})
YIELD modularity, ranLevels, communityCount, communityDistribution

it would be great to add some explanations of the results:

Are there any documentation about the values p99, p75 etc. ?

Hey Andreas,

the documentation states that:

Map containing min, max, mean as well as p50, p75, p90, p95, p99 and p999 percentile values of community size for the last level.

So, for example, the p50 value is the 50th percentile value or the median value of the community size. So in this case, the p99 value of 75 represents that 99% of communities have the community size of 75 or less and 1% have the community size greater than or equal to 75.

We will add the explanation to the browser guide.

Thanks for your feedback.

1 Like

Thanks for the fast answer !

One other question about this Guide:
:play https://guides.neo4j.com/4.0-intro-graph-algos-exercises/LoadData.html
where you propse the inverse distance like this:
MATCH (:Place)-[r:EROAD]->(:Place)
SET r.inverse_distance = 1.0 / log10(r.distance + 2)
Why do you use log10 etc. when inverse distance would be 1/distance ?

If I remember correctly, the main reason was that otherwise, the weights would be super tiny, ranging between 0.0 and 0.1. One distance is 0, so you would have to do 1 / distance + 1. I think I tried both and it doesn't impact the results that much.

1 Like

Thanks for the fast answer !

In Browserguide
:play https://guides.neo4j.com/4.0-intro-graph-algos-exercises/LouvainModularity.html
on Slide 11 of 16 the explanation:
"Antwerpen, Gent, Bruxelles, and six other places share the same community through all the hierarchical levels." does not fit to the values of the property communities_louvain, eg. [145, 192, 192] for Maastricht ?

What's the question here?
If it's the same array, meaning all the three community ids in array are in the same sequence, then the places are in the same community on all the hierarchical levels.

What does "in the same sequence" mean. I thougt [145, 192, 192] for Maastricht means that Maastricht was first in community 145 and then in 192 in the second run and then in 192 too in the last run ? Or do i miss something ?

Maybe the first/last run is not the best wording. The first or last hierarchical level is better. But yes, I think you are probably understanding correctly

Ok, when I'm right then Maastricht does not have the same community through all hierarchial levels.

Exactly Maastricht has a different community on each level. Keep in mind though that same of the communities might disappear on a higher level as you can notice there are more communities on the first level than the last one.

Ok, but then the first sentence says something different than the second:
"Antwerpen, Gent, Bruxelles, and six other places share the same community through all the hierarchical levels. On the first level, they have been assigned to the community with an id 145, but later switched to community 192 on level two and final third level."
because they share the same community not in all but from the second level up ?

Ok, now I finally understand your point. Perhaps the phrasing is a bit off, maybe it would be better to say:

X,y,z share a common community through all levels or something like that. Something that implies that on each level they can be found sharing the same community id. Not implying that their community id dont change. Even when writing this response I had problem finding a nice wording.

Feel free to add a PR with better wording

I found this picture very good to understand the matter:

Does the number of hierarchies correspondend with the times the algo runs ?

Take a look at Graph Algorithms in Neo4j: Louvain Modularity

Thanks for that article !