def _run_algorithm(self):
sm = cnt = 0
for i in range(self._datalen):
sm += sum(self._distance_array[i])
cnt += len(self._distance_array[i])
avg_dist = sm / float(cnt)
attr = self._get_attribute_info()
nan_entries = np.isnan(self._X)
NNlist = [self._find_neighbors(datalen, avg_dist) for datalen in range(self._datalen)]
NN_near_list = [i[0] for i in NNlist]
NN_far_list = [i[1] for i in NNlist]
if self.n_jobs != 1:
scores = np.sum(Parallel(n_jobs=self.n_jobs)(delayed(
SURFstar_compute_scores)(instance_num, attr, nan_entries, self._num_attributes,
NN_near, NN_far, self._headers, self._class_type, self._X, self._y, self._labels_std)
for instance_num, NN_near, NN_far in zip(range(self._datalen), NN_near_list, NN_far_list)), axis=0)
else:
scores = np.sum([SURFstar_compute_scores(instance_num, attr, nan_entries, self._num_attributes,
NN_near, NN_far, self._headers, self._class_type, self._X, self._y, self._labels_std)
for instance_num, NN_near, NN_far in zip(range(self._datalen), NN_near_list, NN_far_list)], axis=0)
return np.array(scores)
评论列表
文章目录