Skip to main content

Evalica, your favourite evaluation toolkit.

Project description

Evalica, your favourite evaluation toolkit

Evalica

Tests Read the Docs PyPI Version Anaconda.org Codecov CodSpeed Badge

Evalica is a Python library that transforms pairwise comparisons into ranked lists of items. It offers convenient high-performant Rust implementations of the corresponding methods via PyO3, and additionally provides naïve Python code for most of them. Evalica is fully compatible with NumPy arrays and pandas data frames.

The logo was created using Recraft.

Installation

  • pip: pip install evalica
  • Anaconda: conda install conda-forge::evalica

Usage

Imagine that we would like to rank the different meals and have the following dataset of three comparisons produced by food experts.

Item X Item Y Winner
pizza burger x
burger sushi y
pizza sushi tie

Given this hypothetical example, Evalica takes these three columns and computes the outcome of the given pairwise comparison according to the chosen model. Note that the first argument is the column Item X, the second argument is the column Item Y, and the third argument corresponds to the column Winner.

>>> from evalica import elo, Winner
>>> result = elo(
...     ['pizza', 'burger', 'pizza'],
...     ['burger', 'sushi', 'sushi'],
...     [Winner.X, Winner.Y, Winner.Draw],
... )
>>> result.scores
pizza     1014.972058
burger     970.647200
sushi     1014.380742
Name: elo, dtype: float64

As a result, we obtain Elo scores of our items. In this example, pizza was the most favoured item, sushi was the runner-up, and burger was the least preferred item.

Item Score
pizza 1014.97
burger 970.65
sushi 1014.38

Command-Line Interface

Evalica also provides a simple command-line interface, allowing the use of these methods in shell scripts and for prototyping.

$ evalica -i food.csv bradley-terry
item,score,rank
Tacos,0.43428827947351706,1
Sushi,0.19060105855071743,2
Burger,0.14797720376982199,3
Pasta,0.12815347866987045,4
Pizza,0.0989799795360731,5

Refer to the food.csv file as an input example.

Implemented Methods

Method In Python In Rust
Counting
Average Win Rate
Bradley–Terry
Elo
Eigenvalue
PageRank
Newman

Copyright

Copyright (c) 2024 Dmitry Ustalov. See LICENSE for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

evalica-0.1.2.tar.gz (28.4 kB view details)

Uploaded Source

Built Distributions

evalica-0.1.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl (520.9 kB view details)

Uploaded PyPy musllinux: musl 1.1+ x86-64

evalica-0.1.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl (525.6 kB view details)

Uploaded PyPy musllinux: musl 1.1+ ARM64

evalica-0.1.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (350.1 kB view details)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

evalica-0.1.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (347.3 kB view details)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

evalica-0.1.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl (361.3 kB view details)

Uploaded PyPy manylinux: glibc 2.5+ i686

evalica-0.1.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl (302.2 kB view details)

Uploaded PyPy macOS 11.0+ ARM64

evalica-0.1.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl (317.0 kB view details)

Uploaded PyPy macOS 10.12+ x86-64

evalica-0.1.2-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl (521.0 kB view details)

Uploaded PyPy musllinux: musl 1.1+ x86-64

evalica-0.1.2-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl (525.4 kB view details)

Uploaded PyPy musllinux: musl 1.1+ ARM64

evalica-0.1.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (350.2 kB view details)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

evalica-0.1.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (347.2 kB view details)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

evalica-0.1.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl (363.2 kB view details)

Uploaded PyPy manylinux: glibc 2.5+ i686

evalica-0.1.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl (302.3 kB view details)

Uploaded PyPy macOS 11.0+ ARM64

evalica-0.1.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl (317.4 kB view details)

Uploaded PyPy macOS 10.12+ x86-64

evalica-0.1.2-cp38-abi3-win_amd64.whl (220.7 kB view details)

Uploaded CPython 3.8+ Windows x86-64

evalica-0.1.2-cp38-abi3-win32.whl (202.4 kB view details)

