def computeNeighboursScores(self):
all_instances = self.iteration.datasets.instances
# Connectivity matrix
pipeline = Pipeline([
('scaler', StandardScaler()),
('model', NearestNeighbors(self.num_neighbours, n_jobs = -1))])
pipeline.fit(all_instances.getFeatures())
# Labels
labels = np.array([generateLabel(x) for x in all_instances.getLabels()])
# Compute neighbour scores
scores = []
all_neighbours = pipeline.named_steps['model'].kneighbors(return_distance = False)
for i, label in enumerate(labels):
if label != 0:
continue
else:
neighbours = all_neighbours[i]
score = sum(labels[neighbours] + 1) / (2.0 * self.num_neighbours)
scores.append(score)
return np.array(scores)
评论列表
文章目录