FastAMI
A Monte Carlo approximation to the adjusted and standardized mutual information for faster clustering comparisons. You can use this package as a drop-in replacement for sklearn.metrics.adjusted_mutual_info_score, when the exact calculation is too slow, i.e. because of large datasets and large numbers of clusters.
Installation
fastami requires Python >=3.8. You can install fastami via pip from PyPI:
pip install fastami
Usage Examples
FastAMI
You can use FastAMI as you would use adjusted_mutual_info_score from scikit-learn:
from fastami import adjusted_mutual_info_mc
labels_true = [0, 0, 1, 1, 2]
labels_pred = [0, 1, 1, 2, 2]
ami, ami_error = adjusted_mutual_info_mc(labels_true, labels_pred)
# Output: AMI = -0.255 +- 0.008
print(f"AMI = {ami:.3f} +- {ami_error:.3f}")
Note that the output may vary a little bit, due to the nature of the Monte Carlo approach. If you would like to ensure reproducible results, use the seed argument. By default, the algorithm terminates when it reaches an accuracy of 0.01. You can adjust this behavior using the accuracy_goal argument.
FastSMI
FastSMI works similarly:
from fastami import standardized_mutual_info_mc
labels_true = [0, 0, 1, 1, 2]
labels_pred = [0, 1, 1, 2, 2]
smi, smi_error = standardized_mutual_info_mc(labels_true, labels_pred)
# Output: SMI = -0.673 +- 0.035
print(f"SMI = {smi:.3f} +- {smi_error:.3f}")
While FastSMI is usually faster than an exact calculation of the SMI, it is still orders of magnitude slower than FastAMI. Since the SMI is not confined to the interval [-1,1] like the AMI, the SMI by default terminates at a given absolute or relative error of at least 0.1, whichever is reached first. You can adjust this behavior using the precision_goal argument.
Citing FastAMI
If you use fastami in your research work, please cite the corresponding paper (will probably be published by March 2023):
Klede et al., (2023). FastAMI - A Monte Carlo Approach to the Adjustment for Chance in Clustering Comparison Metrics. Proceedings of the AAAI Conference on Artificial Intelligence.
Release files for fastami 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| fastami-0.2.1.tar.gz | 6.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| fastami-0.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 14.5 kB
Release files / fastami-0.2.1.tar.gz
| Download URL | fastami-0.2.1.tar.gz |
|---|---|
| Size | 6.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8b7367f835103c9f8bd743487ab99d4b0cfdb167490ad061865c1ccd90cc2737
|
|
BLAKE2b-256 checksum How to use checksums |
5e6374be1be0028bdc58b7bc6b483617bc9776672b349848308aab5a5d33bf83
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.4.0 CPython/3.11.2 Linux/5.15.0-1033-azure
|
Release files / fastami-0.2.1-py3-none-any.whl
| Download URL | fastami-0.2.1-py3-none-any.whl |
|---|---|
| Size | 7.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f75efbe044071a5a1070650906056081d73b6ee5bc42129ab9ed696de4662453
|
|
BLAKE2b-256 checksum How to use checksums |
d1e0eb7f3dcc17e295ea37c8e1e38f168389c9da54fc0645f8428bd39c3868da
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.4.0 CPython/3.11.2 Linux/5.15.0-1033-azure
|