All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
4.2 - 2025-01-14
- 5 new distance/similarity
- KuhnsIII
- KuhnsIV
- KuhnsV
- KuhnsVI
- KuhnsVII
- Test system modified
- PyPI badge in
README.md
- GitHub actions are limited to the
dev
andmaster
branches AUTHORS.md
updatedREADME.md
modified- Document modified
4.1 - 2024-10-17
- 5 new distance/similarity
- KoppenI
- KoppenII
- KuderRichardson
- KuhnsI
- KuhnsII
feature_request.yml
templateconfig.yml
for issue templateSECURITY.md
- Bug report template modified
thresholds_calc
function updated__midpoint_numeric_integral__
function updated__trapezoidal_numeric_integral__
function updated- Diagrams updated
- Document modified
- Document build system updated
AUTHORS.md
updatedREADME.md
modified- Test system modified
Python 3.12
added totest.yml
Python 3.13
added totest.yml
- Warning and error messages updated
pycm_util.py
renamed toutils.py
pycm_test.py
renamed tobasic_test.py
pycm_profile.py
renamed toprofile.py
pycm_param.py
renamed toparams.py
pycm_overall_func.py
renamed tooverall_funcs.py
pycm_output.py
renamed tooutput.py
pycm_obj.py
renamed tocm.py
pycm_multilabel_cm.py
renamed tomultilabel_cm.py
pycm_interpret.py
renamed tointerpret.py
pycm_handler.py
renamed tohandlers.py
pycm_error.py
renamed toerrors.py
pycm_distance.py
renamed todistance.py
pycm_curve.py
renamed tocurve.py
pycm_compare.py
renamed tocompare.py
pycm_class_func.py
renamed toclass_funcs.py
pycm_ci.py
renamed toci.py
4.0 - 2023-06-07
pycmMultiLabelError
classMultiLabelCM
classget_cm_by_class
methodget_cm_by_sample
method__mlcm_vector_handler__
function__mlcm_assign_classes__
function__mlcm_vectors_filter__
function__set_to_multihot__
functiondeprecated
function
- Document modified
README.md
modified- Example-4 modified
- Test system modified
- Python 3.5 support dropped
3.9 - 2023-05-01
OVERALL_PARAMS
dictionary__imbalancement_handler__
functionvector_serializer
function- NPV micro/macro
log_loss
method- 23 new distance/similarity
- Dennis
- Digby
- Dispersion
- Doolittle
- Eyraud
- Fager & McGowan
- Faith
- Fleiss-Levin-Paik
- Forbes I
- Forbes II
- Fossum
- Gilbert & Wells
- Goodall
- Goodman & Kruskal's Lambda
- Goodman & Kruskal Lambda-r
- Guttman's Lambda A
- Guttman's Lambda B
- Hamann
- Harris & Lahey
- Hawkins & Dotson
- Kendall's Tau
- Kent & Foster I
- Kent & Foster II
metrics_off
parameter added to ConfusionMatrix__init__
methodCLASS_PARAMS
changed to a dictionary- Code style modified
sort
parameter added torelabel
method- Document modified
CONTRIBUTING.md
updatedcodecov
removed fromdev-requirements.txt
- Test system modified
3.8 - 2023-02-01
distance
method__contains__
method__getitem__
method- Goodman-Kruskal's Lambda A benchmark
- Goodman-Kruskal's Lambda B benchmark
- Krippendorff's Alpha benchmark
- Pearson's C benchmark
- 30 new distance/similarity
- AMPLE
- Anderberg's D
- Andres & Marzo's Delta
- Baroni-Urbani & Buser I
- Baroni-Urbani & Buser II
- Batagelj & Bren
- Baulieu I
- Baulieu II
- Baulieu III
- Baulieu IV
- Baulieu V
- Baulieu VI
- Baulieu VII
- Baulieu VIII
- Baulieu IX
- Baulieu X
- Baulieu XI
- Baulieu XII
- Baulieu XIII
- Baulieu XIV
- Baulieu XV
- Benini I
- Benini II
- Canberra
- Clement
- Consonni & Todeschini I
- Consonni & Todeschini II
- Consonni & Todeschini III
- Consonni & Todeschini IV
- Consonni & Todeschini V
relabel
method sort bug fixedREADME.md
modifiedCompare
overall benchmarks default weights updated- Document modified
- Test system modified
3.7 - 2022-12-15
Curve
classROCCurve
classPRCurve
classpycmCurveError
class
CONTRIBUTING.md
updatedmatrix_params_calc
function optimizedREADME.md
modified- Document modified
- Test system modified
Python 3.11
added totest.yml
3.6 - 2022-08-17
- Hamming distance
- Braun-Blanquet similarity
classes
parameter added tomatrix_params_from_table
function- Matrices with
numpy.integer
elements are now accepted - Arrays added to
matrix
parameter accepting formats - Website changed to http://www.pycm.io
- Document modified
README.md
modified
3.5 - 2022-04-27
- Anaconda workflow
- Custom iterating setting
- Custom casting setting
plot
method updatedclass_statistics
function modifiedoverall_statistics
function modifiedBCD_calc
function modifiedCONTRIBUTING.md
updatedCODE_OF_CONDUCT.md
updated- Document modified
3.4 - 2022-01-26
- Colab badge
- Discord badge
brier_score
method
J (Jaccard index)
section inDocument.ipynb
updatedsave_obj
method updatedPython 3.10
added totest.yml
- Example-3 updated
- Docstrings of the functions updated
CONTRIBUTING.md
updated
3.3 - 2021-10-27
__compare_weight_handler__
function
is_imbalanced
parameter added to ConfusionMatrix__init__
methodclass_benchmark_weight
andoverall_benchmark_weight
parameters added to Compare__init__
methodstatistic_recommend
function modified- Compare
weight
parameter renamed toclass_weight
- Document modified
- License updated
AUTHORS.md
updatedREADME.md
modified- Block diagrams updated
3.2 - 2021-08-11
classes_filter
function
classes
parameter added tomatrix_params_calc
functionclasses
parameter added to__obj_vector_handler__
functionclasses
parameter added to ConfusionMatrix__init__
methodname
parameter removed fromhtml_init
functionshortener
parameter added tohtml_table
functionshortener
parameter added tosave_html
method- Document modified
- HTML report modified
3.1 - 2021-03-11
requirements-splitter.py
sensitivity_index
method
- Test system modified
overall_statistics
function modified- HTML report modified
- Document modified
- References format updated
CONTRIBUTING.md
updated
3.0 - 2020-10-26
plot_test.py
axes_gen
functionadd_number_label
functionplot
methodcombine
methodmatrix_combine
function
- Document modified
README.md
modified- Example-2 deprecated
- Example-7 deprecated
- Error messages modified
2.9 - 2020-09-23
notebook_check.py
to_array
method__copy__
methodcopy
method
average
method refactored
2.8 - 2020-07-09
label_map
attributepositions
attributeposition
method- Krippendorff's Alpha
- Aickin's Alpha
weighted_alpha
method
- Single class bug fixed
CLASS_NUMBER_ERROR
error type changed topycmMatrixError
relabel
method bug fixed- Document modified
README.md
modified
2.7 - 2020-05-11
average
methodweighted_average
methodweighted_kappa
methodpycmAverageError
class- Bangdiwala's B
- MATLAB examples
- Github action
- Document modified
README.md
modifiedrelabel
method bug fixedsparse_table_print
function bug fixedmatrix_check
function bug fixed- Minor bug in
Compare
class fixed - Class names mismatch bug fixed
2.6 - 2020-03-25
custom_rounder
functioncomplement
functionsparse_matrix
attributesparse_normalized_matrix
attribute- Net benefit (NB)
- Yule's Q interpretation (QI)
- Adjusted Rand index (ARI)
- TNR micro/macro
- FPR micro/macro
- FNR micro/macro
sparse
parameter added toprint_matrix
,print_normalized_matrix
andsave_stat
methodsheader
parameter added tosave_csv
method- Handler functions moved to
pycm_handler.py
- Error objects moved to
pycm_error.py
- Verified tests references updated
- Verified tests moved to
verified_test.py
- Test system modified
CONTRIBUTING.md
updated- Namespace optimized
README.md
modified- Document modified
print_normalized_matrix
method modifiednormalized_table_calc
function modifiedsetup.py
modified- summary mode updated
- Dockerfile updated
Python 3.8
added to.travis.yaml
andappveyor.yml
PC_PI_calc
function
2.5 - 2019-10-16
__version__
variable- Individual classification success index (ICSI)
- Classification success index (CSI)
- Example-8 (Confidence interval)
install.sh
autopep8.sh
- Dockerfile
CI
method (supported statistics :ACC
,AUC
,Overall ACC
,Kappa
,TPR
,TNR
,PPV
,NPV
,PLR
,NLR
,PRE
)
test.sh
moved to.travis
folder- Python 3.4 support dropped
- Python 2.7 support dropped
AUTHORS.md
updatedsave_stat
,save_csv
andsave_html
methods Non-ASCII character bug fixed- Mixed type input vectors bug fixed
CONTRIBUTING.md
updated- Example-3 updated
README.md
modified- Document modified
CI
attribute renamed toCI95
kappa_se_calc
function renamed tokappa_SE_calc
se_calc
function modified and renamed toSE_calc
- CI/SE functions moved to
pycm_ci.py
- Minor bug in
save_html
method fixed
2.4 - 2019-07-31
- Tversky index (TI)
- Area under the PR curve (AUPR)
FUNDING.yml
AUC_calc
function modified- Document modified
summary
parameter added tosave_html
,save_stat
,save_csv
andstat
methodssample_weight
bug innumpy
array format fixed- Inputs manipulation bug fixed
- Test system modified
- Warning system modified
alt_link
parameter added tosave_html
method andonline_help
functionCompare
class tests moved tocompare_test.py
- Warning tests moved to
warning_test.py
2.3 - 2019-06-27
- Adjusted F-score (AGF)
- Overlap coefficient (OC)
- Otsuka-Ochiai coefficient (OOC)
save_stat
andsave_vector
parameters added tosave_obj
method- Document modified
README.md
modified- Parameters recommendation for imbalance dataset modified
- Minor bug in
Compare
class fixed pycm_help
function modified- Benchmarks color modified
2.2 - 2019-05-30
- Negative likelihood ratio interpretation (NLRI)
- Cramer's benchmark (SOA5)
- Matthews correlation coefficient interpretation (MCCI)
- Matthews's benchmark (SOA6)
- F1 macro
- F1 micro
- Accuracy macro
Compare
class score calculation modified- Parameters recommendation for multi-class dataset modified
- Parameters recommendation for imbalance dataset modified
README.md
modified- Document modified
- Logo updated
2.1 - 2019-05-06
- Adjusted geometric mean (AGM)
- Yule's Q (Q)
Compare
class and parameters recommendation system block diagrams
- Document links bug fixed
- Document modified
2.0 - 2019-04-15
- G-Mean (GM)
- Index of balanced accuracy (IBA)
- Optimized precision (OP)
- Pearson's C (C)
Compare
class- Parameters recommendation warning
ConfusionMatrix
equal method
- Document modified
stat_print
function bug fixedtable_print
function bug fixedBeta
parameter renamed tobeta
(F_calc
function &F_beta
method)- Parameters recommendation for imbalance dataset modified
normalize
parameter added tosave_html
methodpycm_func.py
splitted intopycm_class_func.py
andpycm_overall_func.py
vector_filter
,vector_check
,class_check
andmatrix_check
functions moved topycm_util.py
RACC_calc
andRACCU_calc
functions exception handler modified- Docstrings modified
1.9 - 2019-02-25
- Automatic/Manual (AM)
- Bray-Curtis dissimilarity (BCD)
CODE_OF_CONDUCT.md
ISSUE_TEMPLATE.md
PULL_REQUEST_TEMPLATE.md
CONTRIBUTING.md
- X11 color names support for
save_html
method - Parameters recommendation system
- Warning message for high dimension matrix print
- Interactive notebooks section (binder)
save_matrix
andnormalize
parameters added tosave_csv
methodREADME.md
modified- Document modified
ConfusionMatrix.__init__
optimized- Document and examples output files moved to different folders
- Test system modified
relabel
method bug fixed
1.8 - 2019-01-05
- Lift score (LS)
version_check.py
color
parameter added tosave_html
method- Error messages modified
- Document modified
- Website changed to http://www.pycm.ir
- Interpretation functions moved to
pycm_interpret.py
- Utility functions moved to
pycm_util.py
- Unnecessary
else
andelif
removed ==
changed tois
1.7 - 2018-12-18
- Gini index (GI)
- Example-7
pycm_profile.py
class_name
parameter added tostat
,save_stat
,save_csv
andsave_html
methodsoverall_param
andclass_param
parameters empty list bug fixedmatrix_params_calc
,matrix_params_from_table
andvector_filter
functions optimizedoverall_MCC_calc
,CEN_misclassification_calc
andconvex_combination
functions optimized- Document modified
1.6 - 2018-12-06
- AUC value interpretation (AUCI)
- Example-6
- Anaconda cloud package
overall_param
andclass_param
parameters added tostat
,save_stat
andsave_html
methodsclass_param
parameter added tosave_csv
method_
removed from overall statistics namesREADME.md
modified- Document modified
1.5 - 2018-11-26
- Relative classifier information (RCI)
- Discriminator power (DP)
- Youden's index (Y)
- Discriminant power interpretation (DPI)
- Positive likelihood ratio interpretation (PLRI)
__len__
methodrelabel
method__class_stat_init__
function__overall_stat_init__
functionmatrix
attribute as dictnormalized_matrix
attribute as dictnormalized_table
attribute as dict
README.md
modified- Document modified
LR+
renamed toPLR
LR-
renamed toNLR
normalized_matrix
method renamed toprint_normalized_matrix
matrix
method renamed toprint_matrix
entropy_calc
fixedcross_entropy_calc
fixedconditional_entropy_calc
fixedprint_table
bug for large numbers fixed- JSON key bug in
save_obj
fixed transpose
bug insave_obj
fixedPython 3.7
added to.travis.yaml
andappveyor.yml
1.4 - 2018-11-12
- Area under curve (AUC)
- AUNU
- AUNP
- Class balance accuracy (CBA)
- Global performance index (RR)
- Overall MCC
- Distance index (dInd)
- Similarity index (sInd)
one_vs_all
dev-requirements.txt
README.md
modified- Document modified
save_stat
modifiedrequirements.txt
modified
1.3 - 2018-10-10
- Confusion entropy (CEN)
- Overall confusion entropy (Overall CEN)
- Modified confusion entropy (MCEN)
- Overall modified confusion entropy (Overall MCEN)
- Information score (IS)
README.md
modified
1.2 - 2018-10-01
- No information rate (NIR)
- P-Value
sample_weight
transpose
README.md
modified- Key error in some parameters fixed
OSX
env added to.travis.yml
1.1 - 2018-09-08
- Zero-one loss
- Support
online_help
function
README.md
modifiedhtml_table
function modifiedtable_print
function modifiednormalized_table_print
function modified
1.0 - 2018-08-30
- Hamming loss
README.md
modified
0.9.5 - 2018-07-08
- Obj load
- Obj save
- Example-4
README.md
modified- Block diagram updated
0.9 - 2018-06-28
- Activation threshold
- Example-3
- Jaccard index
- Overall Jaccard index
README.md
modifiedsetup.py
modified
0.8.6 - 2018-05-31
- Example section in document
- Python 2.7 CI
- JOSS paper pdf
- Cite section
- ConfusionMatrix docstring
- round function changed to numpy.around
README.md
modified
0.8.5 - 2018-05-21
- Example-1 (Comparison of three different classifiers)
- Example-2 (How to plot via matplotlib)
- JOSS paper
- ConfusionMatrix docstring
- Table size in HTML report
- Test system
README.md
modified
0.8.1 - 2018-03-22
- Goodman and Kruskal's lambda B
- Goodman and Kruskal's lambda A
- Cross entropy
- Conditional entropy
- Joint entropy
- Reference entropy
- Response entropy
- Kullback-Liebler divergence
- Direct ConfusionMatrix
- Kappa unbiased
- Kappa no prevalence
- Random accuracy unbiased
pycmVectorError
classpycmMatrixError
class- Mutual information
- Support
numpy
arrays
- Notebook file updated
pycmError
class
0.7 - 2018-02-26
- Cramer's V
- 95% confidence interval
- Chi-Squared
- Phi-Squared
- Chi-Squared DF
- Standard error
- Kappa standard error
- Kappa 95% confidence interval
- Cicchetti benchmark
- Overall statistics color in HTML report
- Parameters description link in HTML report
0.6 - 2018-02-21
- CSV report
- Changelog
- Output files
digit
parameter toConfusionMatrix
object
- Confusion matrix color in HTML report
- Parameters description link in HTML report
- Capitalize descriptions
0.5 - 2018-02-17
- Scott's pi
- Gwet's AC1
- Bennett S score
- HTML report
0.4 - 2018-02-05
- TPR micro/macro
- PPV micro/macro
- Overall RACC
- Error rate (ERR)
- FBeta score
- F0.5
- F2
- Fleiss benchmark
- Altman benchmark
- Output file(.pycm)
- Class with zero item
- Normalized matrix
- Kappa and SOA for each class
0.3 - 2018-01-27
- Kappa
- Random accuracy
- Landis and Koch benchmark
overall_stat
0.2 - 2018-01-24
- Population
- Condition positive
- Condition negative
- Test outcome positive
- Test outcome negative
- Prevalence
- G-measure
- Matrix method
- Normalized matrix method
- Params method
statistic_result
toclass_stat
params
tostat
0.1 - 2018-01-22
- ACC
- BM
- DOR
- F1-Score
- FDR
- FNR
- FOR
- FPR
- LR+
- LR-
- MCC
- MK
- NPV
- PPV
- TNR
- TPR
- documents and
README.md