Changeset 1145 for framspy/evolalg/dissimilarity/frams_dissimilarity.py
- Timestamp:
- 07/07/21 14:38:57 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
framspy/evolalg/dissimilarity/frams_dissimilarity.py
r1139 r1145 6 6 from evolalg.dissimilarity.dissimilarity import Dissimilarity 7 7 8 #TODO eliminate overlap with dissimilarity.py 9 8 10 9 11 class FramsDissimilarity(FramsStep): 10 12 11 def __init__(self, frams_lib, reduction="mean", output_field="dissim", *args, **kwargs):13 def __init__(self, frams_lib, reduction="mean", output_field="dissim", knn=None, *args, **kwargs): 12 14 super(FramsDissimilarity, self).__init__(frams_lib, *args, **kwargs) 13 15 14 16 self.output_field = output_field 15 17 self.fn_reduce = None 18 self.knn = knn 16 19 if reduction == "mean": 17 20 self.fn_reduce = np.mean … … 22 25 elif reduction == "sum": 23 26 self.fn_reduce = np.sum 27 elif reduction == "knn_mean": 28 self.fn_reduce = self.knn_mean 24 29 elif reduction == "none" or reduction is None: 25 30 self.fn_reduce = None 26 31 else: 27 raise ValueError("Unknown reduction type. Supported: mean, max, min, sum, none")32 raise ValueError("Unknown reduction type. Supported: mean, max, min, sum, knn_mean, none") 28 33 29 34 def reduce(self, dissim_matrix): … … 41 46 setattr(ind, self.output_field, d) 42 47 return population 48 49 def knn_mean(self, dissim_matrix,axis): 50 return np.mean(np.partition(dissim_matrix, self.knn)[:,:self.knn],axis=axis)
Note: See TracChangeset
for help on using the changeset viewer.