import numpy as np import quapy as qp from protocol import UPP from quapy.method.aggregative import KDEyML qp.environ["SAMPLE_SIZE"]=500 def datasets(): for dataset_name in qp.datasets.UCI_MULTICLASS_DATASETS: yield qp.datasets.fetch_UCIMulticlassDataset(dataset_name) for dataset in datasets(): train, test = dataset.train_test test_gen = UPP(test, repeats=500) print(f"testing KDEy in {dataset.name}") for b in np.linspace(0.01, 20, 20): kdey = KDEyML(bandwidth=b, random_state=0) kdey.fit(train) report = qp.evaluation.evaluation_report(kdey, protocol=test_gen, error_metrics=['ae', 'rae', 'kld'], verbose=True) print(f'bandwidth={b}') print(f'MAE={report["ae"].mean()}') print(f'MRAE={report["ae"].mean()}')