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

Uploaded Source

Built Distributions

evalica-0.1.3-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl (524.5 kB view details)

Uploaded PyPy musllinux: musl 1.1+ x86-64

evalica-0.1.3-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl (528.9 kB view details)

Uploaded PyPy musllinux: musl 1.1+ ARM64

evalica-0.1.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (353.0 kB view details)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

evalica-0.1.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (350.5 kB view details)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

evalica-0.1.3-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl (365.9 kB view details)

Uploaded PyPy manylinux: glibc 2.5+ i686

evalica-0.1.3-pp310-pypy310_pp73-macosx_11_0_arm64.whl (305.0 kB view details)

Uploaded PyPy macOS 11.0+ ARM64

evalica-0.1.3-pp310-pypy310_pp73-macosx_10_12_x86_64.whl (320.8 kB view details)

Uploaded PyPy macOS 10.12+ x86-64

evalica-0.1.3-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl (524.7 kB view details)

Uploaded PyPy musllinux: musl 1.1+ x86-64

evalica-0.1.3-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl (528.9 kB view details)

Uploaded PyPy musllinux: musl 1.1+ ARM64

evalica-0.1.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (353.2 kB view details)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

evalica-0.1.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (350.7 kB view details)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

evalica-0.1.3-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl (367.4 kB view details)

Uploaded PyPy manylinux: glibc 2.5+ i686

evalica-0.1.3-pp39-pypy39_pp73-macosx_11_0_arm64.whl (305.2 kB view details)

Uploaded PyPy macOS 11.0+ ARM64

evalica-0.1.3-pp39-pypy39_pp73-macosx_10_12_x86_64.whl (321.3 kB view details)

Uploaded PyPy macOS 10.12+ x86-64

evalica-0.1.3-cp38-abi3-win_amd64.whl (223.0 kB view details)

Uploaded CPython 3.8+ Windows x86-64

evalica-0.1.3-cp38-abi3-win32.whl (205.4 kB view details)

Uploaded CPython 3.8+ Windows x86

evalica-0.1.3-cp38-abi3-musllinux_1_1_x86_64.whl (526.1 kB view details)

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

evalica-0.1.3-cp38-abi3-musllinux_1_1_aarch64.whl (532.1 kB view details)

Uploaded CPython 3.8+ musllinux: musl 1.1+ ARM64

evalica-0.1.3-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (355.6 kB view details)

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

evalica-0.1.3-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (353.4 kB view details)

Uploaded CPython 3.8+ manylinux: glibc 2.17+ ARM64

evalica-0.1.3-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl (370.3 kB view details)

Uploaded CPython 3.8+ manylinux: glibc 2.5+ i686

evalica-0.1.3-cp38-abi3-macosx_11_0_arm64.whl (308.3 kB view details)

Uploaded CPython 3.8+ macOS 11.0+ ARM64

evalica-0.1.3-cp38-abi3-macosx_10_12_x86_64.whl (323.2 kB view details)

Uploaded CPython 3.8+ macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: evalica-0.1.3.tar.gz
  • Upload date:
  • Size: 29.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.3.tar.gz
Algorithm Hash digest
SHA256 bb15a4ec57e222da33967324eb4e2275b98a2f2ba583d7d40c7b2168caf988ac
MD5 74d2f6be1211cf949b8870a82b1149bd
BLAKE2b-256 2879d42d3d7a99b429187ab1c1f9254605cae77d77b25420cad790034743c1b5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.1.3-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 39cfecbf6c2981a9ab9036db72eb5db743c538d8a7d1d9d862fa32ab515c613e
MD5 1ae14b6927c23dbb2795c37407b01a96
BLAKE2b-256 02d192f75efceec30351e9575c9ea0da7280320f1285a5a2e0fefdc1814fa5fe

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.1.3-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 00fa67d189988e2378b2d32781b9ecc2dad5f8badf1bd17674af72627b155579
MD5 73b21ee71aeed20396316c203457915c
BLAKE2b-256 e621e94e76beb6c03dbf126bd57e7be15cf5fdb2b1ca293198130eb3472613e8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.1.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 50b8f98df540702f9264a1d7bcb65a60dd908672803a5ab42ea3af35d480f293
MD5 68bd9538f3a47a0070ccc9f971d27528
BLAKE2b-256 d05993c6b5ed8bf925ddf21c68f102c627f497f00798b2d9fbf8c1b50b95919e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.1.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2b9e3ed45f349826613f20df400cebcfc21f20698a18930bed47cf9e484ca4ff
MD5 44a7e7d23ede7da7dea881f8afd145a1
BLAKE2b-256 f456c6a261398c20460002a431d7f846e151c1c339f509741d1b6cde682606e6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.1.3-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 cef7739f50450cdd798862a64a04f98cf0318d24dd4a7df39ea39031cda2efae
MD5 5eca2b986b538e58ab6b9c4535183953
BLAKE2b-256 34e784ef8d9292f2658f3efd0ad94a783d25d3e5e0f88568be1cdfc4a56f3dfb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.1.3-pp310-pypy310_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9c2d9efc3bc1764ba85010b77afc52c73717bc0aebca2f18e829e70c890b7aff
MD5 8c3a8cdd320b8f34e02335e2d8e6abd3
BLAKE2b-256 1a593e4f5185ef1c22327c412a358a19181c946c80bb96cb585ffbabfbf41137

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.1.3-pp310-pypy310_pp73-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 92e804b777b9df251091749bd4bb8eb553f2634fa0265a678ea059a274a56fcc
MD5 0b23587dcd246126dcf8487bac51e5dd
BLAKE2b-256 96b21f3063a6e62709882f400cef73e81714c281ee03af884e25b8a45d8a28d6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.1.3-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 b13b95959f86175141735ba8e4c460441b96cfa9480f98de5185b36127dc2838
MD5 80e4f2d7ea575f466747b1f375955f45
BLAKE2b-256 c60f9ac6cd7b3ee12e6da7fff34249766e6e5299916b44f6a33f0f6e6b33dcfc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.1.3-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 cd591c65888634c2aec60bb2dd547bbedb506d8137662bf3ec7dc25705dabc0c
MD5 ae948eeb59833c216830defc6003fd4e
BLAKE2b-256 9a40f1ae57330e16389de01d2e187bf1e292ee42868e170f8ee62b653fd9bf77

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.1.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6c37482b8b6f036bfd1524dd78cd308c671a691435c06c9b9e49f087d0475bdf
MD5 f9dc536c913c76bef0e9649cbee56227
BLAKE2b-256 4864ef03e86cc5e2e66d1ab1552cdf8ed06c65de6d0bd03cc6dc7afdede535a9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.1.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 395b55ffd58a01a80bdaec2f1a9f6c1dbc573e96a11ce329d742fe984abd867b
MD5 7ac4921576f41ca9d773a3d66cdd319c
BLAKE2b-256 ebff79738506fb5f1ae00e027169b88e076523ef05064b73903015d72f3abd8a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.1.3-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 97a819c93a1bd1f92df9a0d0ef55253609fb26d073ced9ebd9a512fccc7d7027
MD5 7be4770e5af2163cc0930df713f765e4
BLAKE2b-256 bbf9107d4a563e295b44c9ecde5b562d31cbd480c20d7de1de9652864933e5a3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.1.3-pp39-pypy39_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b015d1cffcfdcd274387bf9fb607847c31be92c553c0dbb64b5b88641f42105c
MD5 dd7fd1a0ce22049de6febe4809a9d3f1
BLAKE2b-256 6e22df89cdc509a1d047f1d0e1a9a8eee89219350b6f50314215f7c72bd535d7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.1.3-pp39-pypy39_pp73-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 334df3166336f922d1acfdf4345d98ca9c9c7f461a422119c6e2676711f1c6cf
MD5 782f47479b48a084d65c0cca604cd543
BLAKE2b-256 0c8bf95981534916451c87a3435cd5a2600b53ea941b46bff3cc48109e7d19a8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: evalica-0.1.3-cp38-abi3-win_amd64.whl
  • Upload date:
  • Size: 223.0 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.3-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 833f27c196f8c6dd1971d4166b36b021709f5205d7835ef70e115688da6d34b1
