Update Notes on using Lem's algorithm interface authored by Peter Menegay's avatar Peter Menegay
...@@ -50,6 +50,8 @@ Calculations now proceed with the input `intermediate_results` and result in new ...@@ -50,6 +50,8 @@ Calculations now proceed with the input `intermediate_results` and result in new
In essence, for the case of straight averaging, the `intermediate_results` are just the Sapienza trust-modified probabilities of every source in the sub-group to be analyzed. The sub-group in this case is a node and its direct descendants (children). The average of the group is calculated and that plus the list of probabilities (modified by trust) become the results for the next level. Two examples of a multi-level tree were created manually to test this concept (just run custom_algo.py). In real life transferring results between nodes will presumably be handled by the server code, so this is really just an experiment to see that things are conceptually ok. In essence, for the case of straight averaging, the `intermediate_results` are just the Sapienza trust-modified probabilities of every source in the sub-group to be analyzed. The sub-group in this case is a node and its direct descendants (children). The average of the group is calculated and that plus the list of probabilities (modified by trust) become the results for the next level. Two examples of a multi-level tree were created manually to test this concept (just run custom_algo.py). In real life transferring results between nodes will presumably be handled by the server code, so this is really just an experiment to see that things are conceptually ok.
A privacy enhancing variant of this algorithm can also be created in which each sub-group's average is broken out as a numerator, denominator, and number of nodes. These three pieces would then constitute the `intermediate_results`. The numerator could then, as a whole, be trust-modified for the next level up calculation. Doing so would require a change to the Sapienza trust-modification since it is now a function of the number of nodes. The trust-modified numerator would be added to other numerators at the next level up, denominators would be added, and so on. Doing this would obscure a particular node's trust information which now can be back-calculated by a parent node by knowing the node's probability.
<h3>Example of using straight_average_intermediate</h3> <h3>Example of using straight_average_intermediate</h3>
Let's start by using the case from [A simple averaging technique to supplement the Bayes equation](A simple averaging technique to supplement the Bayes equation): Let's start by using the case from [A simple averaging technique to supplement the Bayes equation](A simple averaging technique to supplement the Bayes equation):
... ...
......