Uploaded CPython 3.8+ Windows x86

evalica-0.1.2-cp38-abi3-musllinux_1_1_x86_64.whl (523.6 kB view details)

Uploaded CPython 3.8+ musllinux: musl 1.1+ x86-64

evalica-0.1.2-cp38-abi3-musllinux_1_1_aarch64.whl (528.2 kB view details)

Uploaded CPython 3.8+ musllinux: musl 1.1+ ARM64

evalica-0.1.2-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (352.5 kB view details)

Uploaded CPython 3.8+ manylinux: glibc 2.17+ x86-64

evalica-0.1.2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (349.9 kB view details)

Uploaded CPython 3.8+ manylinux: glibc 2.17+ ARM64

evalica-0.1.2-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl (364.0 kB view details)

Uploaded CPython 3.8+ manylinux: glibc 2.5+ i686

evalica-0.1.2-cp38-abi3-macosx_11_0_arm64.whl (304.5 kB view details)

Uploaded CPython 3.8+ macOS 11.0+ ARM64

evalica-0.1.2-cp38-abi3-macosx_10_12_x86_64.whl (319.7 kB view details)

Uploaded CPython 3.8+ macOS 10.12+ x86-64

File details

Details for the file evalica-0.1.2.tar.gz.

File metadata

  • Download URL: evalica-0.1.2.tar.gz
  • Upload date:
  • Size: 28.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.5

File hashes

Hashes for evalica-0.1.2.tar.gz
Algorithm Hash digest
SHA256 3f9b8feb2aa1881c62f665f874f450ab24736b2394de7395520975332ebeff1d
MD5 e628669f0997b5de97b679b7e9ac34b0
BLAKE2b-256 7211de701e4e1e5200a0d9aa5b818639372028cfd981843ff2117446053cae3c

See more details on using hashes here.

File details

Details for the file evalica-0.1.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for evalica-0.1.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 883f7f1c1141a656745089f05d4755346bd764977ff0208211d046a9b45139c7
MD5 b080963f5939863a43499adb601fedc4
BLAKE2b-256 9be1d1c3ea5c57cd39e4991ae68b1e1ecccef96c8701ca08cb5df9336c420b0c

See more details on using hashes here.

File details

Details for the file evalica-0.1.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for evalica-0.1.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 358514723fb3ff0e37a5f96d2a6f5b12835fe1d592dfdd715c3ab7429f1e9e67
MD5 332a6277e6ca894c4433adc8f2fda5cf
BLAKE2b-256 b65a8a826377e5c08d20848a917cd708416bde2f85f982fb77594e5b16e2bfe6

See more details on using hashes here.

File details

Details for the file evalica-0.1.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for evalica-0.1.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 dc7346e6acf248e3fda85027c7269f0d2f54d4528e641739277b899c391ec7b8
MD5 df8256e80cb0bed790b8da748cc1c0ea
BLAKE2b-256 a740aee0e2a69f6b16c7439e774c3b23970b53ed98969d9ce4db9815b7e7a1f8

See more details on using hashes here.

File details

Details for the file evalica-0.1.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for evalica-0.1.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 783b2735740188fc2c5ffa8669b87d8a2486baf20bdaf6bcb06551acd0bddafb
MD5 4d5ad122597c7c3507062544347a999e
BLAKE2b-256 0ad1c347f5d0dcc8d6c4fcd94848496425f7f245f1aa94b043dcd578305d7e13

See more details on using hashes here.

File details

Details for the file evalica-0.1.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for evalica-0.1.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 12b357ef93cdfbf394c3a232bcb1687516215005caf8a94a92ba44caf2de6c55
MD5 eaffbfffb6cab984e90fdb88111c6a65
BLAKE2b-256 d66b4065baff0009f60c5af53c34d61d482ab313f8700624d83e035f816ef0e8

See more details on using hashes here.

File details

