TwoThird¶
- class TwoThird(answers, n_classes=2, sparse=False, **kwargs)¶
- Two third agreement¶- Accepts the label given with a two third consensus on at least 2 votes and returns -1 otherwise - __init__(answers, n_classes=2, sparse=False, **kwargs)¶
- Two Third agreement: accept label reaching two third consensus \[\begin{split}\mathrm{TwoThird}(i, \{y_i^{(j)}\}_j) = \begin{cases} \mathrm{MV}(i, \{y_i^{(j)}\}_j) & \text{if} s_i=1 \\ \text{undefined} & \text{otherwise} \end{cases}\end{split}\]- Parameters:
- answers (dict) – - Dictionary of workers answers with format - { task0: {worker0: label, worker1: label}, task1: {worker1: label} } 
- n_classes (int, optional) – Number of possible classes, defaults to 2 
- sparse (bool, optional) – If the number of workers/tasks/label is large (\(>10^{6}\) for at least one), use sparse=True to run per task 
 
 
 - get_probas()¶
- Two third strategy does not return soft labels. Defaults to - get_answers()- Raises:
- Warning – TwoThird agreement only returns hard labels, using get_answers() 
 
 - get_answers()¶
- Argmax of soft labels, in this case corresponds to a majority vote
- with two third consensus. If the consensus is not reached, a -1 is used as input. Additionally, if a dataset path is provided, tasks index with a -1 label are saved at - <dataset>/identification/twothird/too_hard.txt- CLI only: the - <dataset>key is the shared input between aggregation strategies used as follows
 - peerannot aggregate <dataset> --answers answers.json -s <strategy>`- Returns:
- Hard labels and None when no consensus is reached 
- Return type: