Ejemplo n.º 1
0
 def manhattan_distance(self, privileged=None, returned=False):
     """Compute the average Manhattan distance between the samples from the
     two datasets.
     """
     condition = self._to_condition(privileged)
     distance, mask = utils.compute_distance(self.dataset.features,
         self.distorted_dataset.features, self.dataset.protected_attributes,
         self.dataset.protected_attribute_names, dist_fun=scdist.cityblock,
         condition=condition)
     if returned:
         return distance, self.dataset.instance_weights[mask]
     return distance
Ejemplo n.º 2
0
 def mahalanobis_distance(self, privileged=None, returned=False):
     """Compute the average Mahalanobis distance between the samples from the
     two datasets.
     """
     condition = self._to_condition(privileged)
     X_orig = self.dataset.features
     X_distort = self.distorted_dataset.features
     dist_fun = partial(scdist.mahalanobis,
         VI=np.linalg.inv(np.cov(np.vstack([X_orig, X_distort]).T)).T)
     distance, mask = utils.compute_distance(X_orig, X_distort,
         self.dataset.protected_attributes,
         self.dataset.protected_attribute_names, dist_fun=dist_fun,
         condition=condition)
     if returned:
         return distance, self.dataset.instance_weights[mask]
     return distance