Details for the file evalica-0.1.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for evalica-0.1.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 56e1e01475d6f1377d85461e58ad5aad4cd53a6098fcc75af8761d303758d2d7
MD5 a698174474fb6eebfda86f6813af0462
BLAKE2b-256 f91b65b91cb1b0e72526b8def06fa8942b4e4403fba6227a5a1230975c2af3e6

See more details on using hashes here.

File details

Details for the file evalica-0.1.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for evalica-0.1.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 5726b6ffb4b2873706c028d1d254c7219354207b2eef2da3962a850c40f2d8ec
MD5 4cd42eb782ccb710d6694abf3f709bc9
BLAKE2b-256 3b7ba9a8303a21ca819379762a8d9163c163421f412fb188048a93c2eea27a0c

See more details on using hashes here.

File details

Details for the file evalica-0.1.2-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for evalica-0.1.2-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 03dd3bea5f371e073e167d63532bec8975e82fd28fe765c97bf9ba195b9ebb00
MD5 f95e941a022d73fbb5d4b72847ccc913
BLAKE2b-256 d7c7829eaa08ce7a53027300dd1139aadbf0849e885fb11c11ca721e37752f5f

See more details on using hashes here.

File details

Details for the file evalica-0.1.2-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for evalica-0.1.2-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 a0a23c228e198355bdc1890715a93c9f8051fef61028a4a4824a24522139c265
MD5 58ff4a6541f0c0a1cc2be9490aed79af
BLAKE2b-256 e2feae9a577fef888a0dcb3eefe976e224c269590810a057035c45123106920f

See more details on using hashes here.

File details

Details for the file evalica-0.1.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for evalica-0.1.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a1a82579385c123a63239b87f6e726ad4e4b58171938cc869b489fe24ee9ed98
MD5 f264c6f6104891f2c5074ef2af356830
BLAKE2b-256 0083889b47336484fcb5b35ecb6582724b8a42d4b84443ea020d1559e4e1bc4d

See more details on using hashes here.

File details

Details for the file evalica-0.1.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for evalica-0.1.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9c5e4f78b730854ebff4c928d99ebd99a57a381b90c592df2d339dd45ac97667
MD5 8f62b3f6f8a40368d6914efeac0fb8ef
BLAKE2b-256 304dc1ccde8fff6c00c56a7124ee9272ca2bb621a24dee27fa264c7e9f88fe48

See more details on using hashes here.

File details

Details for the file evalica-0.1.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for evalica-0.1.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 018c3e1c2a44fa8006b4f0a27365a8a57990b8109451e7bbc656f353a4367d9b
MD5 c23d8a31f3c055c3f7bd95f07893da38
BLAKE2b-256 2b381cbbf354f19fc51463a630f5c9328f6ddc5e6ad27ee73db931ce17398a8f

See more details on using hashes here.

File details

Details for the file evalica-0.1.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for evalica-0.1.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1a22455b74e7c7e460182af3f91a229c98452afcd322d0ce3d7c5534a04e3d6d
MD5 d97594924b181dcfba2c312107f5285e
BLAKE2b-256 2edda9b102dcbe4d4b84a9a1aa8cdb1b2c694c157690aabc602875f03272685f

See more details on using hashes here.

File details

Details for the file evalica-0.1.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for evalica-0.1.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 5ef772eceaefce4d34711562b2e3ae931b12fb7158242f26fe62bb2a16970a3d
MD5 8e720a21737c6d575a5fc552910bd032
BLAKE2b-256 de28fcf36fdeeb451263d2d613cfd68fd4fa86f1291be6c66dcf43a2b98c5f9a

See more details on using hashes here.

File details

Details for the file evalica-0.1.2-cp38-abi3-win_amd64.whl.

File metadata

  • Download URL: evalica-0.1.2-cp38-abi3-win_amd64.whl
  • Upload date:
  • Size: 220.7 kB
  • Tags: CPython 3.8+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.5

File hashes

