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
24ab704661
all examples but 15 (qunfold) properly working
2025-10-01 17:41:36 +02:00
Alejandro Moreo Fernandez
265fcc2d92
tests passed; working on examples
2025-07-13 14:27:14 +02:00
Alejandro Moreo Fernandez
24a91b6e9b
going through examples, currently working on second one
2025-06-15 14:57:40 +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
ad11b86168
adding environment variables for N_JOBS, and adding a default classifier (sklearn's logistic regression) for when the classifier is not specified in aggregative quantifiers
2024-05-30 10:53:53 +02:00
Alejandro Moreo Fernandez
aa894a3472
merging PR; I have taken this opportunity to refactor some issues I didnt like, including the normalization of prevalence vectors, and improving the documentation here and there
2024-03-19 15:01:42 +01:00
Alejandro Moreo Fernandez
40cb8f78fe
pytests before release
2024-02-14 12:27:19 +01:00
Alejandro Moreo Fernandez
fcc3f8a0d9
fixing sphinx doc
2024-02-07 18:31:34 +01:00
Alejandro Moreo Fernandez
74efa9751d
adding the approximate solution to ACC and PACC as suggested by Mirko Bunse
2024-01-25 16:43:00 +01:00
Alejandro Moreo Fernandez
9b2470c992
testing optimization threshold variants, not working
2024-01-17 19:15:50 +01:00
Alejandro Moreo Fernandez
eb9a3dde2a
grid search almost complete
2023-11-21 18:59:36 +01:00
Alejandro Moreo Fernandez
6663b4c91d
context timeout
2023-11-20 22:05:26 +01:00
Alejandro Moreo Fernandez
f785a4eeef
model selection with error handling
2023-11-16 19:56:30 +01:00
Alejandro Moreo Fernandez
513c78f1f3
model seletion in two levels, classifier oriented and quantifier oriented
2023-11-16 14:29:34 +01:00
Alejandro Moreo Fernandez
e870d798b7
fango
2023-11-15 10:55:13 +01:00
Lorenzo Volpi
5c7fbb2554
cross_val_predict fix added
2023-11-06 02:00:06 +01:00
Lorenzo Volpi
13fe531e12
fix added for cross_val_predict
2023-11-06 01:58:36 +01:00
Lorenzo Volpi
51c3d54aa5
fix added for len of a LabelledCollection
2023-11-06 01:53:52 +01:00
Alejandro Moreo Fernandez
67906f6f2d
adding uci_experiments to examples folder
2023-03-23 15:46:03 +01:00
Alejandro Moreo Fernandez
49fc486c53
preparing to merge
2023-02-14 17:00:50 +01:00
Alejandro Moreo Fernandez
952cf5e767
fixing bugs in one-vs-all
2023-02-10 19:02:17 +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
c20d9d5ea4
the heuristic exact_train_prev is performed via kFCV, using a new function qp.model_selection.cross_val_predict
2022-12-12 17:32:30 +01:00
Pablo González
a4584b79db
changing gridsearchQ to ensure reproducibility
2022-07-11 16:27:02 +02:00
Alejandro Moreo Fernandez
c795404e7f
import fix
2022-06-15 16:54:42 +02: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
ba18d00334
trying to figure out how to refactor protocols meaninguflly
2021-12-20 11:39:44 +01:00
Alejandro Moreo Fernandez
8368c467dc
adapting new format
2021-11-26 10:57:49 +01:00
Alejandro Moreo Fernandez
7468519495
testing baselines for lequa
2021-11-24 11:20:42 +01:00
Alejandro Moreo Fernandez
3eb760901f
doc update, official baselines for T1A and T1B refactored
2021-11-12 14:30:02 +01:00
Alejandro Moreo Fernandez
611d080ca6
format fix
2021-11-09 15:44:57 +01:00
Alejandro Moreo Fernandez
238a30520c
adapting everything to the new format
2021-11-08 18:01:49 +01:00
Alejandro Moreo Fernandez
a7e87e41f8
GridSearchQ adapted to work with generator functions and integrated for the baselines of LeQua2022; some tests with SVD
2021-10-26 18:41:10 +02:00
Alejandro Moreo Fernandez
8239947746
refit=True default value in GridSearchQ
2021-06-16 13:53:54 +02:00
Alejandro Moreo Fernandez
294e251450
bugfix when refit=False in model selection
2021-06-16 13:23:44 +02:00
Alejandro Moreo Fernandez
be2f54de9c
renaming functions to match the app and npp nomenclature; adding npp as an option for GridSearchQ
2021-06-16 11:45:40 +02:00
Andrea Esuli
bfbfe08116
Added classes_ property to all quantifiers.
2021-05-04 17:09:13 +02:00
Alejandro Moreo Fernandez
ca4c344c55
imports fix
2021-03-19 17:34:09 +01:00
Alejandro Moreo Fernandez
a2ec72496a
adding eval_budget to evaluation functions
2021-02-09 11:48:16 +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
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