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.2.0.tar.gz (30.5 kB view details)

Uploaded Source

Built Distributions

evalica-0.2.0-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl (525.6 kB view details)

Uploaded PyPy musllinux: musl 1.1+ x86-64

evalica-0.2.0-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl (531.5 kB view details)

Uploaded PyPy musllinux: musl 1.1+ ARM64

evalica-0.2.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (354.2 kB view details)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

evalica-0.2.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (353.0 kB view details)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

evalica-0.2.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl (367.9 kB view details)

Uploaded PyPy manylinux: glibc 2.5+ i686

evalica-0.2.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl (307.3 kB view details)

Uploaded PyPy macOS 11.0+ ARM64

evalica-0.2.0-pp310-pypy310_pp73-macosx_10_12_x86_64.whl (321.8 kB view details)

Uploaded PyPy macOS 10.12+ x86-64

evalica-0.2.0-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl (525.9 kB view details)

Uploaded PyPy musllinux: musl 1.1+ x86-64

evalica-0.2.0-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl (531.6 kB view details)

Uploaded PyPy musllinux: musl 1.1+ ARM64

evalica-0.2.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (354.5 kB view details)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

evalica-0.2.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (353.1 kB view details)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

evalica-0.2.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl (369.4 kB view details)

Uploaded PyPy manylinux: glibc 2.5+ i686

evalica-0.2.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl (307.4 kB view details)

Uploaded PyPy macOS 11.0+ ARM64

evalica-0.2.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl (322.2 kB view details)

Uploaded PyPy macOS 10.12+ x86-64

evalica-0.2.0-cp38-abi3-win_amd64.whl (226.4 kB view details)

Uploaded CPython 3.8+ Windows x86-64

evalica-0.2.0-cp38-abi3-win32.whl (207.4 kB view details)

Uploaded CPython 3.8+ Windows x86

evalica-0.2.0-cp38-abi3-musllinux_1_1_x86_64.whl (527.1 kB view details)

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

evalica-0.2.0-cp38-abi3-musllinux_1_1_aarch64.whl (534.3 kB view details)

Uploaded CPython 3.8+ musllinux: musl 1.1+ ARM64

evalica-0.2.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (356.9 kB view details)

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

evalica-0.2.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (355.6 kB view details)

Uploaded CPython 3.8+ manylinux: glibc 2.17+ ARM64

evalica-0.2.0-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl (372.7 kB view details)

Uploaded CPython 3.8+ manylinux: glibc 2.5+ i686

evalica-0.2.0-cp38-abi3-macosx_11_0_arm64.whl (311.0 kB view details)

Uploaded CPython 3.8+ macOS 11.0+ ARM64

evalica-0.2.0-cp38-abi3-macosx_10_12_x86_64.whl (324.4 kB view details)

Uploaded CPython 3.8+ macOS 10.12+ x86-64

File details

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

File metadata

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

File hashes

Hashes for evalica-0.2.0.tar.gz
Algorithm Hash digest
SHA256 b3dc2a7114ca36e874236685025b7ec83e85749b9e09949f875f73c31594ecf6
MD5 d8a4bf9aa71d2e2191bb7bad964b3890
BLAKE2b-256 f3d22bdaf00df3eaf9fb0912f386c8ce793df900efba51d5cfe851af8eff32eb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.2.0-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 c4147a4171780e6807ef3dd6cba4cb19b379357faa9cb72c65f9c55b5bb6533b
MD5 5fd8183e58d19896ba3fc11a617bb8a0
BLAKE2b-256 e6028f722d80105ad60196bd585a7044501ba9f55055111d9d1e2a680161fb95

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.2.0-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 b68da71812333e9153bebbfba8d3beace4d94245c2a84f727dc2226a3e8334ec
MD5 caec8ae0fa156862b2f76cae07646f75
BLAKE2b-256 2175ad97b5837e0522ed1df712ca6ea8ac81cb61d63e0c961de8ddb185d5e455

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.2.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 08f50d871eea6184f8afe429631975b59c94349f55d4d25fc5443ff94578255e
MD5 311518c85184117d655442915e018887
BLAKE2b-256 c5829847bd3758e9e8e519aaabe059f35d1cb414299965b100512f84584cfe07

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.2.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1f57a8d741d40f12d9239907b80fd6fd78cea0da889aabaccfe4d6cca98fdc38
MD5 b9a58273147efd3ff62d8e6533ff890c
BLAKE2b-256 b513200cb0f056188439f3ed880382a6aa5027de5ce1987d607496c9d38fe2bc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.2.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 c74e9ae3e0602d86c4e532d96b40d7fa68b05fc04f71f0f5d7bd8b67cf065eeb
MD5 4996044fb278696b63ba77327d0692c8
BLAKE2b-256 114ffc4725515acd956537517fb65f3e7f220f4c8a3da04dcfc091f1db3b3c0f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.2.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 26bec72aaaada8309fca1b7478d1d3dfac3ba28b2ef5e1cc66fb221c897ccd42
MD5 231b03697fa1d9638b459ca791d51921
BLAKE2b-256 a435ca711dead32d851d6b4679b9f79b4397945ec7a8ea7aa8c4e06efb79c26c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.2.0-pp310-pypy310_pp73-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 e9d717ebc54becbec47675e7d033186e4d74affccf888b15fd25fec6b5693add
MD5 253c41fb02508ba2e4bb7de37326dcf9
BLAKE2b-256 6c51246a241ced808b0a870bdb26e337b903641239d809b6b5664336fe81ad67

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.2.0-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 d824bd2a0a01d5154b881d447fbde7054bc2095b919016f900bfec35ed125bc2
MD5 4b67c21726a29abd0db0717a03805fdc
BLAKE2b-256 bb37ca726e12693d0485f0a6d5b16fd0386ff25b8362c47d29d680008f992318

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.2.0-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 3fdd572602af81e7f4d02492aa32698f940272f2268f290a66b06a3e0fda4bb8
MD5 dbc659d410d1a199f8d94fbd8308072f
BLAKE2b-256 23d97b03bf45434eada1042d77fe4905995670c1640c83264e4bdedd2d54b1b0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.2.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a553e6909dd11acdb9c9683b360c20559ee62e585c35211372a759334e0d0c24
MD5 44058b15a224b722c1c0590dbb11b902
BLAKE2b-256 ccc30e12f36d67244cf903490dd433609bccfe8c4989a04494821a850c37f110

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.2.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8946efedaa909e109be54ba2ca746bd6af42cceb0e2ed195998b78ff01aaf55d
MD5 e9914ebd4bc582000841e963b77e6a55
BLAKE2b-256 28798baa6f07976ebc7b83747f6c7d44d22d76d946ada0a034e83431981d8525

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.2.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 30dac65b1db4f7ed47e64a9281f5c0d8998c28de8f50561798f682da5343d146
MD5 c6358e2cf7b98cd73dc02e12b34ecc17
BLAKE2b-256 665ccf53880846901e02baca97dddc4adcaf2d7474175a6c83a91a305a477a8c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.2.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4315a2a9be234a19282344d243021217f5f575705c0c25e628bf40bad157174c
MD5 c7e2c7a7663da8ca675d8baeb25d7668
BLAKE2b-256 162fcbc770600e190513ecebd98a1efc94965f4a5c9f34392f1ac74cf7df2ca4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.2.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 cdd3067086ef92aa9878992cd63d3d7d695b905eca2b5cc3e238a49c7cd5e47a
MD5 481cc27d0f4c7a8454e765c334890811
BLAKE2b-256 632aaff3ff45be8056fa673a08d7c429016cee2ad3d8692dd1d43c22c0a2a41e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: evalica-0.2.0-cp38-abi3-win_amd64.whl
  • Upload date:
  • Size: 226.4 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.2.0-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 4b8c1c89af3b60b86cce872931c36f2474e1c94c4018e8d3371771b1f401ae30
