diff --git a/src/Experiments.py b/src/Experiments.py index 919ed57..5fb86e8 100644 --- a/src/Experiments.py +++ b/src/Experiments.py @@ -28,15 +28,26 @@ class Diterator: class Datasets: def __init__(self): - with open(os.path.join(Folders.data, Files.index)) as f: - self.data_sets = f.read().splitlines() + try: + with open(os.path.join(Folders.data, Files.index)) as f: + self.data_sets = f.read().splitlines() + except FileNotFoundError: + with open(os.path.join("..", Folders.data, Files.index)) as f: + self.data_sets = f.read().splitlines() def load(self, name): - data = pd.read_csv( - os.path.join(Folders.data, Files.dataset(name)), - sep="\t", - index_col=0, - ) + try: + data = pd.read_csv( + os.path.join(Folders.data, Files.dataset(name)), + sep="\t", + index_col=0, + ) + except FileNotFoundError: + data = pd.read_csv( + os.path.join("..", Folders.data, Files.dataset(name)), + sep="\t", + index_col=0, + ) X = data.drop("clase", axis=1).to_numpy() y = data["clase"].to_numpy() return X, y diff --git a/src/td.py b/src/td.py new file mode 100644 index 0000000..f43c01d --- /dev/null +++ b/src/td.py @@ -0,0 +1,45 @@ +import sys +import time +from Experiments import Datasets +from mufs import MUFS + +mufs_i = MUFS() +mufs_c = MUFS() +mufs_f = MUFS() +datasets = Datasets() +iwss_t = iwss_tl = cfs_t = cfs_tl = fcbf_t = fcbf_tl = 0 +for i in datasets: + X, y = datasets.load(i) + now = time.time() + mufs_i.iwss(X, y, float(sys.argv[1])) + iwss = time.time() - now + iwss_r = len(mufs_i.get_results()) + now = time.time() + mufs_c.cfs(X, y) + cfs = time.time() - now + cfs_r = len(mufs_c.get_results()) + now = time.time() + mufs_f.fcbf(X, y, 1e-5) + fcbf = time.time() - now + fcbf_r = len(mufs_f.get_results()) + print( + f"{i:30s} {iwss:.4f}({iwss_r:2d}) {cfs:.4f}({cfs_r:2d}) {fcbf:.4f}" + f"({fcbf_r:2d})" + ) + iwss_t += iwss + iwss_tl += iwss_r + cfs_t += cfs + cfs_tl += cfs_r + fcbf_t += fcbf + fcbf_tl += fcbf_r +num = len(list(datasets)) +iwss_t /= num +iwss_tl /= num +cfs_t /= num +cfs_tl /= num +fcbf_t /= num +fcbf_tl /= num +print( + f"{'Average ..: ':30s} {iwss_t:.4f}({iwss_tl:.2f}) {cfs_t:.4f}" + f"({cfs_tl:.2f}) {fcbf_t:.4f}({fcbf_tl:.2f})" +)