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 [ɛˈʋalit͡sa] (eh-vah-lee-tsah) 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,2.509025136024378,1
Sushi,1.1011561298265815,2
Burger,0.8549063627182466,3
Pasta,0.7403814336665869,4
Pizza,0.5718366915548537,5

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

Web Application

Evalica has a built-in Gradio application that can be launched as python3 -m evalica.gradio. Please ensure that the library was installed as pip install evalica[gradio].

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

Uploaded Source

Built Distributions

evalica-0.3.0-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl (527.1 kB view details)

Uploaded PyPy musllinux: musl 1.1+ x86-64

evalica-0.3.0-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl (532.6 kB view details)

Uploaded PyPy musllinux: musl 1.1+ ARM64

evalica-0.3.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (356.5 kB view details)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

evalica-0.3.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (355.4 kB view details)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

evalica-0.3.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl (371.0 kB view details)

Uploaded PyPy manylinux: glibc 2.5+ i686

evalica-0.3.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl (306.3 kB view details)

Uploaded PyPy macOS 11.0+ ARM64

evalica-0.3.0-pp310-pypy310_pp73-macosx_10_12_x86_64.whl (322.3 kB view details)

Uploaded PyPy macOS 10.12+ x86-64

evalica-0.3.0-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl (527.4 kB view details)

Uploaded PyPy musllinux: musl 1.1+ x86-64

evalica-0.3.0-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl (533.1 kB view details)

Uploaded PyPy musllinux: musl 1.1+ ARM64

evalica-0.3.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (356.9 kB view details)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

evalica-0.3.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (355.7 kB view details)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

evalica-0.3.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl (371.3 kB view details)

Uploaded PyPy manylinux: glibc 2.5+ i686

evalica-0.3.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl (307.0 kB view details)

Uploaded PyPy macOS 11.0+ ARM64

evalica-0.3.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl (322.7 kB view details)

Uploaded PyPy macOS 10.12+ x86-64

evalica-0.3.0-cp38-abi3-win_amd64.whl (225.4 kB view details)

Uploaded CPython 3.8+ Windows x86-64

evalica-0.3.0-cp38-abi3-musllinux_1_1_x86_64.whl (527.9 kB view details)

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

evalica-0.3.0-cp38-abi3-musllinux_1_1_aarch64.whl (533.7 kB view details)

Uploaded CPython 3.8+ musllinux: musl 1.1+ ARM64

evalica-0.3.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (357.6 kB view details)

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

evalica-0.3.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (356.5 kB view details)

Uploaded CPython 3.8+ manylinux: glibc 2.17+ ARM64

evalica-0.3.0-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl (372.3 kB view details)

Uploaded CPython 3.8+ manylinux: glibc 2.5+ i686

evalica-0.3.0-cp38-abi3-macosx_11_0_arm64.whl (307.6 kB view details)

Uploaded CPython 3.8+ macOS 11.0+ ARM64

evalica-0.3.0-cp38-abi3-macosx_10_12_x86_64.whl (323.7 kB view details)

Uploaded CPython 3.8+ macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: evalica-0.3.0.tar.gz
  • Upload date:
  • Size: 31.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for evalica-0.3.0.tar.gz
