From 3d2263253297f147decd51859f40da8141beea46 Mon Sep 17 00:00:00 2001 From: ASPP Student Date: Tue, 3 Sep 2019 11:39:47 +0200 Subject: [PATCH 1/2] Fixed issue#2 --- .../pyanno_voting/pyanno/tests/test_voting.py | 8 ++++++++ hands_on/pyanno_voting/pyanno/voting.py | 18 ++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/hands_on/pyanno_voting/pyanno/tests/test_voting.py b/hands_on/pyanno_voting/pyanno/tests/test_voting.py index f21a10c..9ef60c3 100644 --- a/hands_on/pyanno_voting/pyanno/tests/test_voting.py +++ b/hands_on/pyanno_voting/pyanno/tests/test_voting.py @@ -41,3 +41,11 @@ def test_majority_vote_empty_item(): expected = [1, MV, 2] result = voting.majority_vote(annotations) assert result == expected + + +def test_labels_frequency(): + + result = voting.labels_frequency([[1, 1, 2], [MV, 1, 2]], 4) + expected = np.array([ 0. , 0.6, 0.4, 0. ]) + + np.testing.assert_array_equal(result, expected) \ No newline at end of file diff --git a/hands_on/pyanno_voting/pyanno/voting.py b/hands_on/pyanno_voting/pyanno/voting.py index d5b5747..a461e08 100644 --- a/hands_on/pyanno_voting/pyanno/voting.py +++ b/hands_on/pyanno_voting/pyanno/voting.py @@ -100,3 +100,21 @@ def labels_frequency(annotations, nclasses): freq[k] is the frequency of elements of class k in `annotations`, i.e. their count over the number of total of observed (non-missing) elements """ + + annotations = np.asarray(annotations) + nitems = annotations.shape[0] + valid = annotations != MISSING_VALUE + + annotations_without_mv = annotations[valid] + + unique, counts = np.unique(annotations_without_mv, return_counts=True) + + output = np.zeros(nclasses) + j = 0 + for i in range(nclasses): + if i in unique: + output[i] = counts[j] / sum(counts) + j += 1 + + return(output) + From 43beb79f2fbec0c03c4c3b9177af18deb24f34fa Mon Sep 17 00:00:00 2001 From: ASPP Student Date: Tue, 3 Sep 2019 11:51:14 +0200 Subject: [PATCH 2/2] adding new line --- hands_on/pyanno_voting/pyanno/tests/test_voting.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/hands_on/pyanno_voting/pyanno/tests/test_voting.py b/hands_on/pyanno_voting/pyanno/tests/test_voting.py index 9ef60c3..2cbf4de 100644 --- a/hands_on/pyanno_voting/pyanno/tests/test_voting.py +++ b/hands_on/pyanno_voting/pyanno/tests/test_voting.py @@ -44,8 +44,7 @@ def test_majority_vote_empty_item(): def test_labels_frequency(): - result = voting.labels_frequency([[1, 1, 2], [MV, 1, 2]], 4) expected = np.array([ 0. , 0.6, 0.4, 0. ]) + np.testing.assert_array_equal(result, expected) - np.testing.assert_array_equal(result, expected) \ No newline at end of file