I'm using:
import org.neo4j.graphalgo.impl.centrality.EigenvectorCentrality;
import org.neo4j.graphalgo.impl.centrality.EigenvectorCentralityArnoldi;
import org.neo4j.graphalgo.impl.centrality.EigenvectorCentralityPower;

The variance I am seeing is far greater than anything that could be explained 
by floating point precision issues.  For example, a result coming back after 
one call as 0.045 and then on the next call with identical options it could 
return 0.038.

I glanced over the code and I see that they both use java.util.Random, so that 
could explain why it is not deterministic.  Maybe that answers everything.

Unfortunately, what it means is that you might randomly have two subsequent 
calls that appear to return similar results, but actually you have not zeroed 
in on the correct answer within the actual level of precision that is desired.

The JavaDoc explicitly states that precision doesn't means proximity to correct 
result, but it doesn't make the results less unsatisfying.

-Paul

-----Original Message-----
From: user-boun...@lists.neo4j.org [mailto:user-boun...@lists.neo4j.org] On 
Behalf Of Marko Rodriguez
Sent: Tuesday, November 09, 2010 6:06 PM
To: Neo4j user discussions
Subject: Re: [Neo4j] Eigenvector Centrality subclasses

Hey Paul,

> I get inconsistent results from run to run using eigenvector centrality.  It 
> doesn't seem to matter which implementation I use but I have used Arnoldi 
> most, for no reason other than it returns the iteration count.

Given that eigenvector components sum to 1, and when dealing with large graphs, 
you may be running into floating point precision issues. In general, different 
eigenvector methods may have small variations in their values (even though its 
the same eigenvector!), but, if you are getting Spearman rank order correlation 
~1.0, then I think its 'all good.' Also, note that for those eigenvector 
centrality implementations that are based on random walk, variations are sure 
to show up.

> The iteration count is not consistent from run to run when run against the 
> exact same graph using the exact same precision.  In a graph with 32 nodes 
> and 117 edges, I get anywhere from 18 to 24 iterations needed to get a 
> precision of 0.001.  The variance is easier to see when the test is run on 
> different computers.

Hmm...  What code are you using? I'm talking in general and not specifically 
about anything Neo4j related... 

Thanks,
Marko.

http://markorodriguez.com
_______________________________________________
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user

_______________________________________________
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user

Reply via email to