Evalica, your favourite evaluation toolkit.
Project description
Evalica, your favourite evaluation toolkit
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
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | b3dc2a7114ca36e874236685025b7ec83e85749b9e09949f875f73c31594ecf6 |
|
MD5 | d8a4bf9aa71d2e2191bb7bad964b3890 |
|
BLAKE2b-256 | f3d22bdaf00df3eaf9fb0912f386c8ce793df900efba51d5cfe851af8eff32eb |
File details
Details for the file evalica-0.2.0-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl
.
File metadata
- Download URL: evalica-0.2.0-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl
- Upload date:
- Size: 525.6 kB
- Tags: PyPy, musllinux: musl 1.1+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.0 CPython/3.12.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c4147a4171780e6807ef3dd6cba4cb19b379357faa9cb72c65f9c55b5bb6533b |
|
MD5 | 5fd8183e58d19896ba3fc11a617bb8a0 |
|
BLAKE2b-256 | e6028f722d80105ad60196bd585a7044501ba9f55055111d9d1e2a680161fb95 |
File details
Details for the file evalica-0.2.0-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl
.
File metadata
- Download URL: evalica-0.2.0-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl
- Upload date:
- Size: 531.5 kB
- Tags: PyPy, musllinux: musl 1.1+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.0 CPython/3.12.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b68da71812333e9153bebbfba8d3beace4d94245c2a84f727dc2226a3e8334ec |
|
MD5 | caec8ae0fa156862b2f76cae07646f75 |
|
BLAKE2b-256 | 2175ad97b5837e0522ed1df712ca6ea8ac81cb61d63e0c961de8ddb185d5e455 |
File details
Details for the file evalica-0.2.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: evalica-0.2.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 354.2 kB
- Tags: PyPy, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.0 CPython/3.12.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 08f50d871eea6184f8afe429631975b59c94349f55d4d25fc5443ff94578255e |
|
MD5 | 311518c85184117d655442915e018887 |
|
BLAKE2b-256 | c5829847bd3758e9e8e519aaabe059f35d1cb414299965b100512f84584cfe07 |
File details
Details for the file evalica-0.2.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
.
File metadata
- Download URL: evalica-0.2.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 353.0 kB
- Tags: PyPy, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.0 CPython/3.12.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1f57a8d741d40f12d9239907b80fd6fd78cea0da889aabaccfe4d6cca98fdc38 |
|
MD5 | b9a58273147efd3ff62d8e6533ff890c |
|
BLAKE2b-256 | b513200cb0f056188439f3ed880382a6aa5027de5ce1987d607496c9d38fe2bc |
File details
Details for the file evalica-0.2.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl
.
File metadata
- Download URL: evalica-0.2.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl
- Upload date:
- Size: 367.9 kB
- Tags: PyPy, manylinux: glibc 2.5+ i686
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.0 CPython/3.12.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c74e9ae3e0602d86c4e532d96b40d7fa68b05fc04f71f0f5d7bd8b67cf065eeb |
|
MD5 | 4996044fb278696b63ba77327d0692c8 |
|
BLAKE2b-256 | 114ffc4725515acd956537517fb65f3e7f220f4c8a3da04dcfc091f1db3b3c0f |
File details
Details for the file evalica-0.2.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl
.
File metadata
- Download URL: evalica-0.2.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl
- Upload date:
- Size: 307.3 kB
- Tags: PyPy, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.0 CPython/3.12.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 26bec72aaaada8309fca1b7478d1d3dfac3ba28b2ef5e1cc66fb221c897ccd42 |
|
MD5 | 231b03697fa1d9638b459ca791d51921 |
|
BLAKE2b-256 | a435ca711dead32d851d6b4679b9f79b4397945ec7a8ea7aa8c4e06efb79c26c |
File details
Details for the file evalica-0.2.0-pp310-pypy310_pp73-macosx_10_12_x86_64.whl
.
File metadata
- Download URL: evalica-0.2.0-pp310-pypy310_pp73-macosx_10_12_x86_64.whl
- Upload date:
- Size: 321.8 kB
- Tags: PyPy, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.0 CPython/3.12.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e9d717ebc54becbec47675e7d033186e4d74affccf888b15fd25fec6b5693add |
|
MD5 | 253c41fb02508ba2e4bb7de37326dcf9 |
|
BLAKE2b-256 | 6c51246a241ced808b0a870bdb26e337b903641239d809b6b5664336fe81ad67 |
File details
Details for the file evalica-0.2.0-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl
.
File metadata
- Download URL: evalica-0.2.0-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl
- Upload date:
- Size: 525.9 kB
- Tags: PyPy, musllinux: musl 1.1+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.0 CPython/3.12.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d824bd2a0a01d5154b881d447fbde7054bc2095b919016f900bfec35ed125bc2 |
|
MD5 | 4b67c21726a29abd0db0717a03805fdc |
|
BLAKE2b-256 | bb37ca726e12693d0485f0a6d5b16fd0386ff25b8362c47d29d680008f992318 |
File details
Details for the file evalica-0.2.0-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl
.
File metadata
- Download URL: evalica-0.2.0-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl
- Upload date:
- Size: 531.6 kB
- Tags: PyPy, musllinux: musl 1.1+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.0 CPython/3.12.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3fdd572602af81e7f4d02492aa32698f940272f2268f290a66b06a3e0fda4bb8 |
|
MD5 | dbc659d410d1a199f8d94fbd8308072f |
|
BLAKE2b-256 | 23d97b03bf45434eada1042d77fe4905995670c1640c83264e4bdedd2d54b1b0 |
File details
Details for the file evalica-0.2.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: evalica-0.2.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 354.5 kB
- Tags: PyPy, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.0 CPython/3.12.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a553e6909dd11acdb9c9683b360c20559ee62e585c35211372a759334e0d0c24 |
|
MD5 | 44058b15a224b722c1c0590dbb11b902 |
|
BLAKE2b-256 | ccc30e12f36d67244cf903490dd433609bccfe8c4989a04494821a850c37f110 |
File details
Details for the file evalica-0.2.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
.
File metadata
- Download URL: evalica-0.2.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 353.1 kB
- Tags: PyPy, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.0 CPython/3.12.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8946efedaa909e109be54ba2ca746bd6af42cceb0e2ed195998b78ff01aaf55d |
|
MD5 | e9914ebd4bc582000841e963b77e6a55 |
|
BLAKE2b-256 | 28798baa6f07976ebc7b83747f6c7d44d22d76d946ada0a034e83431981d8525 |
File details
Details for the file evalica-0.2.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl
.
File metadata
- Download URL: evalica-0.2.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl
- Upload date:
- Size: 369.4 kB
- Tags: PyPy, manylinux: glibc 2.5+ i686
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.0 CPython/3.12.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 30dac65b1db4f7ed47e64a9281f5c0d8998c28de8f50561798f682da5343d146 |
|
MD5 | c6358e2cf7b98cd73dc02e12b34ecc17 |
|
BLAKE2b-256 | 665ccf53880846901e02baca97dddc4adcaf2d7474175a6c83a91a305a477a8c |
File details
Details for the file evalica-0.2.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl
.
File metadata
- Download URL: evalica-0.2.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl
- Upload date:
- Size: 307.4 kB
- Tags: PyPy, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.0 CPython/3.12.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4315a2a9be234a19282344d243021217f5f575705c0c25e628bf40bad157174c |
|
MD5 | c7e2c7a7663da8ca675d8baeb25d7668 |
|
BLAKE2b-256 | 162fcbc770600e190513ecebd98a1efc94965f4a5c9f34392f1ac74cf7df2ca4 |
File details
Details for the file evalica-0.2.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl
.
File metadata
- Download URL: evalica-0.2.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl
- Upload date:
- Size: 322.2 kB
- Tags: PyPy, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.0 CPython/3.12.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cdd3067086ef92aa9878992cd63d3d7d695b905eca2b5cc3e238a49c7cd5e47a |
|
MD5 | 481cc27d0f4c7a8454e765c334890811 |
|
BLAKE2b-256 | 632aaff3ff45be8056fa673a08d7c429016cee2ad3d8692dd1d43c22c0a2a41e |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4b8c1c89af3b60b86cce872931c36f2474e1c94c4018e8d3371771b1f401ae30 |
|
MD5 | dd9922e389b63d1a7d52889bab24dd84 |
|
BLAKE2b-256 | 9a53454b6b97bbec64d79cbb5fd8dfdfdb88f700483eff0c60265869e0f5b652 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 31c0b18896e21bb461d4266dd0c344b4568d01328afef12705653a071a0d11bf |
|
MD5 | f3280ae6a8118efd3a4c5746841fc805 |
|
BLAKE2b-256 | 6a12b93063c1cd9015a33c1a8a7b44d3d49be9c898917391de3d487835bcb87f |
File details
Details for the file evalica-0.2.0-cp38-abi3-musllinux_1_1_x86_64.whl
.
File metadata
- Download URL: evalica-0.2.0-cp38-abi3-musllinux_1_1_x86_64.whl
- Upload date:
- Size: 527.1 kB
- Tags: CPython 3.8+, musllinux: musl 1.1+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.0 CPython/3.12.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 752647446260eedc4afc22d41482c4434ef6c93812e61e11ee8173501cb9c25f |
|
MD5 | 5d044d94d0bbcb2f90c1781ee396de69 |
|
BLAKE2b-256 | 339986d21dcaab29bf2ac5d078064d79788ac222e251a19e1acd67871b411698 |
File details
Details for the file evalica-0.2.0-cp38-abi3-musllinux_1_1_aarch64.whl
.
File metadata
- Download URL: evalica-0.2.0-cp38-abi3-musllinux_1_1_aarch64.whl
- Upload date:
- Size: 534.3 kB
- Tags: CPython 3.8+, musllinux: musl 1.1+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.0 CPython/3.12.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ad962515b5afdc1bbf8c4c351084c60e4181a3008c23405c0643952ebede1984 |
|
MD5 | 7600a9514e142722d6446d51fffc7e98 |
|
BLAKE2b-256 | dc5c7048bed40fd32608d92d7553dd5f53d8e33151b1e81bf5df3544fe18b059 |
File details
Details for the file evalica-0.2.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: evalica-0.2.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 356.9 kB
- Tags: CPython 3.8+, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.0 CPython/3.12.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1b4c6d5fc99c2419ace9c9690735be0554d7d9498d2f7119f9efa8a249b94830 |
|
MD5 | 22b8bed4a22ddd4e8afe06678dc50665 |
|
BLAKE2b-256 | 64c7754934ce275509257aacde08102f6a6e5f3a50fe451a298abca4be3d0aa6 |
File details
Details for the file evalica-0.2.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
.
File metadata
- Download URL: evalica-0.2.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 355.6 kB
- Tags: CPython 3.8+, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.0 CPython/3.12.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b4241f7e068cb853ee0f75f1246026653ff645ef8894c8298ef2a3c710417eaa |
|
MD5 | d8c502c9d34b8418a3ffbb9223f4ee29 |
|
BLAKE2b-256 | 90cf5375b0407b3317e15502dc0426da6fe575847edb6e399bc22f4d12efe365 |
File details
Details for the file evalica-0.2.0-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl
.
File metadata
- Download URL: evalica-0.2.0-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl
- Upload date:
- Size: 372.7 kB
- Tags: CPython 3.8+, manylinux: glibc 2.5+ i686
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.0 CPython/3.12.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f806adff9a35f50be34f9a1bfe4048fe95643eace752c98efc54a8ae9db5f0bc |
|
MD5 | b8ecb9459877ffaad7c2dc4a6c957eec |
|
BLAKE2b-256 | b88258db778c71db1745bed38faad3a274fd0d272c6f459e31893aba995491fa |
File details
Details for the file evalica-0.2.0-cp38-abi3-macosx_11_0_arm64.whl
.
File metadata
- Download URL: evalica-0.2.0-cp38-abi3-macosx_11_0_arm64.whl
- Upload date:
- Size: 311.0 kB
- Tags: CPython 3.8+, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.0 CPython/3.12.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b39c6172fab66c8bb020c756f007536d8969c9f9cf577ba9a9a78e04dd48af22 |
|
MD5 | 1d422f080c6b8445ff536888619167ee |
|
BLAKE2b-256 | 5e351143569d0e965f73c9e531f3ee9d83ba384969742f656f02f072a2fdb1a0 |
File details
Details for the file evalica-0.2.0-cp38-abi3-macosx_10_12_x86_64.whl
.
File metadata
- Download URL: evalica-0.2.0-cp38-abi3-macosx_10_12_x86_64.whl
- Upload date:
- Size: 324.4 kB
- Tags: CPython 3.8+, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.0 CPython/3.12.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9f2e60f1615348b2b3abf7a9ed10f8483eb620ad8439e0a5bfa94dc2b3b5897f |
|
MD5 | bea5d47f6fbe64aa07a2e901dcb87d3c |
|
BLAKE2b-256 | 7edea1b195fded5ee899c2d44e3d9376b12b5ec2d6dfa6d854489f2c7d89b338 |