Commit Graph

35 Commits

Author SHA1 Message Date
Alejandro Moreo Fernandez b29966797a Fix 10 correctness bugs and clean up warnings/logging in core library
Correctness:
- OneVsAllAggregative.aggregation_fit: fix undefined variable and call to
  the nonexistent aggregate_fit (should be aggregation_fit)
- solve_adjustment: stop mutating the caller's fitted arrays in place for
  method='invariant-ratio'
- LabelledCollection.join(): fix classes always being None due to
  ndarray.sort() returning None; now unions each collection's own classes_
  so a class absent from a particular join is kept at zero prevalence
- Rename the duplicate newSVMKLD (nkld variant) to newSVMNKLD so both loss
  variants are reachable
- EMQ/DyS/DMy: resolve n_jobs via qp._get_njobs() like the other methods,
  so qp.environ['N_JOBS'] is respected
- AggregativeMedianEstimator: drop backend='threading' (global np.random
  state mutated via temp_seed is not thread-safe); use the safe process
  based default instead
- NeuralClassifier: default device now 'cpu', matching its own docstring
- ConfidenceEllipseSimplex: narrow bare except to np.linalg.LinAlgError
- SVMperf: stop merging stderr into stdout so failures report the actual
  subprocess error instead of crashing with AttributeError
- ConfidenceRegionABC: replace @lru_cache on bound methods (leaked every
  instance for the process lifetime) with per-instance caching

Style/quality:
- Replace print() with warnings.warn()/logging across aggregative.py,
  base.py, meta.py, model_selection.py, classification/neural.py,
  method/_neural.py, classification/svmperf.py, data/reader.py,
  data/datasets.py; also fixes a `raise RuntimeWarning(...)` in EMQ that
  would have crashed instead of warning
- Remove dead duplicate class MedianEstimator2 in meta.py
- Rename misleading _compute_tpr(TP, FP) parameter to FN, matching what
  callers actually pass
- Replace argparse.ArgumentError misuse with ValueError
- Remove commented-out dead code in protocol.py
- _lequa.py: fix CSV-parse failure raising an unrelated UnboundLocalError
  instead of a clear ValueError

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-04 18:49:44 +02:00
Alejandro Moreo Fernandez 8adcc33c59 merged 2025-10-03 11:00:06 +02:00
Alejandro Moreo Fernandez e76e1de6a9 refactoring codebase 2025-05-23 12:27:49 +02:00
Alejandro Moreo Fernandez 960ca5076e refactoring no labelled collection and other improvements in EMQ 2025-04-23 12:25:05 +02:00
Alejandro Moreo Fernandez 075be93a23 refactoring w/o labelled collection 2025-04-20 22:05:46 +02:00
Alejandro Moreo Fernandez 8876d311e7 working on SCMQ, MCSQ, MCMQ ensembles 2024-12-02 17:39:06 +01:00
Alejandro Moreo Fernandez 24c28edfd9 adding scmq 2024-10-16 16:00:23 +02:00
Alejandro Moreo Fernandez 2f2e48d86a passing pytests 2024-01-29 09:43:29 +01:00
Alejandro Moreo Fernandez 7ac834bd2c refactoring aggregation methods 2024-01-25 14:33:41 +01:00
Alejandro Moreo Fernandez e870d798b7 fango 2023-11-15 10:55:13 +01:00
Alejandro Moreo Fernandez daca2bd1cb added MedianEstimator quantifier 2023-11-09 14:20:41 +01:00
Alejandro Moreo Fernandez 8fc4669046 import fix 2023-02-14 19:15:59 +01:00
Alejandro Moreo Fernandez c608647475 some bug fixes here and there 2023-02-13 19:27:48 +01:00
Alejandro Moreo Fernandez 2485117f05 adding documentation and adding one new example 2023-02-08 19:06:53 +01:00
Alejandro Moreo Fernandez f9a199d859 fixing hyperparameters with prefixes, and replacing learner with classifier in aggregative quantifiers 2023-01-27 18:13:23 +01:00
Alejandro Moreo Fernandez 2cc7db60cc updating parallel policy to take n_jobs from environment (not yet tested) 2022-06-14 09:35:39 +02:00
Alejandro Moreo Fernandez 45642ad778 lequa as dataset 2022-06-01 18:28:59 +02:00
Alejandro Moreo Fernandez 4bc9d19635 many changes, see change log 2022-05-25 19:14:33 +02:00
Alejandro Moreo Fernandez 9cf9c73824 adding documentation for ensembles 2021-12-15 15:46:15 +01:00
Alejandro Moreo Fernandez 3835f89e9d adding documentation 2021-12-15 15:27:43 +01:00
Andrea Esuli 79fbbd9d80 pip package 2021-05-10 13:36:35 +02:00
Andrea Esuli bfbfe08116 Added classes_ property to all quantifiers. 2021-05-04 17:09:13 +02:00
Alejandro Moreo Fernandez 854d759dc4 making everything work like in the wiki 2021-02-17 18:05:22 +01:00
Alejandro Moreo Fernandez 3aaf57f2f3 all uci datasets from Pérez-Gállego added, quantification report added 2021-01-28 18:22:43 +01:00
Alejandro Moreo Fernandez e609c262b4 parallel functionality added to quapy in order to allow for multiprocess parallelization (and not threading) handling quapy's environment variables 2021-01-27 09:54:41 +01:00
Alejandro Moreo Fernandez 8a53cfe677 parallel in threading mode (another) 2021-01-25 16:46:59 +01:00
Alejandro Moreo Fernandez 2fda46fc13 qp.environment was not reachable within Parallel processes; changing backend to threading 2021-01-25 09:58:39 +01:00
Alejandro Moreo Fernandez 2001c6d852 running ensembles 2021-01-25 08:54:10 +01:00
Alejandro Moreo Fernandez 03cf73aff6 refactor: methods requiring a val_split can now declare a default value in the __init__ method that will be used in case the fit method is called without specifying the val_split, which now is by default None in the fit, i.e., by default takes the value of the init, that is generally set to 0.4; some uci datasets added; ensembles can now be optimized for quantification, and can be trained on samples of smaller size 2021-01-22 18:01:51 +01:00
Alejandro Moreo Fernandez bf1cc74ba1 quapy fixed 2021-01-22 09:58:12 +01:00
Alejandro Moreo Fernandez 482e4453a8 refactor of ensembles, launching EPACC with Ptr policy 2021-01-19 18:26:40 +01:00
Alejandro Moreo Fernandez b30c40b7a0 some refactor made in order to accomodate OneVsAll to operate with aggregative probabilistic quantifiers; launching OneVsAll(HDy) 2021-01-18 16:52:19 +01:00
Alejandro Moreo Fernandez 5e64d2588a import fixes 2021-01-15 18:32:32 +01:00
Alejandro Moreo Fernandez 5894d46b31 cleaning 2021-01-06 15:00:48 +01:00
Alejandro Moreo Fernandez 326a8ab803 added Ensemble methods (methods ALL, ACC, Ptr, DS from Pérez-Gallego et al 2017 and 2019) and some UCI ML datasets used in those articles (only 5 datasets out of 32 they used) 2021-01-06 14:58:29 +01:00