Add accuracy, precision, recall and F1 metrics
{'login': 'jplu', 'id': 959590, 'node_id': 'MDQ6VXNlcjk1OTU5MA==', 'avatar_url': 'https://avatars.githubusercontent.com/u/959590?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jplu', 'html_url': 'https://github.com/jplu', 'followers_url': 'https://api.github.com/users/jplu/followers', 'following_url': 'https://api.github.com/users/jplu/following{/other_user}', 'gists_url': 'https://api.github.com/users/jplu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jplu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jplu/subscriptions', 'organizations_url': 'https://api.github.com/users/jplu/orgs', 'repos_url': 'https://api.github.com/users/jplu/repos', 'events_url': 'https://api.github.com/users/jplu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jplu/received_events', 'type': 'User', 'site_admin': False}
[]
[]
This PR adds several single metrics, namely:

- Accuracy
- Precision
- Recall
- F1

They all uses under the hood the sklearn metrics of the same name. They allow different useful features when training a multilabel/multiclass model:
- have a macro/micro/per label/weighted/binary/per sample score
- score only the selected labels (usually what we call the positive labels) and ignore the negative ones. For example in case of a Named Entity Recognition task, positive labels are (`PERSON`, `LOCATION` or `ORGANIZATION`) and the negative one is `O`.
{'url': 'https://api.github.com/repos/huggingface/datasets/issues/825/reactions', 'total_count': 1, '+1': 1, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}
{'url': 'https://api.github.com/repos/huggingface/datasets/pulls/825', 'html_url': 'https://github.com/huggingface/datasets/pull/825', 'diff_url': 'https://github.com/huggingface/datasets/pull/825.diff', 'patch_url': 'https://github.com/huggingface/datasets/pull/825.patch', 'merged_at': '2020-11-11T19:23:43Z'}