MD5 dd9922e389b63d1a7d52889bab24dd84
BLAKE2b-256 9a53454b6b97bbec64d79cbb5fd8dfdfdb88f700483eff0c60265869e0f5b652

See more details on using hashes here.

File details

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

File metadata

  • Download URL: evalica-0.2.0-cp38-abi3-win32.whl
  • Upload date:
  • Size: 207.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.2.0-cp38-abi3-win32.whl
Algorithm Hash digest
SHA256 31c0b18896e21bb461d4266dd0c344b4568d01328afef12705653a071a0d11bf
MD5 f3280ae6a8118efd3a4c5746841fc805
BLAKE2b-256 6a12b93063c1cd9015a33c1a8a7b44d3d49be9c898917391de3d487835bcb87f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.2.0-cp38-abi3-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 752647446260eedc4afc22d41482c4434ef6c93812e61e11ee8173501cb9c25f
MD5 5d044d94d0bbcb2f90c1781ee396de69
BLAKE2b-256 339986d21dcaab29bf2ac5d078064d79788ac222e251a19e1acd67871b411698

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.2.0-cp38-abi3-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 ad962515b5afdc1bbf8c4c351084c60e4181a3008c23405c0643952ebede1984
MD5 7600a9514e142722d6446d51fffc7e98
BLAKE2b-256 dc5c7048bed40fd32608d92d7553dd5f53d8e33151b1e81bf5df3544fe18b059

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.2.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1b4c6d5fc99c2419ace9c9690735be0554d7d9498d2f7119f9efa8a249b94830
MD5 22b8bed4a22ddd4e8afe06678dc50665
BLAKE2b-256 64c7754934ce275509257aacde08102f6a6e5f3a50fe451a298abca4be3d0aa6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.2.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b4241f7e068cb853ee0f75f1246026653ff645ef8894c8298ef2a3c710417eaa
MD5 d8c502c9d34b8418a3ffbb9223f4ee29
BLAKE2b-256 90cf5375b0407b3317e15502dc0426da6fe575847edb6e399bc22f4d12efe365

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.2.0-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 f806adff9a35f50be34f9a1bfe4048fe95643eace752c98efc54a8ae9db5f0bc
MD5 b8ecb9459877ffaad7c2dc4a6c957eec
BLAKE2b-256 b88258db778c71db1745bed38faad3a274fd0d272c6f459e31893aba995491fa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.2.0-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b39c6172fab66c8bb020c756f007536d8969c9f9cf577ba9a9a78e04dd48af22
MD5 1d422f080c6b8445ff536888619167ee
BLAKE2b-256 5e351143569d0e965f73c9e531f3ee9d83ba384969742f656f02f072a2fdb1a0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.2.0-cp38-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 9f2e60f1615348b2b3abf7a9ed10f8483eb620ad8439e0a5bfa94dc2b3b5897f
MD5 bea5d47f6fbe64aa07a2e901dcb87d3c
BLAKE2b-256 7edea1b195fded5ee899c2d44e3d9376b12b5ec2d6dfa6d854489f2c7d89b338

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