Voting rights
Step 3 in pipeline
Voting rights are assigned per user and per entity, based on users' trust scores and privacy settings.
            VotingRightsAssignment
¶
    
              Bases: ABC
            __call__
¶
__call__(users: DataFrame, entities: DataFrame, vouches: DataFrame, privacy: PrivacySettings, user_models: dict[int, ScoringModel]) -> tuple[VotingRights, DataFrame]
Compute voting rights
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
                users
             | 
            
                  DataFrame
             | 
            
              
  | 
            required | 
                entities
             | 
            
                  DataFrame
             | 
            
              
  | 
            required | 
                vouches
             | 
            
                  DataFrame
             | 
            
              
  | 
            required | 
                privacy
             | 
            
                  PrivacySettings
             | 
            
               privacy[user, entity] in { True, False, None }  | 
            required | 
                user_models
             | 
            
                  dict[int, ScoringModel]
             | 
            
               user_models[user_id] is the user's scoring model  | 
            required | 
Returns:
| Name | Type | Description | 
|---|---|---|
                  voting_rights[user, entity] is the voting right
             | 
            
               of a user on entity for criterion  | 
          |
entities |             
                  DataFrame with columns
             | 
            
              
  | 
          
            IsTrust
¶
IsTrust(privacy_penalty: float = 0.5)
              Bases: VotingRightsAssignment
Implements voting rights assignment directly based on user trust scores and applying some privacy penalty.
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
                privacy_penalty
             | 
            
                  float
             | 
            
               Penalty on private comparisons.  | 
            
                  0.5
             | 
          
            __call__
¶
__call__(users: DataFrame, entities: DataFrame, vouches: DataFrame, privacy: PrivacySettings, user_models: dict[int, ScoringModel]) -> tuple[VotingRights, DataFrame]
Compute voting rights
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
                users
             | 
            
                  DataFrame
             | 
            
              
  | 
            required | 
                entities
             | 
            
                  DataFrame
             | 
            
              
  | 
            required | 
                vouches
             | 
            
                  DataFrame
             | 
            
               | 
            required | 
                privacy
             | 
            
                  PrivacySettings
             | 
            
               privacy[user, entity] in { True, False, None }  | 
            required | 
                user_models
             | 
            
                  dict[int, ScoringModel]
             | 
            
               | 
            required | 
Returns:
| Name | Type | Description | 
|---|---|---|
                  voting_rights[user, entity] is the voting right
             | 
            
               of a user on entity for criterion  | 
          |
entities |             
                  DataFrame with columns
             | 
            
              
  | 
          
            AffineOvertrust
¶
AffineOvertrust(privacy_penalty: float = 0.5, min_overtrust: float = 2.0, overtrust_ratio: float = 0.1)
              Bases: VotingRightsAssignment
Initializes the AffineOvertrust model with the specified parameters.
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
                privacy_penalty
             | 
            
                  float
             | 
            
               Penalty on private comparisons.  | 
            
                  0.5
             | 
          
                min_overtrust
             | 
            
                  float
             | 
            
               Minimum overtrust amount to distribute over all users.  | 
            
                  2.0
             | 
          
                overtrust_ratio
             | 
            
                  float
             | 
            
               Trust ratio used to compute maximal allowed overtrust.  | 
            
                  0.1
             | 
          
            __call__
¶
__call__(users: DataFrame, entities: DataFrame, vouches: DataFrame, privacy: PrivacySettings, user_models: Optional[dict[int, ScoringModel]]) -> tuple[VotingRights, DataFrame]
Compute voting rights for users on entities
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
                users
             | 
            
                  DataFrame
             | 
            
              
  | 
            required | 
                entities
             | 
            
                  DataFrame
             | 
            
              
  | 
            required | 
                vouches
             | 
            
                  DataFrame
             | 
            
               | 
            required | 
                privacy
             | 
            
                  PrivacySettings
             | 
            
               privacy[user, entity] is the privacy setting of user for entity May be True, False or None  | 
            required | 
                user_models
             | 
            
                  Optional[dict[int, ScoringModel]]
             | 
            
               | 
            required | 
Returns:
| Name | Type | Description | 
|---|---|---|
                  voting_rights[user, entity] is the voting right
             | 
            
               of a user on entity for criterion  | 
          |
entities |             
                  DataFrame with columns
             | 
            
              
  | 
          
            compute_entity_voting_rights
¶
compute_entity_voting_rights(trust_scores: Series, privacy_weights: Series) -> tuple[Series, float, float, float]
            cumulative_trust
¶
cumulative_trust(trust_scores: ndarray, privacy_weights: ndarray) -> float
Returns the sum of trusts of raters of entity entity_id, weighted by their privacy setting.
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
                trust_scores
             | 
            
                  ndarray
             | 
            
              
  | 
            required | 
                privacy_weights
             | 
            
                  ndarray
             | 
            
               privacy_weights[u] is the privacy weight of user u  | 
            required | 
Returns:
| Name | Type | Description | 
|---|---|---|
out |             
                  float
             | 
            
               | 
          
            maximal_overtrust
¶
    
            overtrust
¶
    Returns the overtrust, if min_voting_right is enforced upon all raters.
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
                min_voting_right
             | 
            
                  float
             | 
            
               Overtrust for min_voting_right  | 
            required | 
                trust_scores
             | 
            
                  ndarray
             | 
            
               values: trust_score (float)  | 
            required | 
                privacy_weights
             | 
            
                  ndarray
             | 
            
               values: privacy weight of user  | 
            required | 
Returns:
| Name | Type | Description | 
|---|---|---|
out |             
                  float
             | 
            
               | 
          
            min_voting_right
¶
    Returns the minimal voting rights that corresponds to max_overtrust.
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
                max_overtrust
             | 
            
                  float
             | 
            
               Maximal overtrust allowed for entity_id  | 
            required | 
                trust_scores
             | 
            
                  ndarray
             | 
            
               trust score values per user  | 
            required | 
                privacy_weights
             | 
            
                  ndarray
             | 
            
               privacy weight per user  | 
            required | 
Returns:
| Name | Type | Description | 
|---|---|---|
out |             
                  float
             | 
            
               |