Algorithm Hash digest
SHA256 07a4f5ef750fa652254a517389b66b2cdbba46420fc3e2ea600dd74595463fe3
MD5 d9874ec53f1f06cc51a66b1bf6759688
BLAKE2b-256 14ddffe6c9b3fb9a39d2d90ec5ddd8cb4cf0cc0b28f7866ece5aa1f7fef45d12

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.3.0-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 9833d13594473404e70b6d70d0012cf1257d9bf682c9482cdc9bb4b9518081b6
MD5 89ea02816841e0fc30cd51062d7a53fa
BLAKE2b-256 e922038c97e368e326d85e99da3c3e340642fe25bdc46906f9cecb4ef6544db8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.3.0-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 4cf06fa2719b6fc0ee073bc16f3433eab5dd57387616c1888ef0a68671d43270
MD5 2943ea5492e23277833a4ea8a9cfc0f8
BLAKE2b-256 1fe6fa81d5083df36b1aa9126784f7c40776fb4468d0a8b6d29bac03a504a91b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.3.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 30bc904cf88ae1a03a70972bc9438ee574c83a162c771b7fd194ce6ae1774968
MD5 0084fa7c2e3de939f83001ddcfd82cf6
BLAKE2b-256 f110b18ef7c5bbb9880a69b0d355ed2ed8e0e1b8c2e23b89b0f80c2e1cf6c7af

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.3.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3e370fe3f71b67d246d39ee0629a74adbb8b9a151e71600707bab8c16906dfb2
MD5 86e493bbf6c95744444827fea829e262
BLAKE2b-256 27eac562b394dcd0830d57285f9895649b05e8340c7192828e7bcf31e4720ac0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.3.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 6543129e6abc507102ac0f07061eb66281a7290963e31ba0f98d4f70406d277d
MD5 bc1e9b8b3fc4c2b54c82056fce7b17b9
BLAKE2b-256 874b6f8ea6030f2048e1bb3f30e548ad7994cc84335ab8572f2d242dab104d98

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.3.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c653d3d18cec5aca917d5c6d0cde01c704274ecbbe84ac469437e9d54eb176f1
MD5 baab0f6661a78806c20ff65931adc252
BLAKE2b-256 300628be6dfe60654956a0d8a90c49505b9af61ab1d835713fbf111c66a629d7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.3.0-pp310-pypy310_pp73-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 e05b15b1feb6fcc34686d171d4004f167eb2b61ee36eb5f7885bfcc8e2f1b5cf
MD5 dfdf5ee453a9d315fcad78fa4f908b20
BLAKE2b-256 984350ae6c81cb9f1f1e334275759a02bd045e6041971abf09586d55d4781c09

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.3.0-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 6feec2385dbcc750e62e3e4a7d74d349c7950be2d6b4d084fa36f1df615d8514
MD5 fc044a3d66df5ccfe60141f5d6b1fc22
BLAKE2b-256 46758dc8c087e4427b94a1ae722ed28036f82e6fcff7482833caf377b9a47f8e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.3.0-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 56c1db4bc465ceb924e1f52970681b88edf8d85849b0802e5ff693b590f966e4
MD5 630d7d081b8c23d3f335befa40a49e6b
BLAKE2b-256 13c3cad556071b278beeb1bdc40ed1db959a2b690f23ce1fb8cddc7d30f3f2f8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.3.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c83b6800d38fa6b9d775e43dd4d7a5f554b2cff0865dc0908ee8beac2726c1e5
MD5 1501b1b2543319982af69edf3ad3705f
BLAKE2b-256 5c5b86116d8cfb5a3c6d9c86c97fa138be48b6d3f0934479b751166ecea86525

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.3.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a57db8e2a51853722878f9a12390c0741d78d0912ec5c56ca77a500b874bab5b
MD5 202c37d5c4318ce2b2fb493bebdf8c68
BLAKE2b-256 ac25c0d450ae15d828d2c3687202c3547e1f7472b2d4915634a61c61ea68d385

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.3.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 a74af27380a3201aa1f7fd7b15fe65a72d166f08ffdb949e476f05d08aa53f51
MD5 996aeacb6da4bd57f38760b65aa13d9d
BLAKE2b-256 1a5b665a1d26b170502bbec452acf8d9d403fd06e5f16752a97e96dbb389587c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.3.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b4e0d23c41e9ba9377e9fdf4ccefd51d36ed3aac4fa164d10acaa7a2a7527c7d
MD5 6ca1be3442641a7b1821f360ea38182e
BLAKE2b-256 83ad5222616f88e08d589f6aac85f268ccc9940940b26b467977f346447fc184

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.3.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 b31d359b3841566da80cd9f4e33f79e22edf36d5a8d82443b43b3d5b9eb30799
MD5 3096d8c898c50c81b5f9afad2574a88b
BLAKE2b-256 35d85344ecc59a776f90186e47a52d4c8fdc00c3d3b35c35ebbafb3f49cc4ed0

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for evalica-0.3.0-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 b672c5eaee9e118223d61eba35108105c24d82fc043d85d61507d3461e5e45bc
MD5 4c120df24d3ec9fd2a5bbf871fe85254
BLAKE2b-256 2e730a4bd8e3211c53aff60103be542bfa2c561d5393b973a8b0b81b56c24ca3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.3.0-cp38-abi3-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 0b92e4f52a496851028022eb2a01c037f67dc19f654bf73803d2b0b53d52a741
MD5 ee0e4240b56b26f0249ebdfc3841290b
BLAKE2b-256 d617b2dc6374ef5e7692e78b9d3da2ad8eccc2b32cd3ec119f3779ca655e2321

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.3.0-cp38-abi3-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 87d61e9cd4840739799e4dc8c5342bd2164f79369e6392c68561e9531afd54bb
MD5 6202d6c04ce495724a07e6f1373379f3
BLAKE2b-256 ae74b36f79e827e9f7a71071fe75c8aaaf2e1a5089c2453d21759c7411723890

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.3.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c521b2d119db44abcf1d40542e4617846b26f3fe18148b2efef95f2a5c83eb6e
MD5 90f26c5bdf34894768229b4c27b58a53
BLAKE2b-256 ba61d73df34f7216e26d0523ade4cda1b0ca8d55a950bb3f917a4ca694473110

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.3.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7ad276363e283e1219b8531a4e1ee9d3403e8941bcebadc0abd1e97d6f9d6089
MD5 2180508635b09947355932f71e59598d
BLAKE2b-256 fe84165b8656618bae1794d73697ea19763faf1c58b6050e1b44a414f5a72437

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.3.0-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 f0572216bb838aa641a530c46c0238d077adbdf6f206bbb71c2471d334450d97
MD5 7a78c87a87d1e3356e92cbe4a3be3fb3
BLAKE2b-256 db4b32202966abc9780c3833116605e3df78e30c6739840f123b9f9317dc279f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.3.0-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0771d48d4479ba0dd8e9b8a6e88761d88664657585923407a1a4f352eb7095fe
MD5 3dbb4840c6e60a13b1c88e05cd381fe3
BLAKE2b-256 7671e4bc77cfd99401fd60685267735091d9147c4defaf6a186f9adf4e6b5939

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.3.0-cp38-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 01d509fff530f839256153101e0d69e97a686a28800b0b30b5bd818ebc10589c
MD5 c2003121189b3977b61d7b6ce53d61ef
BLAKE2b-256 b1ac15d87280d1e8deb0d8b7a47cfe69b73a8e40846735bede7e41fee24a823c

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