refactor folders

This commit is contained in:
Alejandro Moreo Fernandez 2025-12-10 13:10:03 +01:00
parent 8c063afd1e
commit 1eebfbc709
2 changed files with 11 additions and 7 deletions

View File

@ -6,7 +6,7 @@ import quapy as qp
from data import LabelledCollection from data import LabelledCollection
from method.non_aggregative import DMx from method.non_aggregative import DMx
from protocol import APP from protocol import APP
from quapy.method.aggregative import CC, DMy, ACC from quapy.method.aggregative import CC, DMy, ACC, EMQ
from sklearn.svm import LinearSVC from sklearn.svm import LinearSVC
import numpy as np import numpy as np
from tqdm import tqdm from tqdm import tqdm
@ -15,12 +15,15 @@ qp.environ['SAMPLE_SIZE'] = 500
def cls(): def cls():
return LogisticRegressionCV(n_jobs=-1,Cs=10) return LogisticRegressionCV(n_jobs=-1,Cs=10)
# return LogisticRegression(C=.1)
def gen_methods(): def gen_methods():
yield CC(cls()), 'CC$_{10' + '\%}$' yield CC(cls()), r'CC$_{10' + r'\%}$'
yield ACC(cls()), 'ACC' yield ACC(cls()), 'ACC'
yield DMy(cls(), val_split=10, nbins=10, n_jobs=-1), 'HDy' yield DMy(cls(), val_split=10, nbins=10, n_jobs=-1), 'HDy'
yield DMx(nbins=10, n_jobs=-1), 'HDx' yield DMx(nbins=10, n_jobs=-1), 'HDx'
yield EMQ(cls()), 'SLD'
# yield EMQ(cls(), calib='vs'), 'SLD-VS'
def gen_data(): def gen_data():
@ -31,6 +34,7 @@ def gen_data():
training_size = 5000 training_size = 5000
# since the problem is binary, it suffices to specify the negative prevalence, since the positive is constrained # since the problem is binary, it suffices to specify the negative prevalence, since the positive is constrained
train_sample = train.sampling(training_size, 1-training_prevalence, random_state=0) train_sample = train.sampling(training_size, 1-training_prevalence, random_state=0)
# train_sample = train
for model, method_name in tqdm(gen_methods(), total=4): for model, method_name in tqdm(gen_methods(), total=4):
with qp.util.temp_seed(1): with qp.util.temp_seed(1):
@ -43,10 +47,10 @@ def gen_data():
X, y = test.Xy X, y = test.Xy
test_dense = LabelledCollection(svd.transform(X), y) test_dense = LabelledCollection(svd.transform(X), y)
model.fit(train_sample_dense) model.fit(*train_sample_dense.Xy)
true_prev, estim_prev = qp.evaluation.prediction(model, APP(test_dense, repeats=100, random_state=0)) true_prev, estim_prev = qp.evaluation.prediction(model, APP(test_dense, repeats=100, random_state=0))
else: else:
model.fit(train_sample) model.fit(*train_sample.Xy)
true_prev, estim_prev = qp.evaluation.prediction(model, APP(test, repeats=100, random_state=0)) true_prev, estim_prev = qp.evaluation.prediction(model, APP(test, repeats=100, random_state=0))
method_data.append((method_name, true_prev, estim_prev, train_sample.prevalence())) method_data.append((method_name, true_prev, estim_prev, train_sample.prevalence()))
@ -55,5 +59,5 @@ def gen_data():
method_names, true_prevs, estim_prevs, tr_prevs = gen_data() method_names, true_prevs, estim_prevs, tr_prevs = gen_data()
qp.plot.binary_diagonal(method_names, true_prevs, estim_prevs, savepath='./plots_cacm/bin_diag_4methods.pdf') # qp.plot.binary_diagonal(method_names, true_prevs, estim_prevs, savepath='./plots_ieee/bin_diag_4methods.pdf')
qp.plot.error_by_drift(method_names, true_prevs, estim_prevs, tr_prevs, n_bins=10, savepath='./plots_cacm/err_drift_4methods.pdf', title='', show_density=False, show_std=True) qp.plot.error_by_drift(method_names, true_prevs, estim_prevs, tr_prevs, n_bins=10, savepath='./plots_ieee/err_drift_4methods.pdf', title='', show_density=False, show_std=True)

View File

@ -314,7 +314,7 @@ def error_by_drift(method_names, true_prevs, estim_prevs, tr_prevs,
for p,ind in enumerate(range(len(bins))): for p,ind in enumerate(range(len(bins))):
selected = inds==ind selected = inds==ind
if selected.sum() > 0: if selected.sum() > 0:
xs.append(ind*binwidth-binwidth/2) xs.append(ind*binwidth)
ys.append(np.mean(method_drifts[selected])) ys.append(np.mean(method_drifts[selected]))
ystds.append(np.std(method_drifts[selected])) ystds.append(np.std(method_drifts[selected]))
npoints[p] += len(method_drifts[selected]) npoints[p] += len(method_drifts[selected])