def calculate_signature_dissimilarity(self, target_signature): """ Calculate the dissimilarity of target_signature the the user's enrolment signatures :param target_signature: list of the normalized feature vectors of the target signature to compare to this user's enrolment signatures :return: dictionary of type <user enrolment signature id> -> <dissimilarity of target signature to that enrolment signature> """ dtw = DTW() dissimilarities = [] for key, enrolment_signature in self.enrolment_signatures.items(): dissim, matrix = dtw.distance(enrolment_signature, target_signature, self.WINDOW_SIZE) dissimilarities.append(dissim) return np.mean(np.asarray(dissimilarities))