From ca246281c4b4df28cd6488d4b76433be167cc861 Mon Sep 17 00:00:00 2001 From: Nelly Barret <nelly.barret@etu.univ-lyon1.fr> Date: Sat, 24 Oct 2020 11:52:11 +0200 Subject: [PATCH] [M] fixed remove rural IRIS --- predihood/classes/Data.py | 3 ++- predihood/classes/Dataset.py | 7 ++++--- predihood/predict.py | 8 ++++---- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/predihood/classes/Data.py b/predihood/classes/Data.py index b42b8923..4057c473 100644 --- a/predihood/classes/Data.py +++ b/predihood/classes/Data.py @@ -17,7 +17,7 @@ warnings.filterwarnings("ignore", category=RuntimeWarning) class Data: - def __init__(self, normalization="density", filtering=True): + def __init__(self, normalization="density", filtering=True, add_assessment=False): """ Constructor of the Data class. Initialize attributes. Args: @@ -31,6 +31,7 @@ class Data: self.indicators = None self.normalization = normalization self.filtering = filtering + self.add_assessment = add_assessment # retrieve indicators self.get_indicators() diff --git a/predihood/classes/Dataset.py b/predihood/classes/Dataset.py index 9e3d24bd..366e019b 100644 --- a/predihood/classes/Dataset.py +++ b/predihood/classes/Dataset.py @@ -13,7 +13,7 @@ class Dataset: """ This class represents assessed IRIS with their indicators ans EV values. There are options, such as removing outliers or rural IRIS. """ - def __init__(self, data, env, _type, selected_indicators=None, indicators_to_remove=None, train_size=TRAIN_SIZE, test_size=TEST_SIZE, outliers=False): + def __init__(self, data, env, _type, selected_indicators=None, indicators_to_remove=None, train_size=TRAIN_SIZE, test_size=TEST_SIZE, outliers=False, remove_rural=False): """ Constructor of the Dataset class. Initialize attributes. @@ -43,6 +43,7 @@ class Dataset: else: self.env = "building_type" self.train_size, self.test_size = check_train_test_percentages(train_size, test_size) self.outliers = outliers + self.remove_rural = remove_rural def init_all_in_one(self): """ @@ -50,8 +51,8 @@ class Dataset: When the type is "unsupervised", split data into X and Y is not relevant (as there is no train/test sets). """ if self.type == "supervised": - if self.outliers: - self.remove_outliers() + if self.outliers: self.remove_outliers() + if self.remove_rural: self.remove_rural_iris() self.init_X() self.init_Y() self.train_test() diff --git a/predihood/predict.py b/predihood/predict.py index d0c2e278..c97e7965 100644 --- a/predihood/predict.py +++ b/predihood/predict.py @@ -61,9 +61,9 @@ def compute_all_accuracies(data, clf, train_size, test_size, remove_outliers=Fal results[env] = OrderedDict() log.debug("--- %s ---", env) - dataset = Dataset(data_not_filtered, env, selected_indicators=data_not_filtered.indicators, train_size=train_size, test_size=test_size, outliers=remove_outliers, _type='supervised') + dataset = Dataset(data_not_filtered, env, selected_indicators=data_not_filtered.indicators, train_size=train_size, test_size=test_size, outliers=remove_outliers, remove_rural=remove_rural, _type='supervised') dataset.init_all_in_one() - if remove_rural: dataset.remove_rural_iris() + # if remove_rural: dataset.remove_rural_iris() mean_classifier = 0.0 algo = MethodPrediction(name="", dataset=dataset, classifier=clf) @@ -78,9 +78,9 @@ def compute_all_accuracies(data, clf, train_size, test_size, remove_outliers=Fal log.info("accuracy for %s without filtering: %f", env, algo.accuracy) for top_k, lst in lists.items(): - dataset = Dataset(data, env, selected_indicators=lst[env], train_size=train_size, test_size=test_size, outliers=remove_outliers, _type='supervised') + dataset = Dataset(data, env, selected_indicators=lst[env], train_size=train_size, test_size=test_size, outliers=remove_outliers, remove_rural=remove_rural, _type='supervised') dataset.init_all_in_one() - if remove_rural: dataset.remove_rural_iris() + # if remove_rural: dataset.remove_rural_iris() algo2 = MethodPrediction(name='', dataset=dataset, classifier=clf) algo2.fit() algo2.compute_performance() -- GitLab