A lightweight package that analyzes multiple metrics directly from confusion matrix efficiently
Project description
cm2metrics
A lightweight package that analyzes multiple metrics directly from confusion matrix.
Features
- Get all classes parsing results in native Dataframe format
- Print all classes or specified class parsing summary in friendly format
- Only requires numpy and pandas, without relying on other machine learning packages.
- Easy to use with a few APIs
- Supports 16 metrics for each class:
- tp: true positive
- tn: true negative
- fp: false positive
- fn: false negative
- tpr: true positive rate
- tnr: true negative rate
- fpr: false positive rate
- fnr: false negative rate
- atc: actual true count
- afc: actual false count
- ptc: predict true count
- pfc: predict false count
- accruacy
- precision
- recall
- f1
General
- Version: 0.1
- Dependency: Python(3.6,3.7.3.8), numpy, pandas
Install
pip install cm2metrics
Use
General use
- Generate a confusion matrix
# use scikitlearn
from sklearn.metrics import confusion_matrix
#cm is ndarray, convert to dataframe
cm = confusion_matrix(true_target, pred_target)
df_cm = pd.DataFrame(cm, index=class_names, columns=class_names)
# or, use a randomly generated confusion matrix(for test)
# see details in cm_test.py
class_names = {0:"class0", 1:"class1", 2:"class2"}
df_cm = pd.DataFrame([(1,2,3),(4,5,6),(7,8,9)])
df_cm.rename(index=class_names, columns=class_names, inplace=True)
- Init a confusion matrix parser
from cm2metrics.parse_cm import ConfusionMatrixParser cm_parser = ConfusionMatrixParser(df_cm)
- Parse the confusion matrix
# parsing result(cm_parsed) is a dataframe
cm_parsed = cm_parser.parse_confusion_matrix()
print(cm_parsed)
Sample output:
tp fp tn fn tpr fpr tnr fnr atc afc ptc pfc accuracy precision recall f1
class0 1 28 11 5 0.166667 0.717949 0.282051 0.833333 6 39 12 33 0.644444 0.083333 0.166667 0.111111
class1 5 20 10 10 0.333333 0.666667 0.333333 0.666667 15 30 15 30 0.555556 0.333333 0.333333 0.333333
class2 9 12 9 15 0.375000 0.571429 0.428571 0.625000 24 21 18 27 0.466667 0.500000 0.375000 0.428571
# get class0 true positive
tp = cm_parsed.loc["class0"].at["tp"]
Print parsing summary in friendly format
# print one class summary by name using class_name parameter cm_parser.print_summary(class_name="class0") # print one class summary by index in confusion matrix using class_index parameter cm_parser.print_summary(class_index=0) # print all classes summary by not specifying parameters cm_parser.print_summary() Sample output for class0 summary: Summary for class0 TP: 1 TN: 28 FP: 11 FN: 5 TPR: 0.167 TNR: 0.718 FPR: 0.282 FNR: 0.833 Actual true count: 6 Actual false count: 39 Predict true count: 12 Predict false count: 33 Accuracy: 0.644 Precision: 0.083 Recall: 0.167 F1: 0.111
License
MIT license.
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
cm2metrics-0.1.tar.gz
(5.1 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cm2metrics-0.1.tar.gz.
File metadata
- Download URL: cm2metrics-0.1.tar.gz
- Upload date:
- Size: 5.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.8.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
79d7fe3830e3afe331aaaede7aa824c2b80f84300f3c5e5859139459e2a02785
|
|
| MD5 |
457cbd54fe4ec41d5660c9b1c0aa75f3
|
|
| BLAKE2b-256 |
5b86d2be8a6565b545f8ec15528a724b166ed06a09b7a7831cd4e9140cc56f77
|
File details
Details for the file cm2metrics-0.1-py3-none-any.whl.
File metadata
- Download URL: cm2metrics-0.1-py3-none-any.whl
- Upload date:
- Size: 7.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.8.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
030632279e9674f3523272c2ba05dcf7b3bcd5a16318024b574abb0788b1d223
|
|
| MD5 |
5eb6123f0a4b2848c425b08d9ccfb74f
|
|
| BLAKE2b-256 |
329749a6c18a95b7c2a65586dec66b9fa4b987fdcfcce36630e2051c3bcfa2d2
|