@@ -43,12 +43,10 @@ def _compute_local_sets(self, instances, labels):
4343 for index , (sample , label ) in enumerate (zip (instances , labels )):
4444 closest_enemy_distance = sys .maxsize
4545 closest_enemy_sample = None
46- for index2 , (_ , label2 ) in enumerate (zip (instances , labels )):
47- if index == index2 or label == label2 :
48- continue
49- if distances [index ][index2 ] < closest_enemy_distance :
50- closest_enemy_distance = distances [index ][index2 ]
51- closest_enemy_sample = index2
46+ closest_enemy_distance , closest_enemy_sample = \
47+ self ._find_enemy_distance (
48+ closest_enemy_distance , closest_enemy_sample , distances ,
49+ index , instances , label , labels )
5250 structure [index ] = [sample , [], None , closest_enemy_distance ,
5351 closest_enemy_sample , label ]
5452
@@ -68,6 +66,17 @@ def _compute_local_sets(self, instances, labels):
6866 'enemy' , 'label' ]) \
6967 .transpose ()
7068
69+ @staticmethod
70+ def _find_enemy_distance (closest_enemy_distance , closest_enemy_sample ,
71+ distances , index , instances , label , labels ):
72+ for index2 , (_ , label2 ) in enumerate (zip (instances , labels )):
73+ if index == index2 or label == label2 :
74+ continue
75+ if distances [index ][index2 ] < closest_enemy_distance :
76+ closest_enemy_distance = distances [index ][index2 ]
77+ closest_enemy_sample = index2
78+ return closest_enemy_distance , closest_enemy_sample
79+
7180 def _sort_asc_lsc (self ):
7281 """
7382 The function takes a dataframe of local sets and sorts them in ascending
0 commit comments