Hashes for evalica-0.1.2-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 e52896da92d0a3f8579e2732b37c74ff13a7923e96b56f335ab47ed4e1c40276
MD5 73b541dc0086b4cb3838203a27f1c0ed
BLAKE2b-256 311666a563614c11fc2afd6753339d9e1b609b017647ffb85a4eb3ec36afb040

See more details on using hashes here.

File details

Details for the file evalica-0.1.2-cp38-abi3-win32.whl.

File metadata

  • Download URL: evalica-0.1.2-cp38-abi3-win32.whl
  • Upload date:
  • Size: 202.4 kB
  • Tags: CPython 3.8+, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.5

File hashes

Hashes for evalica-0.1.2-cp38-abi3-win32.whl
Algorithm Hash digest
SHA256 28c4db369a9751ae649bee5d2a65703722fb28f9c89f98e2afd6d79984721220
MD5 391cb92bdb1ee47c58092124a03c3e4c
BLAKE2b-256 86e470dca7cc207fa8c4082d92359cf2fc1f880ee6a41631f1b463cac9d7af99

See more details on using hashes here.

File details

Details for the file evalica-0.1.2-cp38-abi3-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for evalica-0.1.2-cp38-abi3-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 8f1958b61d90a281d64638c958e2b855211abeae8498f1e5fe8fa5f54f2bd91b
MD5 6ea88ea9405122552956008147e15e74
BLAKE2b-256 58cc364646963d4d03a4547d073a9dd4c268c6772c9a54608824f6a0ce41c1c7

See more details on using hashes here.

File details

Details for the file evalica-0.1.2-cp38-abi3-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for evalica-0.1.2-cp38-abi3-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 f32319017f51a53acee5ed55535c5351e4eaf7a87d683038b8b4f59901860671
MD5 aea82fa89da8ee80b1bb0f235f74308b
BLAKE2b-256 461f12f6975c658317bc7060433bd39522a1dbf836509a8c1ae6956aff4e8ec1

See more details on using hashes here.

File details

Details for the file evalica-0.1.2-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for evalica-0.1.2-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8f13734c559db69f34ac80b41ac8a90a42a6e27d7bfe9fcc5f29ee9d7e0ebaae
MD5 b603abc19a791705fb067b0fb5b1a470
BLAKE2b-256 6ee0b8bf5df68360844e50336df23259f5bc32228106e63c9f0bc56af9f9223c

See more details on using hashes here.

File details

Details for the file evalica-0.1.2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for evalica-0.1.2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 26a536b5fd79715f666cf05350fbe098482eb1ca6d214d282978292434cbb4a4
MD5 b2664ddee13289b4255c51eb28e8eed4
BLAKE2b-256 0e22f5c3ae56f57aab0048933041132970fa81f40cf1bb30a29ca3bf786e8b34

See more details on using hashes here.

File details

Details for the file evalica-0.1.2-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for evalica-0.1.2-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 de504fa437593454be366014ab73bb77939d11d89d71b9768d8eb50cd3617f22
MD5 c1e559f97a25c0e9af587009c4c79bb8
BLAKE2b-256 04a60dc4567e6e915b3feb2c0ac7ba8a1a298f88a4e9d048ccd1b3ab6ca5f5ac

See more details on using hashes here.

File details

Details for the file evalica-0.1.2-cp38-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for evalica-0.1.2-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dc53331fe9be53e5d3fe064069b8ad1e9c395487674b0b3e09ed705555a51556
MD5 9a161614b9eff06f9b9f9cf41baf2309
BLAKE2b-256 f5b2ca8e989254daa04626f084357d3e1920b1b21c7eff2d7d72f410cb44f679

See more details on using hashes here.

File details

Details for the file evalica-0.1.2-cp38-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for evalica-0.1.2-cp38-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 6cca7fe22d53736831bb32a1c17c5d8c35d9ce3ff46505ec4b49f230de36c722
MD5 217949e77b6360696f3133a64068ef82
BLAKE2b-256 6ddd3563ea13b1e389c26ccab161ac60579433c059a8aec6f63b82a7880ca66c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page