MD5 9f63c8bfa3656b8f80a109f238fc0662
BLAKE2b-256 6788bc4bd3ab69a8326889ed964333a3b977e0a3565ef67aa825803a3663ee2d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: evalica-0.1.3-cp38-abi3-win32.whl
  • Upload date:
  • Size: 205.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.3-cp38-abi3-win32.whl
Algorithm Hash digest
SHA256 aa1fc5878b4871248642f12235197502865eb47d0ba0a5d6078a21c160cf6df8
MD5 1d392c1e025a83e75181f58d41034eb9
BLAKE2b-256 8968e209c008d04b7a979bb23aeca2df1dc2d4a07a8b0ccf2bea78dd9004ec83

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.1.3-cp38-abi3-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 a2423f42e51720443c3a5a402e8e958fa0b0630e8bda57c9ec56fafffeb154aa
MD5 67a1423db717c77150d22ca9bb808dfe
BLAKE2b-256 bc797aaa18079a8e433ad7432eb1dd7fb499e55a9353b5ad5171e4b31e0686b3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.1.3-cp38-abi3-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 7daf838f5a1bbe80b3c5f3c61138b628f95b7f207c194d14be94bbde7ff01c6d
MD5 bfa5e6b93c773fd18733a1c41e80d59d
BLAKE2b-256 3d589fea1a0401f78fc9585be471a0f3aad937240a9b16c469f9bdf1471240ac

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.1.3-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2a6be72bf9aa2d3a842828bdb48ca26acf45ddf6eb86d43855cc918a101fa4ca
MD5 e9ab6555674188c614a3cf818be8fbaf
BLAKE2b-256 f2bb1de60c6cebae33f07fe39c08d73b210fbaed5dd9e10fe11aa0aaacba531a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.1.3-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 fdacf8128c7fa7604e0f5b9afeff7c80300ad0f8b38a9ccd513aa88f4382cec9
MD5 5269115e172ea1221997c9f768a43590
BLAKE2b-256 3473f5f29f269a101f1fe50d115fb78a7c3c27eb11270ebc2adcaea5e975cf97

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.1.3-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 d046b6a8fa74f36dcf75c4cee4f1255b6df70a59a34f6a9558630fa2b919e113
MD5 1198471cb552fdc0e3544fbf079a56d1
BLAKE2b-256 395ea824aad8ef3e73d2aa2e57071f46f198ae7463f6c208d9e618dfd712b9d1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.1.3-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 292b43613a393a62aee49ddfa335e1609b20dbaa83401f5911bf56e96d8e6fcd
MD5 7de29b666f6d3f8b438b30c10da6ed44
BLAKE2b-256 78917eddec0f7084cb55a5185ef43ba81e82902656a24aff9414a61d0b25f3f2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for evalica-0.1.3-cp38-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 4c6eb2b7873c5377514634791b1715d2f845384c30e0c6fca6cfaa30b1b86dd9
MD5 8b7053f183383d97ddc539be00c02491
BLAKE2b-256 2f903e9da242f925c7dfde1e3d1e2ccf57d5ef3231b6c2547a0c0d7318f8ac3e

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