QuaPy/KDEy/experiments.py

31 lines
799 B
Python

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()}')